当前位置:网站首页>MySQL数据库讲解(九)

MySQL数据库讲解(九)

2022-04-23 14:07:00 C和弦~

目录

引言

一.函数

1.数学函数

2.聚合函数 

3.字符串函数

4.日期字符串函数

二.存储过程

1.简介

2.优点

3.语法

4.参数分类

5.带参数的存储过程

6.修改存储过程

7.删除存储过程

总结


引言

Mysql 数据库函数提供了能够实现各种功能的方法,使我们在查询记录时能够更高效的输出。Mysql 内建了很多函数,常用的包括数学函数、聚合函数、字符串函数和日期时间函数

一.函数

1.数学函数

数学函数          	描述
abs(x)	            返回 x 的绝对值
rand()	            返回 0 到 1 的随机数
mod(x,y)	        返回 x 除以 y 以后的余数
power(x,y)	        返回 x 的 y 次方
round(x)	        返回离 x 最近的整数
round(x,y)	        保留 x 的 y 位小数四舍五入后的值
sqrt(x)	            返回 x 的平方根
truncate(x,y)	    返回数字 x 截断为 y 位小数的值
ceil(x)	            返回大于或等于 x 的最小整数
floor(x)	        返回小于或等于 x 的最大整数
greatest(x1,x2…)	返回集合中最大的值
least(x1,x2…)	    返回集合中最小的值

2.聚合函数 

聚合函数	       描述
avg()	       返回指定列的平均值
count()        返回指定列中非 NULL 值的个数
min()	       返回指定列的最小值
max()	       返回指定列的最大值
sum(x)	       返回指定列的所有值之和

3.字符串函数

字符串函数	  描述
trim()	      返回去除指定格式的值
concat(x,y)	  将提供的参数 x 和 y 拼接成一个字符串
substr(x,y)	  获取从字符串 x 中的第 y 个位置开始的字符串,跟substring()函数作用相同
substr(x,y,z) 获取从字符串 x 中的第 y 个位置开始长度为 z 的字符串
length(x)	  返回字符串 x 的长度
replace(x,y,z)	将字符串 z 替代字符串 x 中的字符串 y
upper(x)	 将字符串 x 的所有字母变成小写字母
left(x,y)	 返回字符串 x 的前 y 个字符
right(x,y)	 返回字符串 x 的后 y 个字符
repeat(x,y)	 将字符串 x 重复 y 次
space(x)	 返回 x 个空格
strcmp(x,y)	 比较 x 和 y,返回的值可以为-1,0,1
reverse(x)	 将字符串 x 反转

4.日期字符串函数

日期时间函数	   描述
curdate()	   返回当前时间的年月日
curtime()	   返回当前市价你的时分秒
now()	       返回当前时间的日期和时间
month(x)	   返回日期x中的月份值
week(x)	       返回日期x是年度的第几个周
hour(x)	       返回x中的小时值
minute(x)  	   返回日期x中的分钟值
second(x)	    返回日期x中的秒数值
dayotweek(x)	返回x是星期几,1为星期日,2为星期一
replace(x,y,z)	将字符z替代字符串x中的字符串y
dayotmonth(x)	计算日期x是本月的第几天
dayotyear(x)	计算日期x是本年的第几天

二.存储过程

1.简介

  • MysQL数据库存储过程是一组为了完成特定功能的SQL语句的集合。
  •  存储过程这个功能是从5.0版本才开始支持的,它可以加快数据库的处理速度,增强数据库在实际应用中的灵活性。
  •  存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。
  •  操作数据库的传统SQL语句在执行时需要先编译,然后再去执行,跟存储过程一对比,明显存储过程在执行上速度更快,效率更高。存储过程在数据库中创建并保存,它不仅仅是SQL语句的集合,还可以加入一些特殊的控制结构,也可以控制数据的访问方式。
     

2.优点

  • 执行一次后,会将生成的二进制代码驻留缓冲区,提高执行效率
  •  SQL语句加上控制语句的集合,灵活性高
  •  在服务器端存储,客户端调用时,降低网络负载
  •  可多次重复被调用,可随时修改,不影响客户端调用
  •  可完成所有的数据库操作,也可控制数据库的信息访问权限

3.语法

create procedure <过程名> ([过程参数……]) <过程体>
[过程参数……] 格式
<过程名>:尽量避免与内置的函数或字段重名
<过程体>:语句
[in|out|inout] <参数名><类型>
例:
delimiter &&    								#将语句的结束符号从分号;临时修改,以防出问题,可以自定义
create procedure ee(in inname varchar(16))  	#创建存储过程,过程名自定义,()可带参数
 	begin   		    						#过程体以关键字BEGIN开始
 	select * from test1 where a_name='aaaa';  	#过程体语句
 	end&&    									#过程体以关键字END结尾
delimiter ; 			    				#将语句的结束符号恢复为分号(分号前面要有空格)
call ee('aaaa');	  							#调用存储过程

--------------查看存储过程--------------
show create procedure XXX\G               		 #查看某个储存过程的具体信息


4.参数分类

  • 存储过程的主体部分,即过程体
  •  以 begin 开始,end 结束,若只有一条SQL语句,可省略 begin 和 end
  •  以 delimiter 开始和结束

5.带参数的存储过程

  • 输入参数:in 表示调用者向过程传入值(传入值可以是字面量或变量)
  •  输出参数:out 表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
  •  输入/输出参数:inout ,即表示调用者向过程传入值,又表示过程向调用者传入值(只能是变量)

6.修改存储过程

alter procedure <过程名> [<特征>……]
alter procedure ff modifies sql data sql security invoker;

modifies sql data:表名子程序包含写程序的语句

security:安全等级

invoker:当定义为 invoker 时,只要执行者有执行权,就可以成功执行

7.删除存储过程

drop procedure if exists 过程名;

总结

函数分类:

  • 数学函数
  • 聚合函数
  • 字符串函数
  • 日期时间函数

存储过程;

MysQL数据库存储过程是一组为了完成特定功能的SQL语句的集合。

版权声明
本文为[C和弦~]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Ab960311/article/details/121081344