一: 数据库函数
1.1: 数学函数
数学函数 | 描述 | |
---|---|---|
abs(x) | 返回 x 的绝对值 | 绝对值 |
rand() | 返回 0 到 1 的随机数 | rand边缘 |
mod(x,y) | 返回 x 除以 y 以后的余数 | 取余 |
power(x,y) | 返回 x 的 y 次方 | power快速前进 |
round(x) | 返回离 x 最近的整数 | round整数 |
round(x,y) | 保留x 的y 位小数四舍五入后的值 | |
sqrt(x) | 返回 x 的平方根 | sqrt 平方根 |
truncate(x,y) | 返回数字 x 截断为 y 位小数的值 | truncate 截取 |
ceil(x) | 返回大于或等于 x 的最小整数 | ceil装天花板 |
floor(x) | 返回小于或等于 x 的最大整数 | floor 地板 |
greatest(x1,x2...) | 返回集合中最大的值 | |
least(x1,x2...) | 返回集合中最小的值 |
1.2: 聚合函数
聚合函数 | 描述 | |
---|---|---|
avg() | 返回指定列的平均值 | avg平均值 |
count() | 返回指定列中非 NULL 值的个数 | count计数 |
min() | 返回指定列的最小值 | |
max() | 返回指定列的最大值 | |
sum(x) | 返回指定列的所有值之和 |
1.3: 字符串函数
字符串函数 | 描述 | |
---|---|---|
length(x) | 返回字符串 x 的长度 | length 长度 |
trim() | 返回去除指定格式的值 | trim 修剪,截除,去除空格只能去除两端的空格 |
concat(x,y) | 将提供的参数 x 和 y 拼接成一个字符串 | concat 合并 |
upper(x) | 将字符串 x 的所有字母变成大写字母 | upper上面的 |
lower(x) | 将字符串 x 的所有字母变成小写字母 | lower 下面的 |
left(x,y) | 返回字符串 x 的前 y 个字符 | 向左取值 |
right(x,y) | 返回字符串 x 的后 y 个字符 | 向右取值 |
repeat(x,y) | 将字符串 x 重复 y 次 | repeat 重复 |
space(x) | 返回 x 个空格 | space 空间,空格 |
replace(x,y,z) | 将字符串 z 替代字符串 x 中的字符串 y | replace 替换 |
strcmp(x,y) | 比较 x 和 y,返回的值可以为-1,0,1 转化为ASCII码比较 | strcmp 比较字符串 |
substring(x,y,z) | 获取从字符串 x 中的第 y 个位置开始长度为 z 的字符串 | substring截取字符串 |
reverse(x) | 将字符串 x 反转 | reverse 取反 ,反转 |
1.4: 日期时间函数
字符串函数 | 描述 | |
---|---|---|
curdate() | 返回当前时间的年月日 | 取现在日期 |
curtime() | 返回当前时间的时分秒 | 取现在时间 |
now() | 返回当前时间的日期和时间 | 现在是什么时候 |
month(x) | 返回日期 x 中的月份值 | |
week(x) | 返回日期 x 是年度第几个星期 | |
hour(x) | 返回 x 中的小时值 | |
minute(x) | 返回 x 中的分钟值 | |
second(x) | 返回 x 中的秒钟值 | |
dayofweek(x) | 返回 x 是星期几,1 星期日,2 星期一 | |
dayofmonth(x) | 计算日期 x 是本月的第几天 | |
dayofyear(x) | 计算日期 x 是本年的第几天 |
1.5: 存储过程
//格式
#定义存储过程
delimiter $$
create procedure存储过程名(in 参数名 参数类型)
begin
#定义变量
declare变量名变量类型
#变量赋值
set 变量名 = 值
sql语句1;
sql语句2;
..
sql语句n;
end $$
delimiter ;
#调用存储过程
call存储过程名(实际参数);
#查询存储过程
show procedure status where db=‘数据库‘;
#删除存储过程
drop procedure存储过程名;
示例:1
mysql> delimiter $$
mysql> create procedure myrole() //创建存储过程,名字为myrole
-> begin
-> select name,score from accp;
-> end $$
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
mysql> call myrole();
示例:2
mysql> delimiter $$
mysql> create procedure myschool(in my_name varchar(10))
-> begin
-> select name score from accp where name=my_name;
-> end$$
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;
mysql> show procedure status where db=‘school‘;
示例3:
mysql> delimiter $$
mysql> create procedure myupdate(in my_score decimal(5,2))
-> begin
-> declare hob int(3);
-> if my_score >= 80 then
-> set hob = 1;
-> else
-> set hob = 2;
-> end if;
-> update accp set score=my_score,hobby=hob where name=‘zhangsan‘;
-> end$$
Query OK, 0 rows affected (0.06 sec)
//修改名为张三的分数和hobby,修改zhangsan的hobby=2,score=75
mysql> delimiter ;
mysql> call myupdate(75);