《Oracle进阶培训.pptx》由会员分享,可在线阅读,更多相关《Oracle进阶培训.pptx(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、360。企业管理信息化解决方案提供商赛意信息科技有限公司 白金級合作伙伴 课程主题讲师:周梦荣 日期:2015.3培训专用2023/6/122 2u Oracle数据库基本访问语句数据库基本访问语句u PL/SQL编程基础编程基础u Oracle数据库高级查询数据库高级查询 目录目录培训专用2023/6/1333SQL语句分类语句分类数据操作语句(数据操作语句(Data Manipulation Language):DML语句包括:语句包括:select、insert、delete、update 数据定义语句数据定义语句 (Data Definition Language):DDL语句包括:语
2、句包括:create、alter、drop、truncate 事务控制语句(事务控制语句(Transaction Control Language):TCL语句包括:语句包括:commit、rollback、savepoint 数据控制语句(数据控制语句(Data Control Language):DCL语句包括:语句包括:grant、revokeORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/14 44DML语句:语句:select、insert、delete、update DML语句用途及基础语法:语句用途及基础语法:lSELECT语句用途:用于查询表或视图的数据;
3、语句用途:用于查询表或视图的数据;lSELECT语句语法:语句语法:SELECT columns FROM tables WHERE predicates;lINSERT语句用途:将数据插入到指定表中;语句用途:将数据插入到指定表中;lINSERT语句语法:语句语法:INSERT INTO table (column-1,column-2,.column-n)VALUES (value-1,value-2,.value-n);ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1555DML语句:语句:select、insert、delete、update DML语句用途及基
4、础语法:语句用途及基础语法:lUPDATE语句用途:用于更新指定表语句用途:用于更新指定表(符合条件)(符合条件)的数据;的数据;lUPDATE语句语法:语句语法:UPDATE table SET column1=value1,column2=value2 WHERE predicates;lDELETE语句用途:用于删除指定表语句用途:用于删除指定表(符合条件)(符合条件)的数据;的数据;lDELETE语句语法:语句语法:DELETE FROM tables WHERE predicates;ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1666DML语句:语句:se
5、lect、insert、delete、update 示例:在示例:在SCOTT用户进行如下操作:用户进行如下操作:1、查询、查询emp表的所有员工的所有信息;表的所有员工的所有信息;2、查询、查询emp表的所有员工的工号、姓名、基本薪水;表的所有员工的工号、姓名、基本薪水;3、查询工号为、查询工号为7839的员工的工号、姓名、基本薪水;的员工的工号、姓名、基本薪水;4、插入一个员工信息:工号、插入一个员工信息:工号:8000,姓名:姓名:SIE,职位:职位:SALESMAN,部门:,部门:30;5、将工号为、将工号为8000的员工的上级领导修改为的员工的上级领导修改为7920;6、删除工号为、
6、删除工号为8000的员工。的员工。ORACLE数据库基本访问语句数据库基本访问语句SELECT*FROM emp e;SELECT empno,ename,sal FROM emp;SELECT e.empno,e.ename,e.sal FROM emp e WHERE e.empno=7839;INSERT INTO EMP(empno,ename,job,deptno)VALUES(8000,SIE,SALESMAN,30);COMMIT;UPDATE emp SET MGR=7920WHERE empno=8000;COMMIT;DELETE FROM emp WHERE empno=
7、8000;COMMIT;培训专用2023/6/1777DML语句:语句:select、insert、delete、update 示例:在示例:在SCOTT用户进行如下操作:用户进行如下操作:7、查询、查询20部门的所有员工信息:部门名称,员工姓名,基部门的所有员工信息:部门名称,员工姓名,基本薪水;本薪水;8、统计、统计20部门的员工人数及平均基本薪水;部门的员工人数及平均基本薪水;9、查询不含员工的部门信息:部门名称;、查询不含员工的部门信息:部门名称;ORACLE数据库基本访问语句数据库基本访问语句SELECT D.DNAME,E.ENAME,E.SAL FROM EMP E,DEPT D
8、 WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO=20;SELECT D.DNAME,COUNT(*)emp_qty,AVG(SAL)avg_sal FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND D.DEPTNO=20 GROUP BY d.dname;SELECT D.DNAME FROM DEPT D WHERE NOT EXISTS(SELECT 1 FROM EMP E WHERE E.DEPTNO=D.DEPTNO);培训专用2023/6/1888DML语句:语句:select、insert、delete、upd
9、ate 总结总结lselect语句是难点,需要多练习,常用语句是难点,需要多练习,常用select语句的类型有:语句的类型有:单表查询、多表查询、子查询、集合操作、树结构查询、聚合单表查询、多表查询、子查询、集合操作、树结构查询、聚合函数、分析函数、自定义函数;函数、分析函数、自定义函数;lInsert、delete、update三类改动要想存入库中必须要使用三类改动要想存入库中必须要使用commit语句,放弃改动时要使用语句,放弃改动时要使用rollback语句;语句;lInsert时注意数据类型、唯一约束、非空约束等;时注意数据类型、唯一约束、非空约束等;ldelete、update使用时
10、,一定要确保使用时,一定要确保WHERE条件的正确性;条件的正确性;l注意注意NULL值,判断空用值,判断空用IS NULL,判断不空用,判断不空用 IS NOT NULL。ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/19 99DDL语句:语句:create、alter、drop、truncate DDL语句用途及语法语句用途及语法lcreate语句用途:创建数据库对象,如表、视图语句用途:创建数据库对象,如表、视图lcreate语句语法语句语法:创建表基本语法:创建表基本语法:create table table_name (column_a datatype nu
11、ll/not null,column_b datatype null/not null,);根据查询语句创建表基本语法:根据查询语句创建表基本语法:CREATE table table_name as select query;创建视图基本语法:创建视图基本语法:create or replace view view_name as select columns from table where predicates;ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1101010DDL语句:语句:create、alter、drop、truncate DDL语句用途及语法语
12、句用途及语法lalter语句用途:语句用途:修改数据库对象,一般用于修改表结构修改数据库对象,一般用于修改表结构lalter语句语法语句语法:修改表结构基本语法:修改表结构基本语法:增加字段:增加字段:alter table table_name add 删除字段:删除字段:alter table table_name drop cloumn.重命名字段:重命名字段:alter table table_name rename column to 修改表字段修改表字段(数据类型、数据类型、NOT NULL约束约束)alter table table_name modify 增加约束:增加约束:a
13、lter table table_name add constraint ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1111111DDL语句:语句:create、alter、drop、truncate DDL语句用途及语法语句用途及语法ldrop语句用途:删除数据库对象。语句用途:删除数据库对象。ldrop语句语法语句语法:drop 对象类型对象类型 对象名称对象名称;ORACLE数据库基本访问语句数据库基本访问语句DDL语句用途及语法语句用途及语法ltruncate语句用途:删除表中所有数据,并释放所占用的语句用途:删除表中所有数据,并释放所占用的空间。空间。l使
14、用使用truncate表删除数据时不需要提交,也不能回滚。表删除数据时不需要提交,也不能回滚。l删除表中所有数据时使用删除表中所有数据时使用truncate比比delete高效。高效。ltruncate语句语法语句语法:truncate table table_name;培训专用2023/6/1121212DDL语句:语句:create、alter、drop、truncate DDL语句用途及语法语句用途及语法lCOMMENT语句用途:给表或表的字段加备注信息语句用途:给表或表的字段加备注信息lCOMMENT语句语法语句语法:给表加备注语法:给表加备注语法:comment on table t
15、able_name is 备注内容备注内容;给表中某个字段加备注语法:给表中某个字段加备注语法:comment on column table.column_name is 备注内容备注内容;lRENAME语句用途:重命名数据库对象名称,常用于重命名语句用途:重命名数据库对象名称,常用于重命名表名表名lRENAME语句语法语句语法:重命名表名语法:重命名表名语法:RENAME old_name TO new_name ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1131313DDL语句:语句:create、alter、drop、truncate 示例:在示例:在SCO
16、TT用户下进行如下操作:用户下进行如下操作:1、使用基本语法创建、使用基本语法创建 sie_emp表表ORACLE数据库基本访问语句数据库基本访问语句字段名数据类型Emp_noVARCHAR2(30)Emp_nameVARCHAR2(30)sexCHAR(1)Dept_noVARCHAR2(30)Base_salary NUMBER-创建表创建表sie_empCREATE TABLE SIE_EMP(emp_no VARCHAR2(30),emp_name VARCHAR2(30),sex CHAR(1),dept_no VARCHAR2(30),base_salary NUMBER);培训专
17、用2023/6/1141414DDL语句:语句:create、alter、drop、truncate 示例:在示例:在SCOTT用户下进行如下操作:用户下进行如下操作:2、创建、创建 sie_dept表,采用查询表,采用查询scott.dept表的方式,创建时表的方式,创建时不拷贝不拷贝scott.dept表中的数据。表中的数据。ORACLE数据库基本访问语句数据库基本访问语句字段名数据类型dept_nonumber(2)dept_nameVARCHAR2(14)-创建表创建表sie_deptCREATE TABLE sie_dept(dept_no,dept_name)AS SELECT d
18、eptno,dname FROM dept WHERE 1=2培训专用2023/6/1151515DDL语句:语句:create、alter、drop、truncate 示例:在示例:在SCOTT用户下进行如下操作:用户下进行如下操作:3、修改、修改sie_dept表:表:a、给字段、给字段dept_no添加主键约束;添加主键约束;b、字段、字段dept_no数据类型修改为数据类型修改为VARCHAR2(30);c、字段、字段dept_name修改为修改为NOT NULL约束;约束;d、删除字段、删除字段dept_name上的上的NOT NULL约束;约束;e、字段、字段dept_name上增
19、加唯一约束;上增加唯一约束;ORACLE数据库基本访问语句数据库基本访问语句ALTER TABLE sie_dept ADD CONSTRAINT sie_dept_pk PRIMARY KEY(dept_no);ALTER TABLE sie_deptMODIFY (dept_no VARCHAR2(30);ALTER TABLE sie_dept MODIFY (dept_name NOT NULL);ALTER TABLE sie_dept MODIFY (dept_name NULL);ALTER TABLE sie_deptADD CONSTRAINT sie_dept_uq1 UN
20、IQUE(dept_name);培训专用2023/6/1161616DDL语句:语句:create、alter、drop、truncate 示例:在示例:在SCOTT用户下进行如下操作:用户下进行如下操作:4、在、在sie_emp表的表的emp_no字段上创建唯一索引;字段上创建唯一索引;5、修改、修改sie_emp表:表:a、字段、字段emp_no添加主键约束;添加主键约束;b、增加字段职位(、增加字段职位(job)、上级领导)、上级领导(mgr);c、字段、字段sex更名为更名为gender;e、字段、字段salary增加增加check约束,约束,salary=1500 f、字段、字段de
21、pt_no增加外键,参考表增加外键,参考表SIE_DEPT ORACLE数据库基本访问语句数据库基本访问语句CREATE UNIQUE INDEX sie_emp_u1 ON sie_emp(emp_no);ALTER TABLE sie_empADD CONSTRAINT sie_emp_pk PRIMARY KEY(emp_no);ALTER TABLE sie_empADD(job VARCHAR2(30),mgr VARCHAR(30);ALTER TABLE sie_empRENAME COLUMN sex TO gender;ALTER TABLE sie_emp ADD CONS
22、TRAINT sie_emp_ck1 CHECK(salary=1500);ALTER TABLE sie_emp ADD CONSTRAINT sie_emp_fk1 FOREIGN KEY(dept_no)REFERENCES sie_dept(dept_no);培训专用2023/6/1171717DDL语句:语句:create、alter、drop、truncate 示例:在示例:在SCOTT用户下进行如下操作:用户下进行如下操作:6、基本查询员工编号、姓名、部门名称的查询语句,、基本查询员工编号、姓名、部门名称的查询语句,创建视图创建视图sie_emp_v;7、删除、删除sie_emp
23、表表dept_no字段上的外键约束;字段上的外键约束;8、删除、删除sie_emp表表job字段;字段;9、删除视图、删除视图sie_emp_v;10、删除表、删除表sie_dept;ORACLE数据库基本访问语句数据库基本访问语句CREATE VIEW sie_emp_vASSELECT se.emp_no,se.emp_name,sd.dept_name FROM sie_emp se,sie_dept sd WHERE se.dept_no=sd.dept_noALTER TABLE sie_empDROP CONSTRAINT sie_emp_fk1;ALTER TABLE sie_e
24、mp DROP COLUMN job;DROP VIEW sie_emp_v;DROP TABLE sie_emp;培训专用2023/6/1181818DDL语句:语句:create、alter、drop、truncate 总结总结lDDL语句会隐式提交,实质是先语句会隐式提交,实质是先COMMIT,再,再DDL语句;语句;l创建主键约束、唯一约束时会默认创建唯一索引;创建主键约束、唯一约束时会默认创建唯一索引;l主键约束的字段(或字段组合)不允许主键约束的字段(或字段组合)不允许NULL值;值;l唯一约束的字段允许唯一约束的字段允许NULL值;值;l表中新增字段会出现在表列的最后面;表中新增
25、字段会出现在表列的最后面;l实际开发中一般不创建实际开发中一般不创建CHECK、FOREIGN KEY约束;约束;l创建表时业务中常为创建表时业务中常为NULL值的列一般放在最后;值的列一般放在最后;l索引并不是越多越好,索引即有优点又有缺点;索引并不是越多越好,索引即有优点又有缺点;l养成好的命名习惯、养成使用别名的习惯。养成好的命名习惯、养成使用别名的习惯。ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1191919TCL语句:语句:commit、rollback、savepointTCL语句用途及语法语句用途及语法lCOMMIT语句用途:语句用途:提交事物。在一系
26、列提交事物。在一系列DML后,向数据库提交事务,在执后,向数据库提交事务,在执行行COMMIT前所有事务按执行先后顺序可见前所有事务按执行先后顺序可见,执行,执行COMMIT后,所有后,所有DML操作最终效果才会生效并保持至数操作最终效果才会生效并保持至数据库中。据库中。lCOMMIT语句语法:语句语法:commit;ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1202020TCL语句:语句:commit、rollback、savepointTCL语句用途及语法语句用途及语法lROLLBACK语句用途:语句用途:回滚事物。显式回滚数据库事务,所有回滚事物。显式回滚数据
27、库事务,所有DML操操作都回滚至最近一次作都回滚至最近一次commit后。后。lROLLBACK语句语法:语句语法:ROLLBACK;ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1212121TCL语句:语句:commit、rollback、savepointTCL语句用途及语法语句用途及语法lsavepoint语句用途:语句用途:实现部分回滚,回滚至某个设置点。实现部分回滚,回滚至某个设置点。lsavepoint语句语法:语句语法:savepoint A;-设置回滚点设置回滚点 .rollback to A;-回滚至设置点回滚至设置点ORACLE数据库基本访问语句数
28、据库基本访问语句培训专用2023/6/1222222TCL语句:语句:commit、rollback、savepoint总结总结l改动数据库中的数据后,一般使用改动数据库中的数据后,一般使用COMMIT显示提交,显示提交,使用使用ROLLBACK显示回滚;显示回滚;l注意注意DDL语句会隐式提交(语句会隐式提交(COMMI););lTCL语句频繁出现会降低效率;语句频繁出现会降低效率;l一个事务的开始标志是一个事务的开始标志是INSERT、UPDATE、DELETE 语句的出现;一个事务的结束标志是语句的出现;一个事务的结束标志是COMMIT、ROLLBACK的出现;的出现;ORACLE数据库
29、基本访问语句数据库基本访问语句培训专用2023/6/1232323DCL语句:语句:grant、revokegrant授予权限,授予权限,revoke收回权限收回权限基础权限清单基础权限清单ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1242424DCL语句:语句:grant、revoke授予权限授予权限grantl语法语法grant privileges on object to users;l示例:示例:创建创建sie用户并在用户并在scott用户下进行如下操作:用户下进行如下操作:授指定表一个权限,给指定用户授指定表一个权限,给指定用户grant select
30、on emp to sie;授指定表多个权限,给指定用户授指定表多个权限,给指定用户grant select,insert,update on emp to sie;授指定表全部权限,给指定用户授指定表全部权限,给指定用户grant all on emp to sie;授权指定表指定权限,给所有用户授权指定表指定权限,给所有用户grant select on emp to public;ORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1252525DCL语句:语句:grant、revoke收回权限收回权限revokel语法语法revoke privileges on ob
31、ject from users;l示例:示例:scott用户下进行如下操作:用户下进行如下操作:从指定用户收回指定表一个权限从指定用户收回指定表一个权限revoke select on emp from sie;从指定用户收回指定表多个权限从指定用户收回指定表多个权限revoke insert,update,delete on emp from sie;从指定用户收回指定表全部权限从指定用户收回指定表全部权限revoke all on emp from sie;从所有用户收回指定表指定权限从所有用户收回指定表指定权限revoke select on emp from public;ORACLE
32、数据库基本访问语句数据库基本访问语句培训专用2023/6/1262626DCL语句:语句:grant、revoke总结总结l新创建用户没有任何权限,登录数据库的权限也没有;新创建用户没有任何权限,登录数据库的权限也没有;l创建一个新的用户至少授予的权限:创建一个新的用户至少授予的权限:connect、resource、unlimited tablespaceORACLE数据库基本访问语句数据库基本访问语句培训专用2023/6/1272727u Oracle数据库基本访问语句数据库基本访问语句u PL/SQL 编程基础编程基础u Oracle数据库高级查询数据库高级查询 目录目录培训专用2023
33、/6/1282828u多表连接的类型与实现多表连接的类型与实现l内连接内连接 等值内连接等值内连接(inter join on)不等值内连接不等值内连接 自然连接自然连接(natural join)l外连接外连接 左外连接左外连接(left(outer)join on)右外连接右外连接(right(outer)join on)全外连接全外连接(full(outer)join on)l交叉连接交叉连接(cross on)ORACLE数据库高级查询数据库高级查询培训专用2023/6/1292929内连接内连接 等值连接等值连接select*from sie_emp emp,sie_dept dep
34、twhere emp.deptid=dept.deptid 自然连接自然连接select emp.deptid,emp.*from sie_emp emp natural join sie_dept dept注:同名字段前不能加表名进行限制注:同名字段前不能加表名进行限制ORACLE数据库高级查询数据库高级查询培训专用2023/6/1303030外连接外连接 左外连接左外连接select*from sie_emp emp,sie_dept deptwhere emp.deptid=dept.deptid(+)右外连接右外连接select*from sie_emp emp,sie_dept de
35、ptwhere emp.deptid(+)=dept.deptid;全外连接全外连接select*from sie_emp emp full outer join sie_dept dept on emp.deptid=dept.deptid;ORACLE数据库高级查询数据库高级查询培训专用2023/6/1313131交叉连接交叉连接select*from sie_emp emp,sie_dept dept;即笛卡尔积,行数为左边的行数乘以右边的行数。即笛卡尔积,行数为左边的行数乘以右边的行数。ORACLE数据库高级查询数据库高级查询培训专用2023/6/1323232u子查询子查询概念概念在
36、一个主在一个主SELECT、INSERT、UPDATE、DELETE语句中,嵌套的、用括号括起来的语句中,嵌套的、用括号括起来的SELECT语句,称为子查询语句,称为子查询语法语法相关子查询相关子查询:子查询中引用外部表子查询中引用外部表非相关子查询非相关子查询:子查询中不引用外部表子查询中不引用外部表示例示例工资大于工号为工资大于工号为1002员工工资的员工信息员工工资的员工信息(不相关子查询不相关子查询)Select*From employees emWhere em.salary (Select salary From employees pl Where pl.employee_num
37、ber=1002);ORACLE数据库高级查询数据库高级查询培训专用2023/6/1333333u子查询子查询示例示例查询有下采购订单的员工查询有下采购订单的员工(不相关子查询不相关子查询)Select*From employees em,(Select Distinct employee_number From orders)vWhere em.employee_number=v.employee_number查询有下采购订单的员工查询有下采购订单的员工(相关子查询相关子查询)Select*From employees emWhere em.employee_number In(Select
38、 Distinct employee_number From orders)查询有下采购订单的员工查询有下采购订单的员工(相关子查询相关子查询)Select*From employees em Where Exists(Select 1 From orders od Where od.employee_number=em.employee_number)ORACLE数据库高级查询数据库高级查询培训专用2023/6/1343434u子查询子查询(not)EXISTS 用途用途EXISTS 判断子查询是否有数据返回,有则为判断子查询是否有数据返回,有则为TURE,否则为否则为FALSE,EXIST
39、S也可用于也可用于INSERT、UPDATE、DELETE;语法语法SELECT columns FROM tables WHERE EXISTS(subquery);示例示例SELECT*FROM suppliers sp WHERE EXISTS(select 1 from orders od where od.supplier_id=sp.supplier_id);SELECT*FROM suppliers sp WHERE NOT EXISTS(select*from orders od where od.supplier_id=sp.supplier_id);DELETE FROM
40、suppliers sp WHERE EXISTS(select*from orders od where od.supplier_id=sp.supplier_id);ORACLE数据库高级查询数据库高级查询培训专用2023/6/1353535u子查询子查询Exits 和和 IN 的区别的区别Exists 是存在,条件就判断为是存在,条件就判断为trueIn 是需要遍历所有子查询的值是需要遍历所有子查询的值一般来说,需要子查询的值比较少时,差别不大,但是,对于数据量大的情况,基本一般来说,需要子查询的值比较少时,差别不大,但是,对于数据量大的情况,基本都要求用都要求用ExistsORACLE
41、数据库高级查询数据库高级查询培训专用2023/6/1363636u集合运算集合运算集合运算符集合运算符:复合查询复合查询UNIONUNION ALLINTERSECTMINUSORACLE数据库高级查询数据库高级查询培训专用2023/6/1373737union用途用途将多个将多个SELECT语句的结果集加起来,去掉重复的数据语句的结果集加起来,去掉重复的数据(集合并运算集合并运算),限制:参与限制:参与UNION的每个的每个SELECT语句的相应列必须是相同数据类型语句的相应列必须是相同数据类型语法语法select field1,field2,.field_nfrom tablesUNION
42、select field1,field2,.field_nfrom tables;示例示例select supplier_idfrom suppliersUNIONselect supplier_idfrom orders;ORACLE数据库高级查询数据库高级查询培训专用2023/6/1383838union all用途用途将多个将多个SELECT语句的结果集加起来,不去掉重复的数据语句的结果集加起来,不去掉重复的数据限制:参与限制:参与UNION ALL的每个的每个SELECT语句的相应列必须是相同数据类型语句的相应列必须是相同数据类型语法语法select field1,field2,.fi
43、eld_nfrom tablesUNION ALLselect field1,field2,.field_nfrom tables;示例示例select supplier_idfrom suppliersUNION ALLselect supplier_idfrom orders;ORACLE数据库高级查询数据库高级查询培训专用2023/6/1393939INTERSECT用途用途求多个求多个SELECT的交集的交集(集合交运算集合交运算)限制:参与限制:参与INTERSECT的每个的每个SELECT语句的相应列必须是相同数据类型语句的相应列必须是相同数据类型语法语法select field1
44、,field2,.field_nfrom tablesINTERSECTselect field1,field2,.field_nfrom tables;示例示例select supplier_idfrom suppliersINTERSECTselect supplier_idfrom orders;ORACLE数据库高级查询数据库高级查询培训专用2023/6/1404040minus用途用途求在第一个求在第一个SELECT,不在第二个,不在第二个SELECT的数据的数据(集合减运算集合减运算)限制:参与限制:参与MINUS的每个的每个SELECT语句的相应列必须是相同数据类型语句的相应列必
45、须是相同数据类型语法语法select field1,field2,.field_nfrom tablesMINUSselect field1,field2,.field_nfrom tables;示例示例select supplier_idfrom suppliersMINUSselect supplier_idfrom orders;ORACLE数据库高级查询数据库高级查询培训专用2023/6/1414141u Oracle数据库基本访问语句数据库基本访问语句u PL/SQL编程基础编程基础u Oracle数据库高级查询数据库高级查询 PL/SQL编程基础编程基础培训专用2023/6/142
46、4242PL/SQL程序块结构程序块结构lPL/SQL程序的基本单元是语句块,所有的程序的基本单元是语句块,所有的PL/SQL程序都是由语句块构成的程序都是由语句块构成的。l一个完整的一个完整的PL/SQL语句块由语句块由3个部分组成。个部分组成。PL/SQL编程基础编程基础培训专用2023/6/1434343PL/SQL程序块结构程序块结构l示例示例DECLARE v_ename VARCHAR2(10);BEGIN SELECT ename INTO v_ename FROM emp WHERE empno=7844;DBMS_OUTPUT.PUT_LINE(v_ename);EXCEPT
47、ION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(There is not such a employee);END;PL/SQL编程基础编程基础培训专用2023/6/1444444游标游标l 游标(游标(CURSOR)是)是Oracle系统在内存中开辟的一个工作区,在其中存放系统在内存中开辟的一个工作区,在其中存放SELECT语句返回的查语句返回的查询结果。询结果。l 使用游标时,使用游标时,SELECT语句查询的结果可以是单条记录,多条记录,也可以是零条记录。语句查询的结果可以是单条记录,多条记录,也可以是零条记录。l 游标工作区中,存在着一
48、个指针(游标工作区中,存在着一个指针(POINTER),在初始状态它指向查询结果的首记录。在初始状态它指向查询结果的首记录。PL/SQL编程基础编程基础培训专用2023/6/1454545游标游标l示例示例DECLARE -声明游标 CURSOR c_emp(p_deptno emp.deptno%TYPE)IS SELECT*FROM emp WHERE deptno=p_deptno;v_emp c_emp%ROWTYPE;BEGIN OPEN c_emp(10);-打开游标 LOOP -循环游标 FETCH c_emp INTO v_emp;-获取记录 EXIT WHEN c_emp%N
49、OTFOUND;DBMS_OUTPUT.PUT_LINE(v_emp.empno|v_emp.ename);END LOOP;CLOSE c_emp;-关闭游标 OPEN c_emp(20);LOOP FETCH c_emp INTO v_emp;EXIT WHEN c_emp%NOTFOUND;DBMS_OUTPUT.PUT_LINE(v_emp.empno|v_emp.ename);END LOOP;CLOSE c_emp;END;PL/SQL编程基础编程基础培训专用THANK!培训专用演讲完毕,谢谢观看!培训专用内容总结360。9、查询不含员工的部门信息:部门名称。修改数据库对象,一般用于修改表结构。备注内容。RENAME语句用途:重命名数据库对象名称,常用于重命名表名。e、字段salary增加check约束,salary=1500。主键约束的字段(或字段组合)不允许NULL值。索引并不是越多越好,索引即有优点又有缺点。显式回滚数据库事务,所有DML操作都回滚至最近一次commit后。授指定表全部权限,给指定用户培训专用