Oracle数据库的开发简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
INSERT 语句: DECLARE v_StudentId student.studentId.%TYPE; BEGIN SELECT student_seq.NEXTVAL INTO v_StrdentId FROM dual;
INSERD INTO student(id,first_name,last_name) VALUES(v_StudentId,’李’,’小二’); INSERT INTO student(id,first_name,last_name) VALUES(student_seq.NEXTVAL,’WANG’,’SUN’); END; UPDATE 语句: DECLARE v_Major v_CreditIncrease BEGIN
PL/SQL块结构
• PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个 PL/SQL 程序包含了一个或多个逻辑块,每个块都可以划分为三个部分。 与其他语言相同,变量在使用之前必须声明,PL/SQL提供了独立的专门 用于处理异常的部分,下面描述了PL/SQL块的不同部分: 1:声明部分(Declaration section)
ROLLBACK: A:事务完成的所有工作都被取消(UNDO), 就好像没有执行这些命令 一样。 B:事务所需要执行的所有加锁(LOCK)处理都被释放了。 保存点(SAVEPOINT):ROLLBACK语句会撤消掉整个的事务,但是 如果使用了SAVEPOINT命令,那么只有部分的事务需要被取消。 BEGIN INSERT INTO temp_table(char_col) VALUES (‘INSERT ONE’); SAVEPOINT A; INSERT INTO temp_table(char_col) VALUES (‘INSERT TWO’); SAVEPOINT B; INSERT INTO temp_table(char_col) VALUES (‘INSERT THREE’); SAVEPOINT C; COMMIT; END; 如果我们在需要的插入语句的位置上放入: ROLLBACK TO B; 则只提交前两条语句,第三条语句回滚了。
PL/SQL语法的特点
• PL/SQL的特点如下:
1: PL/SQL是一种高性能的基于事务处理的语言,能运行在任何ORACLE环 境中,支持所有数据处理命令。通过使用PL/SQL程序单元处理SQL的数据定义和 数据控制元素。
2: PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE 对象类型
•
PL/SQL块的命名和匿名 PL/SQL程序块可以是一个命名的程序块也可以是一个匿名程序块。匿名 程序块可以用在服务器端也可以用在客户端。 命名程序块可以出现在其他PL/SQL程序块的声明部分,这方面比较明显 的是子程序,子程序可以在执行部分引用,也可以在异常处理部分引用。
四种程序块: 函数 (FUNCTION) 函数是命名了的、存储在数据库中的PL/SQL程序块。函数接受零个或多个 输入参数,有一个返回值,返回值的数据类型在创建函数时定义。定义函 数的语法如下: FUNCTION name [{parameter[,parameter,...])] RETURN datatypes IS [local declarations] BEGIN execute statements [EXCEPTION exception handlers] END [name]
过程 (PROCEDURE)
存储过程是一个PL/SQL程序块,接受零个或多个参数作为输入 (INPUT)或输出(OUTPUT)、或既作输入又作输出(INOUT),与函 数不同,存储过程没有返回值,存储过程不能由SQL语句直接使 用,只能通过EXECUT命令或PL/SQL程序块内部调用,定义存储 过程的语法如下: PROCEDURE name [(parameter[,parameter,...])] IS [local declarations] BEGIN execute statements [EXCEPTION exception handlers ] END [name]
数据库操纵语言(DATE MANIPULATION LANGUAGE
DML)
用来改变表中的数据或者查询数据库表中的数据但是不会表或者其他对象的结构。 SELECT 语句: DECLARE v_StudentRecord student%ROWTYPE; v_Department classes.department%TYPE; v_Course classes.course%TYPE; BEGIN SELECT * INTO v_StudentRecord FROM student WHERE id = 1000; SELECT department,course INTO v_Department, v_Course FROM student WHERE room_id = 999; END;
Oracle数据库开发简介及在集 装箱管理信息系统中的应用
内容
• 1:PL/SQL语言介绍 • 2:ORACLE常用工具介绍 • 3:第三方开发管理工具介绍
PL/SQL语言介绍
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将 PL/SQL整合到ORACLE 服务器和其他工具中。 主要介绍以下几方面: 1:PL/SQL语法的特点。 2:基本的SQL语句。 3:PL/SQL块结构。 4: PL/SQL块语法。 5:四种类型的可存储的程序块。 6:一个PL/SQL块的例子。 7:PL/SQL块和事务的关系。
5: PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE 能够运行的操作系统都是非常便利的
6: 对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在网络环境下 这就意味作每一个独立的调用都必须被oracle服务器处理,这就占用大量的服务器 时间,同时导致网络拥挤。而PL/SQL是以整个语句块发给服务器,这就降低了网 络拥挤。
student.major%TYPE; NUMBER := 3;
v_Major := ‘History’; UPDATE student SET current_credits = current_credits + v_Creditlncrease WHERE major = v_Major; v_Major := ‘Chemistry’; UPDATE student SET current_credits = current_credits + 10 WHERE major = v_Major;
RESOURCE DBA
自定义角色的语法:角色(Role)本质上就是一个权限的集合。 CREATE ROLE table_query; GRANT SELECT ON students TO table_query; GRANT SELECT ON classes TO table_query; GRANT UPDATE ON students to table_query; REVOKE SELECT,UPDATE ON students FROM table_query; REVOKE SELECT ON classes TO table_query;
一些DDL介绍
1:系统角色和权限
系统角色名 CONNECT
被赋予的权限 ALTER SESSION , CREATE DATABASELINK , CREATE SEQUENCE , CREATE SESSION , CREATE SYNONYM , CREATE TABLE , CREATE VIEW , CREATE CLUSTER CREATE CLUSTER , CREATE PROCEDURE , CREATE SEQUENCE , CREATE TABLE , CREATE FUNCTION 所有系统权限
END; DELETE 语句: DECLARE v_StudentCutoff student.studentCutoff.%TYPE; BEGIN v_StudentCutoff := 10; DELETE FROM classes WHERE current_student < v_StudentCutoff; v_StudentCutoff := 50; DELETE FROM classes WHERE current_student >= v_StudentCutoff; END;
3:异常处理部分(Exception section)
这一部分是可选的,在这一部分中处理异常或错误。
PL/SQL的块语法
• PL/SQL块语法 [DECLARE] ---declaration statements BEGIN ---executable statements [EXCEPTION] ---exception statements END • 说明 PL/SQL块中的每一条语句都必须以分号结束,SQL语句可以使多行的, 但分号表示该语句的结束。一行中可以有多条SQL语句,他们之间以分 号分隔。每一个PL/SQL块由BEGIN或DECLARE开始,以END结束。注 释由--标示。
来自百度文库
GRANT 语法: GRANT privilege ON object TO grantee; 例子: 给用户赋予操作的权限: GRANT SELECT ON classes TO userA; 把角色权限赋予用户: GRANT CONNECT TO userA;
2:事务控制: 事务(TRANSACTION)是一系列作为一个单元被成功或不成功执行的SQL 语句。事务是关系型数据库的标准部件并且可以避免不一致的数据。 当向数据库发出了COMMIT OR ROLLBACK语句,那么该事务就被终结 了. COMMIT: A:事务完成的工作都是永久性的。 B:其他的会话可以看到此事务所进行的修改。 C:事务所需要执行的所有加锁(LOCK)处理都被释放了。
声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字DECLARE开始,如果 不需要声明变量或常量,那么可以忽略这一部分;需要说明的是游标的声明也在这一部分。
• • •
2:执行部分(Executable section)
执行部分是PL/SQL块中的指令部分,由关键字BEGIN开始,所有的可执行语句都放在这一部 分,其他的PL/SQL块也可以放在这一部分 。
基本的SQL DML语法
SQL(Structured Query Language) 定义Oracle中的数据是如何被处理的。
类别
示例SQL语句
数据操纵语言
数据定义语言 事务控制 嵌入式SQL
SELECT,INSERT,UPDATE,DELETE等
DROP,CREATE,ALTER,GRANT,REVOKE等 COMMIT,ROLLBACK等 CONNECT,DECLARE CURSOR等
3: PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的 PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有 很好的可重用性。
4: 可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序的安全性。 可以授权或撤销数据库其他用户访问PL/SQL程序的能力。
WHERE 语句: SELECT , INSERT , UPDATE , DELETE 语句所有都将WHERE 子句作为 其操作的一个不可缺少的部分进行包含。
WHERE 子句由条件组成,中间用AND , OR 和 NOT 这样的布尔运算符 连接起来,条件通常采用比较的形式。
DECLARE v_StudentCutoff student.studentCutoff.%TYPE; BEGIN v_StudentCutoff := 10; DELETE FROM classes WHERE current_student < v_StudentCutoff; v_StudentCutoff := 50; DELETE FROM classes WHERE current_student >= v_StudentCutoff; END;