Oracle数据库-SQL+PLSQL-Less16-与Oracle服务器之间的交互.pptx_第1页
Oracle数据库-SQL+PLSQL-Less16-与Oracle服务器之间的交互.pptx_第2页
Oracle数据库-SQL+PLSQL-Less16-与Oracle服务器之间的交互.pptx_第3页
Oracle数据库-SQL+PLSQL-Less16-与Oracle服务器之间的交互.pptx_第4页
Oracle数据库-SQL+PLSQL-Less16-与Oracle服务器之间的交互.pptx_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、与Oracle服务器之间的交互,项目目标,1.向DEPT表中插入一条纪录。要求:部门号比最大部门号大10;部门名称使用SQL*plus替换变量,让用户输入部门名称;部门位置暂且为空值。 2.写一个 PL/SQL块,修改现存部门的部门位置。使用替换变量让用户输入部门号码,和要修改的部门位置的值。并显示修改后的结果:部门号、新的位置。,所需知识点,使用PL/SQL查询数据 使用PL/SQL做操作 游标的属性介绍,PL/SQL中的SQL语句,使用 SELECT语句可以取出数据行.但只能返回一行数据. 使用DML 语句可以改变数据库中的数据行. 使用 COMMIT, ROLLBACK, 或者 SAVE

2、POINT 语句来控制一个事务. 使用隐式游标来检验DML语句的输出.,PL/SQL中的SELECT语句,使用SELECT语句从数据库中查询数据. 语法:,SELECT select_list INTO variable_name, variable_name. | record_name FROM table WHERE condition;,PL/SQL中的SELECT语句,需要使用 INTO 子句. 例子:查询出部门“SALES”部门号和位置,DECLARE v_deptnoNUMBER(2); v_locVARCHAR2(15); BEGIN SELECTdeptno, loc INT

3、Ov_deptno, v_loc FROMdept WHEREdname = SALES; dbms_output.put_line(v_deptno); dbms_output.put_line(v_loc); END; /,使用 PL/SQL来查询数据,查出某个部门中,所有雇员的工资之和. 举例:,DECLARE v_sum_sal emp.sal%TYPE; v_deptno NUMBER NOT NULL := 10; BEGIN SELECTSUM(sal) - group function INTOv_sum_sal FROMemp WHEREdeptno = v_deptno;

4、DBMS_OUTPUT.PUT_LINE(v_sum_sal); END; /,使用 PL/SQL来操纵数据,使用 DML 语句来修改数据库表中的数据: INSERT UPDATE DELETE,插入数据,向 EMP 表中增加新的员工. 例子:,CREATE SEQUENCE empno_sequence START WITH 1000 INCREMENT BY 1 NOCACHE CYCLE; BEGIN INSERT INTO emp(empno, ename, job, deptno) VALUES (empno_sequence.NEXTVAL, HARDING,CLERK, 10);

5、 END; /,修改数据,在EMP表中,增加职务是 Analysts的雇员的工资. 例子:,DECLARE v_sal_increase emp.sal%TYPE := 2000; BEGIN UPDATEemp SETsal = sal + v_sal_increase WHEREjob = ANALYST; commit; END;,删除数据,从 EMP 表中,删除10号部门的所有的员工的信息. 例子:,DECLARE v_deptno emp.deptno%TYPE := 10; BEGIN DELETE FROM emp WHERE deptno = v_deptno; END;,CO

6、MMIT 和 ROLLBACK语句,一个事务开始的DML语句往往以 COMMIT 或者 ROLLBACK开头,以初始化一个新的事务. 使用 COMMIT和 ROLLBACK 命令来明确的结束一个事务.,SQL 游标,游标是Oracle服务器为SQL语句建立的一个私有的 SQL 工作区. 两种游标: 隐式(Implicit)游标 显式(Explicit)游标 在缺省情况下,Oracle 服务以隐式游标来编译和执行SQL 语句. 显式游标是由编程者明确指定的.,SQL 游标属性,使用SQL游标属性,可以测试SQL语句的输出.,SQL%ROWCOUNT最后一次执行的SQL语句,所影响到的数据行数(一

7、个整数值) SQL%FOUND一个布尔值,如果最后一次SQL语句影响到了一条或者多条记录,那么该值为True,否则为false SQL%NOTFOUND一个布尔值,如果最后一次SQL语句影响到了一条或者多条记录,那么该值为False,否则为true SQL%ISOPEN一个布尔值,如果游标是打开的,那么该值为true,否则为false。对于隐式游标,该值永远为false,因为当语句执行完毕后,游标自动关闭,SQL 游标属性,从 emp05 表中删去员工号为7369的员工信息, 并打印删除的行数. 例子:,create table emp05 as select * from emp; VARI

8、ABLE rows_deleted VARCHAR2(30) DECLARE empno_id emp.empno%TYPE := 7369; BEGIN DELETE FROM emp05 WHERE empno = empno_id; :rows_deleted := (SQL%ROWCOUNT | rows deleted.); dbms_output.put_line(:rows_deleted); END;,1.向DEPT表中插入一条纪录。要求:部门号比最大部门号大10;部门名称使用SQL*plus替换变量,让用户输入部门名称;部门位置暂且为空值。 DECLARE temp dept.deptno%type; v_deptno number(2); v_dname varchar(14); v_loc varchar(13); BEGIN select max(deptno) into temp from scott.dept; temp:=temp + 10; insert into dept(deptno,dname,loc)values(temp, /,练习案例,2.写一个 PL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论