`

mysql 存储过程学习总结

阅读更多

mysql存储过程的创建,删除,调用及其他常用命令

mysql 5.0存储过程学习总结

一.创建存储过程

1.基本语法:

 

create procedure sp_name()
begin
………
end

2.参数传递

二.调用存储过程

1.基本语法:call sp_name()
注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递

三.删除存储过程

1.基本语法:
drop procedure sp_name//
2.注意事项
(1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程

四.区块,条件,循环

1.区块定义,常用
begin
……
end;
也可以给区块起别名,如:
lable:begin
………..
end lable;
可以用leave lable;跳出区块,执行区块以后的代码
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).repeat until循环

 

[label:] REPEAT

statements

UNTIL expression

END REPEAT [label] ;

 

五.其他常用命令

1.show procedure status
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
2.show create procedure sp_name
显示某一个存储过程的详细信息

 

 

mysql存储过程中要用到的运算符

mysql存储过程学习总结-操作符

算术运算符

+     加   SET var1=2+2;       4
-     减   SET var2=3-2;       1
*     乘   SET var3=3*2;       6
/     除   SET var4=10/3;      3.3333
DIV   整除 SET var5=10 DIV 3;  3
%     取模 SET var6=10%3 ;     1

比较运算符

>            大于 1>2 False
<            小于 2<1 False
<=           小于等于 2<=2 True
>=           大于等于 3>=2 True
BETWEEN      在两值之间 5 BETWEEN 1 AND 10 True
NOT BETWEEN  不在两值之间 5 NOT BETWEEN 1 AND 10 False
IN           在集合中 5 IN (1,2,3,4) False
NOT IN       不在集合中 5 NOT IN (1,2,3,4) True
=            等于 2=3 False
<>, !=       不等于 2<>3 False
<=>          严格比较两个NULL值是否相等 NULL<=>NULL True
LIKE         简单模式匹配 "Guy Harrison" LIKE "Guy%" True
REGEXP       正则式匹配 "Guy Harrison" REGEXP "[Gg]reg" False
IS NULL      为空 0 IS NULL False
IS NOT NULL  不为空 0 IS NOT NULL True

逻辑运算符

(AND)





 

 

 

AND

TRUE

FALSE

NULL

TRUE

TRUE

FALSE

NULL

FALSE

FALSE

FALSE

NULL

NULL

NULL

NULL

NULL

 

或(OR)

 

 

 

OR

TRUE

FALSE

NULL

TRUE

TRUE

TRUE

TRUE

FALSE

TRUE

FALSE

NULL

NULL

TRUE

NULL

NULL

 

异或(XOR)

 

 

 

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> select substring(’abcd’,0,2);
+———————–+
| substring(’abcd’,0,2) |
+———————–+
|                       |
+———————–+
1 row in set (0.00 sec)

 

mysql> select substring(’abcd’,1,2);
+———————–+
| substring(’abcd’,1,2) |
+———————–+
| ab                    |
+———————–+
1 row in set (0.02 sec)

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> select round(1.23);
+————-+
| round(1.23) |
+————-+
|           1 |
+————-+
1 row in set (0.00 sec)

 

mysql> select round(1.56);
+————-+
| round(1.56) |
+————-+
|           2 |
+————-+
1 row in set (0.00 sec)

(2)可以设定小数位数,返回浮点型数据
mysql> select round(1.567,2);
+—————-+
| round(1.567,2) |
+—————-+
|           1.57 |
+—————-+
1 row in set (0.00 sec)

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 , INTERVAL d_value d_type ) //在date2中加上日期或时间
DATE_FORMAT (datetime ,FormatCodes ) //使用formatcodes格式显示datetime
DATE_SUB (date2 , INTERVAL d_value d_type ) //在date2上减去一个时间
DATEDIFF (date1 ,date2 ) //两个日期差
DAY (date ) //返回日期的天
DAYNAME (date ) //英文星期
DAYOFWEEK (date ) //星期(1-7) ,1为星期天
DAYOFYEAR (date ) //一年中的第几天
EXTRACT (interval_name  FROM date ) //从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 

 

分享到:
评论

相关推荐

    mysql存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...

    mysql 5_0存储过程学习总结

    mysql 5_0存储过程学习总结 mysql 5_0存储过程学习总结

    MySQL存储过程入门学习

    ### MySQL存储过程入门学习 #### 一、存储过程概述 **存储过程**(Stored Procedure)是一种在数据库中存储的预先编写并编译好的SQL程序或函数集合。存储过程的主要优势在于可以提高应用程序的性能和响应速度,同时...

    MySQL存储过程基础教程.pdf

    ### MySQL存储过程基础知识点 #### 1. 存储过程的定义和示例 存储过程是存储在MySQL服务器上的预编译的SQL代码段,它能够接受参数、执行一系列的SQL语句和流程控制语句。存储过程可以提高数据库操作的效率,同时...

    MySQL数据库存储过程

    同时,`mysql存储过程教程.pdf`很可能是一个详细的指南,涵盖了存储过程的基础概念、语法、高级特性以及实例。通过阅读这份教程,读者可以学习如何创建、修改、删除存储过程,理解如何在存储过程中使用变量、游标、...

    mysql5.0存储过程学习总结资料.pdf

    **六、MySQL存储过程基本函数** 存储过程支持多种内置函数,用于处理字符串、数值和日期时间类型的数据: 1. **字符串类**:包括`CHARSET()`、`CONCAT()`、`INSTR()`、`LCASE()`、`LEFT()`、`LENGTH()`、`LOAD_FILE...

    Mysql存储过程常用语句模板(含变量,if,三种循环等等)

    ### MySQL存储过程常用语句详解 #### 一、概述 MySQL 存储过程是一种预编译的 SQL 脚本,它可以包含复杂的流程控制逻辑,如条件判断、循环等,并可接受输入参数、返回单个或多个结果集以及输出参数。通过使用存储...

    MySQL存储过程实例教程

    总结起来,MySQL存储过程提供了一种强大而灵活的方式来组织和执行数据库操作,可以提升代码的可读性和可维护性。在PHP中调用存储过程可以简化复杂的数据库交互,尤其是在处理大量数据或需要执行一系列操作时。通过...

    MySQL存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预定义一系列SQL语句,形成一个可重复调用的代码块。在本教程中,我们将深入探讨MySQL存储过程的编写规范和实际应用,帮助你更好地理解和掌握这一技术...

    MySql存储过程以及MyBatis3

    总结,MySQL存储过程提供了数据库级别的代码复用和事务管理,而MyBatis3作为Java持久层框架,简化了数据库操作,两者结合可以实现高效、安全的数据处理。学习和掌握这两者,对于提升数据库应用开发的效率和质量至关...

    sql存储过程学习资料--总结的很全的 暴经典的资料啊

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,它是预...这份“存储过程学习资料--总结的很全的”压缩包,无疑是深入学习存储过程的好助手,无论你是初学者还是经验丰富的开发者,都能从中受益。

    Mysql存储过程

    SQL 存储过程是数据库管理系统中的一个重要特性,它允许用户预先定义一组SQL语句并将其存储在数据库中,便于后续的调用和执行。...通过学习和实践,开发者可以更好地利用MySQL存储过程来解决实际问题。

    MySQL存储过程:批量操作的高效利器

    ### MySQL存储过程:批量操作的高效利器 #### 一、MySQL概述 MySQL 是一个非常流行的开源关系型数据库管理系统(RDBMS),它以其强大的功能、可靠性和灵活性在Web应用程序领域中占据着重要的地位。MySQL 基于结构...

    linux环境下mysql存储过程开启定时任务,bing log.rar

    总结来说,这个压缩包文件可能包含了如何在Linux环境下使用MySQL存储过程创建定时任务,并记录和分析日志的教程。涉及的关键技术包括MySQL存储过程的编写与调用、Cron服务的配置、日志管理以及可能的SQL性能监控。...

    10分钟学会写一个简单的Mysql存储过程.pdf

    在MySQL中,存储过程是一种非常重要的数据库对象,它允许开发者将一组复杂的SQL语句...以上内容覆盖了存储过程的基本操作,包括创建、查看、执行和删除,以及常见问题的处理,希望对学习MySQL存储过程的读者有所帮助。

Global site tag (gtag.js) - Google Analytics