猿问

oracle 中的(+) 是什么意思?

oracle 中的(+) 是什么意思? 


烙印99
浏览 876回答 2
2回答

慕尼黑的夜晚无繁华

通用测试表-- 学生表CREATE TABLE student (SNO INT,SNAME VARCHAR(10),ICNO INT);-- 食堂IC卡表CREATE TABLE IC (ICNO INT,ICNAME VARCHAR(10),ICMoney INT);INSERT INTO student VALUES(1, '张三', 1 );INSERT INTO student VALUES(2, '李四', 2 );INSERT INTO student VALUES(3, '王五', NULL);INSERT INTO IC VALUES(1, '张三', 500 );INSERT INTO IC VALUES(2, '李四', 250 );INSERT INTO IC VALUES(3, '赵老师', 600);LEFT OUTER JOINSELECTstudent.SNO,student.SNAME,IC.ICNAME,IC.ICMoneyFROMstudentLEFT JOIN ICON (student.ICNO = IC.ICNO);+------+-------+--------+---------+| SNO | SNAME | ICNAME | ICMoney |+------+-------+--------+---------+| 1 | 张三 | 张三 | 500 || 2 | 李四 | 李四 | 250 || 3 | 王五 | NULL | NULL |+------+-------+--------+---------+3 rows in set (0.00 sec)Oracle 有种另外的写法.SELECTstudent.SNO,student.SNAME,IC.ICNAME,IC.ICMoneyFROMstudent, ICWHEREstudent.ICNO = IC.ICNO(+);SNO SNAME ICNAME ICMONEY--------- -------------------- -------------------- ----------1 张三 张三 5002 李四 李四 2503 王五可以理解为, 有 (+) 的, 就是 可选的 (也就是可以为 NULL 的)。----------RIGHT OUTER JOINSELECTstudent.SNO,student.SNAME,IC.ICNAME,IC.ICMoneyFROMstudentRIGHT JOIN ICON (student.ICNO = IC.ICNO);+------+-------+--------+---------+| SNO | SNAME | ICNAME | ICMoney |+------+-------+--------+---------+| 1 | 张三 | 张三 | 500 || 2 | 李四 | 李四 | 250 || NULL | NULL | 赵老师 | 600 |+------+-------+--------+---------+3 rows in set (0.00 sec)Oracle 有种另外的写法.SELECTstudent.SNO,student.SNAME,IC.ICNAME,IC.ICMoneyFROMstudent, ICWHEREstudent.ICNO(+) = IC.ICNO;SNO SNAME ICNAME ICMONEY---------- -------------------- -------------------- ----------1 张三 张三 5002 李四 李四 250赵老师 600可以理解为, 有 (+) 的, 就是 可选的 (也就是可以为 NULL 的)。 1  
随时随地看视频慕课网APP

相关分类

Oracle
我要回答