数据库学习日记x
来源:互联网 发布:佛山网络推广公司 编辑:程序博客网 时间:2024/06/04 20:13
我们通常使用PL/SQL语言来建立存储过程,
其中PL/SQL集合了
P1.SQL的数据操作能力
P2.过程化语言的流程控制能力
————————————————————————定义————————————————————————
PL/SQL的基本结构是块,每个块可以互相嵌套,每个块可以完成一个逻辑操作。
1.PL/SQL定义变量的语法形式:
变量名 数据结构 [ [NOT NULL] : = 初值表达式 ] or
变量名 数据结构 [ [NOT NULL] 初值表达式 ]
2.常量定义的语法形式
常量名 数据结构 CONSTANT : = 常量表达式
常量必须赋值,并且不能改变,如果试图修改则会返回异常。
3.赋值语句
变量名称 : 表达式
4.PL/SQL块的基本结构
定义部分 DECLARE 定义的变量常量等只能在该基本块中使用
————变量常量游标异常等 当基本块执行结束,则定义不再存在
执行部分 BEGIN
----------SQL语句 PL/SQL的流程控制语句
EXCEPTION 遇到不能继续执行的情况称为异常
----------异常处理部分 遇到异常时,需要采取措施来纠正错误或者报告错误
END
————————————————————————控制结构————————————————————————
5.条件控制语句
一般有三种形式的条件控制语句 IF-THEN,IF-THEN-ELSE和嵌套的IF语句
(1)IF condition THEN
sequence_of_statements
ENDIF
(2)IF condition THEN
sequence_of_statements1
ELSE
sequence_of_statements2
END IF
(3)IF condition THEN
IF ~
END IF
6.循环控制语句
三种:LOOP ,WHILE-LOOP 和 FOR-LOOP
(1)LOOP:
LOOP
sequence_of_statements
END LOOP
多数数据库服务器的PL/SQL提供EXIT,BREAK,LEAVE来结束循环
(2)WHILE_LOOP
WHILE condition LOOP
Sequence_of_statements
END LOOP
(3)FOR-LOOP
FOR count IN [ REVERSE ] bound1 ... bound2 LOOP
Sequence_of_statements
END LOOP
FOR循环的执行过程:将count设置为循环的下界bound1,检查它是否小于上界bound2.当指定REVERSE时将count设置为循环的上界bound2,检查count是否大于下界bound1,增减步长为1
————————————————————————存储过程————————————————————————
PL/SQL块主要有2个类型,命名块和匿名块。
匿名块每次执行都要编译,不能被存储于数据库中,也不能被其他PL/SQL块调用。
命名块包含存储过程和函数,被编译后保存于数据库中,可以被反复调用
存储过程是指:由PL/SQL语句书写的过程(与对象对应)
优点:存储过程运行效率高,不像解释执行的SQL语句在提出请求时才进行语法分析和优化工作。
存储过程降低了客户机与服务器之间的通信量。
存储过程方便实施企业规划。需要修改时只要修改存储过程,无需修改其他应用程序。
——————————————————————用户创建存储过程————————————————————————
1.创建存储过程
CREATE Procedure 过程名 ( [ 参数1,参数2,...])//存储过程首部
AS
< PL/SQL 块>; //存储过程体,描述该存储过程的操作
过程名:数据库服务器合法的对象标识
参数列表:用名字来表示调用时给出的参数值,必须制定值得数据类型。存储结构的参数也可定义输入参数、输出参数或输入/输出参数。默认输入
过程体:一个< PL/SQL 块>。包括声明部分和可执行语句部分。
示例:从一个账户转指定数额的款项到另一个账户中
- 数据库学习日记x
- 数据库学习日记1
- Cocos2d-x 学习日记(一)
- cocos2d-x学习日记 - 2. 调度器
- cocos2d-x学习日记 - 3. 坐标系
- JSP学习日记(三) JDBC数据库操作
- 学习日记-mysql数据库以及jdbc编程
- java 学习日记day9 java与数据库
- os 学习日记之 os x yosemite 安装win7 双系统
- urllib&urllib2库--python2.X(学习日记1)
- urllib&urllib2库--python2.X(学习日记2)
- Beautiful Soup 4库--python2.x(学习日记)
- cocos2d-x学习日记之网络通信篇—HttpClient
- cocos2d-x学习日记之瓦片地图篇—TiledMap
- 开发日记 X
- 黑马程序员_学习日记4_数据库
- 黑马程序员--.Net学习日记——数据库
- 黑马程序员--.Net学习日记——数据库(2)
- C++虚函数的初步基本理解
- 虚函数中调用虚函数要注意的地方
- java的堆和栈
- 闲话git merge 与 git rebase 的区别
- favicon.ico介绍,网页图标的制作&动态网页图标
- 数据库学习日记x
- 一方库、二方库、三方库说明
- JAVA WEB从入门到精通day14 JAVA三层架构、登录注册实战演练
- 初识freemarker
- 【数据结构】链表的原理及java实现
- 154. Find Minimum in Rotated Sorted Array II Hard
- Storm与Spark Streaming比较
- 朋友圈 (并查集)
- 慕课网Linux 达人养成计划 I 学习笔记(一)