没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
南無阿弥陀佛
1
SQL 存储过程编写 参考手册
Oracle、SQL Server、MySQL
南無阿弥陀佛
2
目录
数据类型 ................................................................................................................................................................................... 4
数字类型 ........................................................................................................................................................................... 4
字符类型 ........................................................................................................................................................................... 7
日期类型 ........................................................................................................................................................................... 9
二进制类型 ..................................................................................................................................................................... 12
其他类型 ......................................................................................................................................................................... 13
基础知识 ................................................................................................................................................................................. 14
变量定义与赋值 ............................................................................................................................................................. 14
控制结构 ......................................................................................................................................................................... 15
IF/ELSE ..................................................................................................................................................................... 15
WHILE ...................................................................................................................................................................... 17
FOR .......................................................................................................................................................................... 19
LOOP ........................................................................................................................................................................ 19
REPEAT ..................................................................................................................................................................... 21
循环控制 Break 与 Continue ................................................................................................................................ 23
存储过程 ................................................................................................................................................................................. 26
创建时的基本定义与调用 ............................................................................................................................................. 26
修改存储过程 ................................................................................................................................................................. 27
参数定义 ......................................................................................................................................................................... 28
单个参数 ................................................................................................................................................................. 28
IN、OUT、IN OUT ................................................................................................................................................... 29
参数的默认值 ......................................................................................................................................................... 32
指定参数名称调用 ................................................................................................................................................. 33
函数 ......................................................................................................................................................................................... 35
创建时的基本定义与调用 ............................................................................................................................................. 35
创建返回结果集的函数 ................................................................................................................................................. 39
游标处理 ................................................................................................................................................................................. 41
简单循环处理 I ............................................................................................................................................................... 42
简单循环处理 II .............................................................................................................................................................. 44
带参数的游标 ................................................................................................................................................................. 46
用于更新的游标 ............................................................................................................................................................. 49
游标的状态 ..................................................................................................................................................................... 51
FOR 的使用 ..................................................................................................................................................................... 53
BULK COLLECT 使用......................................................................................................................................................... 53
SELECT INTO 的使用方式 ....................................................................................................................................... 53
FETCH INTO 的使用方式 ......................................................................................................................................... 54
RETURNING INTO 的使用方式 ................................................................................................................................ 55
FORALL 使用 .................................................................................................................................................................... 56
小结 ................................................................................................................................................................................. 58
异常处理 ................................................................................................................................................................................. 59
简单异常测试 ................................................................................................................................................................. 59
没有异常处理时 ..................................................................................................................................................... 59
有异常处理时 ......................................................................................................................................................... 60
南無阿弥陀佛
3
取得错误代码与错误信息 ..................................................................................................................................... 62
自定义错误 ..................................................................................................................................................................... 64
简单命名方式 ......................................................................................................................................................... 64
与数据库错误关联 ................................................................................................................................................. 64
应用级别的错误 ..................................................................................................................................................... 65
错误的传播 ..................................................................................................................................................................... 66
当前代码块未处理异常 ......................................................................................................................................... 66
当前代码块处理异常 ............................................................................................................................................. 67
事务处理 ................................................................................................................................................................................. 69
简单的正常提交-异常回滚 ............................................................................................................................................ 69
自治事务(Oracle Only) .................................................................................................................................................... 71
多用户间锁的处理 ......................................................................................................................................................... 72
简单锁定 ......................................................................................................................................................................... 72
SQL Server (nolock).................................................................................................................................................. 78
SQL Server (READPAST) ............................................................................................................................................ 81
死锁 ................................................................................................................................................................................. 83
临时表 ..................................................................................................................................................................................... 87
创建临时表 ..................................................................................................................................................................... 87
插入数据-查询 ................................................................................................................................................................ 88
总结 ................................................................................................................................................................................. 90
动态 SQL .................................................................................................................................................................................. 91
测试表/数据 ................................................................................................................................................................... 91
直接执行的方式 ............................................................................................................................................................. 91
简单执行 ................................................................................................................................................................. 91
参数的传入 ............................................................................................................................................................. 92
单条结果的获取 ..................................................................................................................................................... 92
游标方式获取 ......................................................................................................................................................... 93
执行存储过程的方式 ..................................................................................................................................................... 95
简单的执行 ............................................................................................................................................................. 95
参数的传入 ............................................................................................................................................................. 96
单条结果的获取 ..................................................................................................................................................... 97
游标方式获取 ......................................................................................................................................................... 98
小结 ................................................................................................................................................................................. 99
南無阿弥陀佛
4
数据类型
数字类型
Oracle
基本类型为 NUMBER(P,S)
P 范围 1 到 38
S 范围 -84 到 127
以下为与 ANSI SQL 兼容而使用:
FLOAT
浮点数
REAL
单精度浮点数
DOUBLE PRECISION
双精度浮点数
NUMERIC
DECIMAL
小数
INTEGER
INT
整数
SMALLINT
小整数
BINARY_FLOAT 浮点数 Oracle10g R1 以后。6 位精度,5 字节
BINARY_DOUBLE 浮点数 Oracle10g R1 以后,13 位精度,9 字节
SQL Server
bit
整型 其值只能是 0、1 或空值。
int
整型 -2 的 31 次方到 2 的 31 次方
smallint
整型 -2 的 15 次方到 2 的 15 次方
tinyint
0 到 255 之间的整数
numeric
decimal
精确数值型 从-10 的 38 次方-1,到 10 的 38 次方-1
money
数据类型用来表示钱和货币值。这种数据类型能存
储从-9220 亿到 9220 亿之间的数据,精确到货币单
位的万分之一
smallmoney
存储从-214748.3648 到 214748.3647 之间的数据,
精确到货币单位的万分之一
float
浮点数
real
浮点数
MySQL BIT[(M)]
位字段类型。M 表示每个值的位数,范围为从 1 到 64。如果 M 被省略, 默认为
1。
· TINYINT[(M)] [UNSIGNED] [ZEROFILL]
很小的整数。带符号的范围是-128 到 127。无符号的范围是 0 到 255。
南無阿弥陀佛
5
· BOOL,BOOLEAN
是 TINYINT(1)的同义词。zero 值被视为假。非 zero 值视为真。
在将来,将根据标准 SQL 引入完全布尔类型的处理。
· SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
小的整数。带符号的范围是-32768 到 32767。无符号的范围是 0 到 65535。
· MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
中等大小的整数。带符号的范围是-8388608 到 8388607。无符号的范围是 0 到
16777215。
· INT[(M)] [UNSIGNED] [ZEROFILL]
普通大小的整数。带符号的范围是-2147483648 到 2147483647。无符号的范围是
0 到 4294967295。
· INTEGER[(M)] [UNSIGNED] [ZEROFILL]
这是 INT 的同义词。
· BIGINT[(M)] [UNSIGNED] [ZEROFILL]
大整数。带符号的范围是-9223372036854775808 到 9223372036854775807。无符
号的范围是 0 到 18446744073709551615。
应清楚 BIGINT 列的下述内容:
o 使用带符号的 BIGINT 或 DOUBLE 值进行所有算法,因此除了位函数,
不应使用大于 9223372036854775807(63 位)的无符号的大整数! 如果这样做,结
果中的最后几位可能出错,这是由于将 BIGINT 值转换为 DOUBLE 进行四舍五入时
造成的错误。
MySQL 可以在以下情况下处理 BIGINT:
§ 当使用整数在一个 BIGINT 列保存大的无符号的值时。
§ 在 MIN(col_name)或 MAX(col_name)中,其中 col_name 指 BIGINT 列。
§ 使用操作符(+,-,*等等)并且两个操作数均为整数时。
o 总是可以使用一个字符串在 BIGINT 列中保存严格整数值。在这种情况
下,MySQL 执行字符串-数字转换,其间不存在双精度表示。
o 当两个操作数均为整数值时,-、+和* 操作符使用 BIGINT 算法。这说
明如果乘两个大整数(或来自返回整数的函数),当结果大于 9223372036854775807
时,会得到意想不到的结果。
· FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
小(单精度)浮点数。允许的值是-3.402823466E+38 到-1.175494351E-38、0 和
1.175494351E-38 到 3.402823466E+38。这些是理论限制,基于 IEEE 标准。实际的
范围根据硬件或操作系统的不同可能稍微小些。
M 是小数纵位数,D 是小数点后面的位数。如果 M 和 D 被省略,根据硬件允许的
限制来保存值。单精度浮点数精确到大约 7 位小数位。
如果指定 UNSIGNED,不允许负值。
使用浮点数可能会遇到意想不到的问题,因为在 MySQL 中的所有计算用双精度完
成。参见 A.5.7 节,“解决与不匹配行有关的问题”。
· DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
普 通 大 小 ( 双 精 度 ) 浮 点 数 。 允 许 的 值 是 -1.7976931348623157E+308 到
-2.2250738585072014E-308 、 0 和 2.2250738585072014E-308 到
1.7976931348623157E+308。这些是理论限制,基于 IEEE 标准。实际的范围根据
硬件或操作系统的不同可能稍微小些。
M 是小数总位数,D 是小数点后面的位数。如果 M 和 D 被省略,根据硬件允许的
剩余98页未读,继续阅读
资源评论
- startalker2014-02-12很好不错,简单易懂的解释了数据库存储过程怎么写
- ljhlylmlm2014-01-02正是需要的时候期待有所帮助 谢谢了
-1悟空1-
- 粉丝: 18
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功