代码编织梦想


一、数据库函数

1.数学函数

数据库内存储的记录,经常要进行一系列的算术操作,所以MySQL支持很多数学函数。

常用的数学函数如下所示

数学函数描述
ads(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…)least (x1, x2…)

示例:

-2的绝对值
select abs(-2);
 
0-1的随机数(0<-x<1) 
select rand();
 
可以搭配运算符
select rand() *100;
 
除以2的余数
select mod(5,2);
 
2的3次方
select power(2,3);
 
离1.89最近的整数
select round(1.49);
select round(1.5);
 
1.893保留小数点后2位,1.896保留小数点后2位,这里会四舍五入
select round(1.893,2);
select round(1.896,2);
 
返回平方根
select sqrt(4);
select sqrt (5);
 
保留小数点后2位,但truncate函数不会四舍五入(截断)
select truncate(1.896,2);
 
返回大于或等于5.2的最小整数
select ceil(5.2);
 
返回小于或等于5.2的最大整数
select floor(5.2);
 
返回最大值
select greatest(1,2,3);
 
返回最小值.
select least (1,2,3)

2.聚合函数

MySQL数据库函数中专门有一组函数是特意为库内记录求和或者对表中的数据进行集中概括而设计的,这些函数被称作为聚合函数

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

在这里插入图片描述

select count(score) from info;
#返回info表中score字段的个数

在这里插入图片描述

select min(score) from info;
#返回info表中score字段的最小值

在这里插入图片描述

3.字符串函数

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

示例:

length(x) 返回字符串x的长度
返回abcd的长度,空格也算一个字符
select length('abcd');
select length('abc  d');

trim()  返回去除格式的值
select trim('     sheng');
select '       sheng';

concat(x,y) 将提供的参数x和y拼接成一个字符串
select concat('abc', 'def');
select concat('abc','   def');

还可以结合其他函数,如trim(将后面的函数删除格式)
select concat('abc',trim('def'));

upper(x) 将字符串x的所有字母变成大写字母
select upper('abc');

lower(x) 将字符串x的所有字母变成小写字母
select lower('ABC');

left (x,y)   返回字符串x的前y个字符
select left('abcdefg',3);

right (x,y)  返回字符串x的后y个字符
select right ('abcdefg',3);

把字符串的前3个字母和后3个字母拼接起来
select concat (left('abcdefg' ,3),right ('abcdefg',3));

repeat(x,y) 将字符串x重复y 次
select repeat ('abc',2);

space(x) 返回x个空格
select length (space(3));

replace(x,y,z)  将字符串z替代字符串x中的字符串y
select replace('hello','ll','aa');

strcmp(x,y) 比较x和y,返回的值可以为-1,0,1

比较17和18,小于返回-1,等于返回0,大于返回1,只会返回这3个值,它是比较第一位不同的数字
select strcmp(17,18);
select strcmp(18,18);
select strcmp(19,18);
select strcmp(17,1);

substring(x,y,z) 获取从字符串x中的第y个位置开始长度为z的字符串,返回从字符串中第三个字符开始的4个字符。
select substring('abcdefg',3,4);

reverse (x)  将字符串x反转
select reverse('gfedcba');

返回字符串的前3个字符,然后反转输出
select reverse (left ('gfedcba',3));

先将字符串反转,再输出前3个字符
select left (reverse ('gfedcba'),3);

4.日期时间函数

字符串函数描述
curdate()返回当前时间的年月日
curt ime{)返回当前时间的时分秒
now()返回当前时间的日期和时间
month (x)返回日期x中的月份值
week (x)返回日期x是年度第几个星期
hour (x)返回x中的小时值
minute (x)返回x中的分钟值
second (x)返回x中的秒钟值
dayofweek(x)返回x是星期几,1星期日,2星期一
dayo fmonth (x)计算日期x是本月的第几天
dayofyear (x)计算日期x是本年的第几天

二、存储过程

1.存储过程简介

存储过程与shell脚本里的函数类似,只不过存储过程,封装的是一组sql语句

  • MySQL数据库存储过程是一组为了完成特定功能的sql语句集合
  • 存储过程在使用过程中是将常用或者复杂的工作预先使用的sql语句写好并用一个指定的名称存储起来,这个过程编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可
  • 存储过程在执行上比传统sql速度更快、执行效率更高

2.存储过程的优点

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

3.创建存储过程

格式:
delimiter $$         #将语句的结束符号从;临时修改为两个$$(可自定义)
create procedure proc()          #创建存储过程,过程名为pro,不带参数
-> begin             #过程体以关键字begin开始
-> select * from store_info;      #过程体语句
-> end $$             #过程体以关键字end结束
delimiter ;           #将语句的结束符号恢复为分号

3.1不加参数的存储过程

