当前位置:网站首页>MySQL数据库讲解(九)
MySQL数据库讲解(九)
2022-04-23 14:07:00 【C和弦~】
目录
引言
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
边栏推荐
猜你喜欢
POI operation word template replaces data and exports word

关于密匙传递的安全性和数字签名

RobotFramework 之 项目框架

RecyclerView细节研究-RecyclerView点击错位问题的探讨与修复

Kettle -- control parsing

Intégration de Clusters CDH Phoenix basée sur la gestion cm

Nifi 快速安装及文件同步操作

困扰多年的系统调研问题有自动化采集工具了,还是开源免费的

There is a mining virus in the server

HyperBDR云容灾V3.3.0版本发布|容灾功能升级,资源组管理功能优化
随机推荐
浅谈基于openssl的多级证书,Multi-level CA的签发和管理,以及双向认证
01-NIO基础之ByteBuffer和FileChannel
pthread_self()为何重复了
RobotFramework 之 用例执行
帆软之单元格部分字体变颜色
Oracle-数据泵使用
按实际取,每三级分类汇总一次,看图知需求
Prediction of tomorrow's trading limit of Low Frequency Quantization
Multiple inheritance virtual base exercises
PySide2
使用itextpdf实现截取pdf文档第几页到第几页,进行分片
政务云迁移实践 北明数科使用HyperMotion云迁移产品为某政府单位实施上云迁移项目,15天内完成近百套主机迁移
VMware15Pro在Deepin系统里面挂载真机电脑硬盘
RecyclerView高级使用(二)-垂直拖拽排序的简单实现
数据库DbVisualizer Pro报文件错误,导致数据连接失败
Check in system based on ibeacons
Detailed tutorial on the use of smoke sensor (mq-2) (based on raspberry pie 3B +)
星界边境文本自动翻译机(高级版)使用说明
Mock测试
使用DialogFragment的一些感受及防踩坑经验(getActivity、getDialog为空,cancelable无效等)