3. 插入数据 DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 新元组 50 DEVELOPMENT DETROIT “… 在 DEPT 表中添加新 的行…” 50 DEVELOPMENT DETROIT
5. 插入数据 INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) VALUES (7196, 'GREEN', 'SALESMAN', 7782, DATE(), 2000, NULL, 10); INSERT INTO managers(id, name, salary, hiredate) SELECT empno, ename, sal, hiredate FROM emp WHERE job = 'MANAGER';
6.
7. 更新数据 EMP EMP EMPNO ENAME JOB ... DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 ... EMPNO ENAME JOB ... DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 ... “… 在 EMP 表中 更新一行…” 20
8. 使用 UPDATE 语句 UPDATE 表名 SET 属性列 1 = 值 1 [, 属性列 2 = 值 2] [WHERE 条件表达式 ]; UPDATE emp SET deptno = 20 WHERE empno = 7782; UPDATE employee SET deptno = 20;
9. 加入子查询的数据更新 UPDATE emp SET (job, deptno) = (SELECT job, deptno FROM emp WHERE empno = 7499) WHERE empno = 7698; UPDATE employee SET deptno = (SELECT deptno FROM emp WHERE empno = 7788) WHERE job = (SELECT job FROM emp WHERE empno = 7788);
10.
11. 删除数据 DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 50 DEVELOPMENT DETROIT 60 MIS ... “… delete a row from DEPT table…” DEPT DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 60 MIS ...
12. 使用 DELETE 语句 DELETE [FROM] 表名 [WHERE 条件表达式 ]; DELETE FROM department WHERE dname = 'DEVELOPMENT'; DELETE FROM department;
13. 加入子查询的数据删除 DELETE FROM employee WHERE deptno = (SELECT deptno FROM dept WHERE dname ='SALES'); 注 : 更新和删除数据应保持数据的完整性。
14.
15.
16.
17. 定义视图 CREATE VIEW 视图名 [( 列名 [, 列名 ]...)] [WITH ENCRYPTION] AS 子查询 [WITH CHECK OPTION [CONSTRAINT 约束 ]] CREATE VIEW empvu10 AS SELECT empno, ename, job FROM emp WHERE deptno = 10; CREATE VIEW salvu30 AS SELECT empno EMPLOYEE_NUMBER, ename NAME, sal SALARY FROM emp WHERE deptno = 30;
18. 例 : EMPLOYEE_NUMBER NAME SALARY --------------- ---------- --------- 7698 BLAKE 2850 7654 MARTIN 1250 7499 ALLEN 1600 7844 TURNER 1500 7900 JAMES 950 7521 WARD 1250 SELECT * FROM salvu30;
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30. 更新转换示例 DELETE FROM STUDENT WHERE sno=‘08012’ AND sdept=‘IS’ DELETE FROM IS_STUDENT WHERE sno=‘08012’ INSERT INTO student (sno,sname,sage,sdept) VALUES(‘08002’,’ 李林’, 18,’IS’) INSERT INTO IS_STUDENT VALUES(‘08002’,’ 李林’, 18) UPDATE student SET sname=‘ 张三’ WHERE sno=‘08012’ AND sdept=‘IS’ UPDATE IS_STUDENT SET sname=‘ 张三’ WHERE sno=‘08012’ CREATE VIEW IS_STUDENT AS SELECT sno,sname,sage FROM student WHERE sdept=‘IS’ WITH CHECK OPTION 转换成对基表的操作 对视图的更新操作 有视图 IS_STUDENT
31. 比较两组语句的执行情况 : CREATE VIEW productview AS SELECT productid,productname FROM products where categoryid=‘1’ WITH CHECK OPTION INSERT INTO productview(productname) values(‘coffee’) CREATE VIEW productview AS SELECT productid,productname FROM products where categoryid=‘1’ INSERT INTO productview(productname) values(‘coffee’)