mysql> delimiter $$   #将语句的结束符号从;临时修改为$$
mysql> create procedure pro()   #创建存储过程,名为pro
    -> begin      #过程体以关键字begin开始
    -> select info.id,info.name from info inner join info01 on info.name=info01.name;
#过程体语句(可有多条)          
    -> end $$   #过程体以关键字end结尾
mysql> delimiter ;    #将语句的结束符号恢复为分号
mysql> show create procedure pro\G    #查看存储过程信息
call pro();     #调用存储过程

在这里插入图片描述
在这里插入图片描述

3.2带参数的存储过程

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

mysql> delimiter $$
mysql> create procedure pro1(in inname varchar(20))
    -> begin
    -> select * from info where name=inname;
    -> end $$
mysql> delimiter ;
mysql> call pro1('zhangsan');

在这里插入图片描述

4.删除存储过程

show procedure status like '%pro%'\G
#可以查看当前库中存储过程信息

在这里插入图片描述

drop procedure if exists pro;
#删除pro存储过程
show create procedure pro\G
#查看确认

在这里插入图片描述

5.事务和存储过程有什么区别

事务

  • 实际而言,是存储引擎的特性
  • 目的性: 事务,是为了保证数据的一致性、完整性、原子性、持久性(ACID)

存储过程

  • 存储过程中,包含了事务。(要看具体的存储引擎,因为myisam不支持事务)

  • 存储过程的目的性: 简化复杂性操作
    减少数据库资源消耗
    可以通过传参,方便、灵活的进行sql查询类操作

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/S314118142/article/details/127002460

mysql数据库怎末导出函数_MySQL数据库之mysql 导入导出数据库以及函数、存储过程的介绍...-爱代码爱编程

本文主要向大家介绍了 MySQL数据库之mysql 导入导出数据库以及函数、存储过程的介绍,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。 mysql常用导出数据命令: 1.mysql导出整个数据库 mysqldump -hhostname -uusername -ppassword databasename > bac

mysql导出存储过程_mysql 导入导出数据库以及函数、存储过程-爱代码爱编程

一、mysql常用导出数据命令 1.mysql导出整个数据库 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql mysqldump -hlocalhost -uroot hqgr> hqgr.sql (如果root用户没用密码可以不写-p

如何导出导入mysql函数_mysql导入导出数据库以及函数、存储过程-爱代码爱编程

mysql 导入导出数据库以及函数、存储过程,有需要的朋友可以参考下。 mysql常用导出数据命令: 1.mysql导出整个数据库 mysqldump -hhostname-uusername -ppassworddatabasename > backupfile.sql mysqldump -hlocalhost-uroot hqgr

mysql 怎么导入函数,MySQL 导入导出数据库以及函数、存储过程的介绍-爱代码爱编程

这篇文章主要为大家详细介绍了MySQL 导入导出数据库以及函数、存储过程的介绍,具有一定的参考价值,可以用来参考一下。 感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧! mysql常用导出数据命令: 1.mysql导出整个数据库 mysqldump -hhostname -uusername -ppassword databasena

MySQL数据库存储过程和存储函数-爱代码爱编程

MySql数据库存储过程和函数 前言 对于MySql数据库,难道只能遇到一个数据库的需求,然后就写一大堆sql语句吗?MySql的SQL语句能不能像正常的编程一样提供函数这种模式,通过对一定的业务需求进行封装SQL语句,然后下次使用的时候,直接调用该函数即可呢?答案是可以的,数据库的存储过程以及存储函数就是解决上文阐述的问题的,本文将讲解MySql存储

MySQL数据库-存储过程和函数-创建存储过程-爱代码爱编程

创建存储过程 存储过程和函数是在数据库中定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可以避免开发人员重复编写相同的SQL语句。而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户器端和服务端的数据传输。 创建存储过程和函数是指将经常使用的一组SQL语句组合在一起,并将这些SQL语

mysql函数和存储过程_狗蛋儿继续卷的博客-爱代码爱编程

函数和存储过程 文章目录 函数和存储过程函数创建存储过程创建存储过程三个参数的区别存储过程和存储函数操作函数和存储过程区别 存储过程和函数是事先经过编译并存储在数据库中的一段sql语句集合,调用存储过程和函数可以简化应用开发工作,提高数据处理的效率。 函数创建 delimiter 自定义符号   create function 函数名(

ssm+社区线上超市购物系统毕业设计-爱代码爱编程

                                                          目    录 第1章  前  言 1 1.1  研究背景 1 1.2  研究现状 1 1.3  系统开发目标 1 第2章  技术与原理 3 2.1 SSM框架 3 2.2  JAVA技术 3 2.3

jdbc(一)-爱代码爱编程

视频链接:https://www.bilibili.com/video/BV1Bt41137iB?vd_source=9545770e4a2968c05878ffac8589ec6c 视频选集:P1— P13 文章