C、自连接:当需要的数据无法从一个表中查询时,连接多个表才能查询出需要的信息。(自表:SELECT E.EMPNO,E.ENAME,M.MGR,M.ENAME FROM EMP AS E,EMP AS M WHERE E.EMPNO=M.MGR)
D、外连接(当一些无法连接的信息丢失,显示不出时,用外连接显示)
1、左连接(LEFT JOIN... ON )
(SELECT ENAME,E.DEPTNO FROM EMP AS E LEFT JOIN DEPT AS D ON E.DEPTNO=D.DEPTNO)
此时显示的是LEFT JOIN 左边表中未连接的部分
2、右连接(RIGHT JOIN...ON )
(SELECT ENAME,E.DEPTNO FROM EMP AS E RIGHT JOIN DEPT AS D ON E.DEPTNO=D.DEPTNO)
此时显示的是RIGHT JOIN 右边表中未连接的部分
3、关系:A LEFT JOIN B=B RIGHT JOIN A
4、注意事项:外连接只能显示一个表中的未连接的部分,不能将两个表中的未连接信息都显示出来
E、全关联(FULL JOIN...ON...)
(SELECT ENAME,E.DEPTNO FROM EMP AS E FULL JOIN DEPT AS D ON E.DEPTNO=D.DEPTNO)
此时全关联能将两个表中未连接的部分都显示出来
F、ORACLE中特殊的左/右关联
1、(SELECT E.*,D.* FROM EMP AS E,DEPT AS D WHERE E.DEPTNO(+)=D.DEPTNO):D表是主表,读作D表右连接E表
2、(SELECT E.*,D.* FROM EMP AS E,DEPT AS D WHERE E.DEPTNO=D.DEPTNO(+)):E表是主表,读作E表左连接D表
3、注意事项:(+)的另一侧为主表,主表的数据会显示出来
(+)的另一侧为连接方向
2、插入数据
A、一般数据插入
1、(INSERT INTO 表名(字段1,字段2,字段3)VALUES(字段1对应的插入值,字段2对应的插入值,字段,3对应的插入值))
注意事项:字段对应的插入值为字符时必须加‘’;
必须提交(COMMIT-执行/点击提交按钮);
当某些字段的插入值未知时,直接去掉字段,插入值自然显示为空;
若表明后有字段,则字段和插入值必须物理位置对应,顺序可变化;
2、(INSERT INTO 表名VALUES(插入值1,插入值2,插入值3))
注意事项:表明后无字段,插入值的每个值必须和表中的物理位置对应,位置也不可变
3、一般用表后加字段,通用且句意易懂;位置对应清楚,出错少
4、当所加字段为日期型时(INSERT INTO 表名(HIREDATE,ENAME)VALUES(TO_CHAR(‘1992-12-23’,’MM-DD-YYYY’),’李四’)),若插入值时当前日期,直接写SYSDATE 注意事项:日期必须转化为日期型格式
B、建立新表并插入内容(CREAT TABLE 新表名AS 表内容)
(CREAT TABLE EMP1 AS SELECT EMPNO,ENAME,SAL FROM EMP)/复制原表(CREAT TABLE EMP1 AS SELECT * FROM EMP)
复制表结构(内容空,但有结构)=(CREAT TABLE EMP1 AS SELECT * FROM EMP WHERE +不成立的条件)
C、删除表(DELETE FROM 表名)注意:没有*,删除数据,表格还在。
D、插入(INSERT INTO 表名(字段1,字段2)SELECT 字段3,字段4 FROM EMP WHERE