mysql存储过程的常用
功能 第一.字符串类
字符集(STR) / /返回字符集
concat(string2 {,}…)/
连接字符串
仪器(字符串,字符串) / /返回子字符串第一次出现在字符串中的
位置,是没有回报的0
1例(string2) / /
转换为小写
左(string2,长度) / /长度的字符string2在左
长度(字符串)字符串长度
load_file(file_name) / /从
文件中读取
定位(子字符串,字符串{,start_position })是可以相同,但可以指定起始位置
负载(string2,长度,垫) / /重复垫加在字符串的开头,直到字符串的长度
LTrim(string2) / /
删除前面的
空间 重复(string2,计数) / /重复计数时间
取代(STR,search_str,replace_str) / /
替换search_str STR在replace_str
RAPD(string2,长度,垫) / / STR的垫,直到长度
RTrim(string2) / /拆卸后的空间
strcmp(string1和string2) / /两字符串大小特征的比较,
子串(STR,位置{长}) / / STR由于位置、长度的字符,
注意:当字符串在MySQL中
处理时,
默认的第一个字符下标为1,即
参数位置必须大于等于1。
MySQL >选择子串('abcd,0,2);
----------------------- + +
| substring('abcd,0,2)|
----------------------- + +
| |
----------------------- + +
1行集(0秒)
MySQL >选择子串('abcd,1,2);
----------------------- + +
| substring('abcd,1,2)|
----------------------- + +
| AB |
----------------------- + +
1行集(0.02秒)
修剪({ {都| } { }领导|尾随填充从} STRING2) / /删除指定字符位置
ucase(string2)/转换为大写
右(string2,长度) / / STRING2最后字符长度
空格(计数)计数空间的生成
两。数学课
ABS(2) / /绝对值
本(decimal_number) /十进制到二进制
吸(2) /围捕
转换(2,from_base,to_base) / /进制转换
楼(2)/向下舍入
格式(数量、decimal_places) / /保留小数
六角(代表) /十六米
注:hex()可以通过一个字符串并返回它的asc-11代码,如六('def '),返回4142143
还可以传递十进制整数,返回它们的十六进制代码,如十六进制(25)返回19。
至少(数量、2,包括最小值) / /
MOD(分子,分母) / /剩余
电源(数字,电源) /需求指数
兰德({种子})随机数
({ }轮数,小数) / /四到五家为小数,小数位数。
注意:返回
类型不
都是整数,例如:
(1)违约变成塑料值。
选择圆(1.23);
------------- + +
|轮(1.23)|
------------- + +
1 | |
------------- + +
1行集(0秒)
选择圆(1.56);
------------- + +
|轮(1.56)|
------------- + +
2 | |
------------- + +
1行集(0秒)
(2)可以将十进制数字的数目
设置为返回浮点数据。
MySQL >选择圆(1.567,2);
---------------- + +
|圆(1.567,2)|
---------------- + +
1.57 | |
---------------- + +
1行集(0秒)
标志(2) / /返回字符,阳性和阴性或0
sqrt(2)/平方
三。
日期时间类
加入时间(日期2,time_interval) / / time_interval来把
convert_tz(datetime2,fromtz,totz) / /转换区
(current_date) / /当前日期
(current_time)/当前时间
(current_timestamp)/当前时间戳
日期(日期) / /日期归还日期
date_add(date2区间,d_value d_type)加日期2 / /日期或时间
date_format(datetime,formatcodes) / / formatcodes格式的日期
date_sub(date2区间,d_value d_type) / /减一时间日期2
DateDiff(DATE1,日期2) / /两日期差异
日期(日期)返回日期
dayname(日期) / /英语周
周(日)/周(1-7),1星期日
dayofyear(日期) / /一年中的第几天
提取物(interval_name日期) / /指定部分的提取日期日期
makedate(年、日) / /在最初的几天,一年又一年,一代日期字符串
创造时间(小时,分钟,秒) / /生成时间序列
名(日期)英语 / /月的
名字 (现在)当前时间
sec_to_time(秒) / /秒数时间
str_to_date(字符串格式) / /字符串作为格式
显示时间
timediff(datetime1,datetime2) / /两时间差
time_to_sec(时间) / /秒}
周({ date_time,start_of_week }) / /前几周
年(日期)/年
dayofmonth(DateTime) / /前几天月
小时(DateTime) / /小时
对last_day每月的最后日期(日期) / /日期
微秒(DateTime) / /微秒
月(DateTime) / /月
分钟(时间) / /分
附录:区间可用类型
一天,day_hour,day_minute,day_second,小时,分钟,hour_minute,hour_second,minute_second,月,第二年
mysql存储过程和触发器
1。
创建存储过程
分隔符
下降过程是否存在` proc_test ` / /
创建
程序` proc_test `(table_name varchar(20),Num int)
开始
SELECT * FROM table_name限制民;
结束
分隔符;
调用存储过程:
电话proc_test(
用户',20);
删除存储过程:
下降过程产品定价
2。创建一个触发器
文法~
创建触发器——触发器必须有名字,最多有64个字符,后面可能有分隔符。它类似于在MySQL中命名其他对象的方式。
{在} - |触发器的
执行时间设置:可以设置为之前或之后的事件。
{插入更新删除} - | |还可以设置触发事件:他们可以在实施过程中引发的插入,更新或删除。
触发器是一个表:当我们在这个表中插入、更新或删除
操作时,我们触发触发器的
激活。我们不能在同一个表中为同一事件安排两个触发器。
每个行触发器的执行间隔:每个行子句通知触发器每隔一行执行一次操作,而不是执行整个表一次。
触发器包含要触发的SQL语句:这里的语句可以是任何合法语句,包括复合语句,但这里的语句受与
函数相同函数的限制。
-您必须有相当的
权限来创建触发器(创建触发器),如果您已经是root用户,那么就足够了,这与SQL标准不同。
创建一个触发器:t_afterinsert_on_tab1
效果:添加TAB1表自动记录并将该记录添加到TAB2表
如果存在` t_afterinsert_on_tab1 `触发降;
创建触发器t_afterinsert_on_tab1
在` TAB1 `插入后
每一行
开始
插入TAB2(tab2_id)值(新。tab1_id);
结束;
创建一个触发器:t_afterdelete_on_tab1
效果:删除表表记录自动删除在TAB2表的相应记录
如果存在` t_afterdelete_on_tab1 `触发降;
创建触发器` t_afterdelete_on_tab1 `
在` TAB1 `删除后
每一行
开始
删除从` TAB2 `哪里tab2_id = old.tab1_id;
结束;
删除触发器:
{ } trigger_name schema_name删除触发器;