mysql存储过程教程实例.docx
- 文档编号:6824676
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:7
- 大小:19.02KB
mysql存储过程教程实例.docx
《mysql存储过程教程实例.docx》由会员分享,可在线阅读,更多相关《mysql存储过程教程实例.docx(7页珍藏版)》请在冰豆网上搜索。
mysql存储过程教程实例
mysql5.0存储过程学习总结
一.创建存储过程
1.基本语法:
createproceduresp_name()
begin
………
end
2.参数传递
二.调用存储过程
1.基本语法:
callsp_name()
注意:
存储过程名称后面必须加括号,哪怕该存储过程没有参数传递
三.删除存储过程
1.基本语法:
dropproceduresp_name//
2.注意事项
(1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
四.区块,条件,循环
1.区块定义,常用
begin
……
end;
也可以给区块起别名,如:
lable:
begin
………..
endlable;
可以用leavelable;跳出区块,执行区块以后的代码
2.条件语句
if 条件 then
statement
else
statement
end if;
3.循环语句
(1).while循环
[label:
] WHILE expression DO
statements
END WHILE [label] ;
(2).loop循环
[label:
] LOOP
statements
END LOOP [label];
(3).repeatuntil循环
[label:
] REPEAT
statements
UNTIL expression
END REPEAT [label] ;
五.其他常用命令
1.showprocedurestatus
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
2.showcreateproceduresp_name
显示某一个存储过程的详细信息
mysql存储过程中要用到的运算符
mysql存储过程学习总结-操作符
算术运算符
+ 加 SETvar1=2+2; 4
- 减 SETvar2=3-2; 1
* 乘 SETvar3=3*2; 6
/ 除 SETvar4=10/3; 3.3333
DIV 整除 SETvar5=10DIV3; 3
% 取模 SETvar6=10%3; 1
比较运算符
> 大于 1>2 False
< 小于 2<1 False
<= 小于等于 2<=2 True
>= 大于等于 3>=2 True
BETWEEN 在两值之间 5BETWEEN1AND10 True
NOTBETWEEN 不在两值之间 5NOTBETWEEN1AND10 False
IN 在集合中 5IN(1,2,3,4) False
NOTIN 不在集合中 5NOTIN(1,2,3,4) True
= 等于 2=3 False
<>,!
= 不等于 2<>3 False
<=> 严格比较两个NULL值是否相等 NULL<=>NULL True
LIKE 简单模式匹配 "GuyHarrison"LIKE"Guy%" True
REGEXP 正则式匹配 "GuyHarrison"REGEXP"[Gg]reg" False
ISNULL 为空 0ISNULL False
ISNOTNULL 不为空 0ISNOTNULL True
逻辑运算符
与(AND)
--@page{size:
8.5in11in;margin:
0.79in}TDP{margin-bottom:
0in}THP{margin-bottom:
0in;font-style:
italic}P{margin-bottom:
0.08in}-->
AND
TRUE
FALSE
NULL
TRUE
TRUE
FALSE
NULL
FALSE
FALSE
FALSE
NULL
NULL
NULL
NULL
NULL
或(OR)
--@page{size:
8.5in11in;margin:
0.79in}TDP{margin-bottom:
0in}THP{margin-bottom:
0in;font-style:
italic}P{margin-bottom:
0.08in}-->
OR
TRUE
FALSE
NULL
TRUE
TRUE
TRUE
TRUE
FALSE
TRUE
FALSE
NULL
NULL
TRUE
NULL
NULL
异或(XOR)
--@page{size:
8.5in11in;margin:
0.79in}TDP{margin-bottom:
0in}THP{margin-bottom:
0in;font-style:
italic}P{margin-bottom:
0.08in}-->
XOR
TRUE
FALSE
NULL
TRUE
FALSE
TRUE
NULL
FALSE
TRUE
FALSE
NULL
NULL
NULL
NULL
NULL
位运算符
| 位或
& 位与
<< 左移位
>> 右移位
~ 位非(单目运算,按位取反)
mysq存储过程中常用的函数,字符串类型操作,数学类,日期时间类。
mysql存储过程基本函数
一.字符串类
CHARSET(str)//返回字串字符集
CONCAT(string2 [,...])//连接字串
INSTR(string,substring)//返回substring首次在string中出现的位置,不存在返回0
LCASE(string2)//转换成小写
LEFT(string2,length)//从string2中的左边起取length个字符
LENGTH(string)//string长度
LOAD_FILE(file_name)//从文件读取内容
LOCATE(substring,string [,start_position])同INSTR,但可指定开始位置
LPAD(string2,length,pad)//重复用pad加在string开头,直到字串长度为length
LTRIM(string2)//去除前端空格
REPEAT(string2,count)//重复count次
REPLACE(str,search_str,replace_str)//在str中用replace_str替换search_str
RPAD(string2,length,pad)//在str后用pad补充,直到长度为length
RTRIM(string2)//去除后端空格
STRCMP(string1,string2)//逐字符比较两字串大小,
SUBSTRING(str,position [,length])//从str的position开始,取length个字符,
注:
mysql中处理字符串时,默认第一个字符下标为1,即参数position必须大于等于1
mysql>selectsubstring(’abcd’,0,2);
+———————–+
|substring(’abcd’,0,2)|
+———————–+
| |
+———————–+
1rowinset(0.00sec)
mysql>selectsubstring(’abcd’,1,2);
+———————–+
|substring(’abcd’,1,2)|
+———————–+
|ab |
+———————–+
1rowinset(0.02sec)
TRIM([[BOTH|LEADING|TRAILING][padding]FROM]string2)//去除指定位置的指定字符
UCASE(string2)//转换成大写
RIGHT(string2,length)//取string2最后length个字符
SPACE(count)//生成count个空格
二.数学类
ABS(number2)//绝对值
BIN(decimal_number)//十进制转二进制
CEILING(number2)//向上取整
CONV(number2,from_base,to_base)//进制转换
FLOOR(number2)//向下取整
FORMAT(number,decimal_places)//保留小数位数
HEX(DecimalNumber)//转十六进制
注:
HEX()中可传入字符串,则返回其ASC-11码,如HEX(’DEF’)返回4142143
也可以传入十进制整数,返回其十六进制编码,如HEX(25)返回19
LEAST(number,number2 [,..])//求最小值
MOD(numerator,denominator)//求余
POWER(number,power)//求指数
RAND([seed])//随机数
ROUND(number [,decimals])//四舍五入,decimals为小数位数]
注:
返回类型并非均为整数,如:
(1)默认变为整形值
mysql>selectround(1.23);
+————-+
|round(1.23)|
+————-+
| 1|
+————-+
1rowinset(0.00sec)
mysql>selectround(1.56);
+————-+
|round(1.56)|
+————-+
| 2|
+————-+
1rowinset(0.00sec)
(2)可以设定小数位数,返回浮点型数据
mysql>selectround(1.567,2);
+—————-+
|round(1.567,2)|
+—————-+
| 1.57|
+—————-+
1rowinset(0.00sec)
SIGN(number2)//返回符号,正负或0
SQRT(number2)//开平方
三.日期时间类
ADDTIME(date2,time_interval)//将time_interval加到date2
CONVERT_TZ(datetime2,fromTZ,toTZ)//转换时区
CURRENT_DATE( )//当前日期
CURRENT_TIME( )//当前时间
CURRENT_TIMESTAMP( )//当前时间戳
DATE(datetime)//返回datetime的日期部分
DATE_ADD(date2,INTERVALd_valued_type)//在date2中加上日期或时间
DATE_FORMAT(datetime,FormatCodes)//使用formatcodes格式显示datetime
DATE_SUB(date2,INTERVALd_valued_type)//在date2上减去一个时间
DATEDIFF(date1,date2)//两个日期差
DAY(date)//返回日期的天
DAYNAME(date)//英文星期
DAYOFWEEK(date)//星期(1-7),1为星期天
DAYOFYEAR(date)//一年中的第几天
EXTRACT(interval_name FROMdate)//从date中提取日期的指定部分
MAKEDATE(year,day)//给出年及年中的第几天,生成日期串
MAKETIME(hour,minute,second)//生成时间串
MONTHNAME(date)//英文月份名
NOW( )//当前时间
SEC_TO_TIME(seconds)//秒数转成时间
STR_TO_DATE(string,format)//字串转成时间,以format格式显示
TIMEDIFF(datetime1,datetime2)//两个时间差
TIME_TO_SEC(time)//时间转秒数]
WEEK(date_time[,start_of_week])//第几周
YEAR(datetime)//年份
DAYOFMONTH(datetime)//月的第几天
HOUR(datetime)//小时
LAST_DAY(date)//date的月的最后日期
MICROSECOND(datetime)//微秒
MONTH(datetime)//月
MINUTE(datetime)//分
附:
可用在INTERVAL中的类型
DAY,DAY_HOUR,DAY_MINUTE,DAY_SECOND,HOUR,HOUR_MINUTE,HOUR_SECOND,MINUTE,MINUTE_SECOND,MONTH,SECOND,YEAR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysql 存储 过程 教程 实例
