MySQL数据库教程之十:MySQL系统函数及流程控制语句
准备工作:
先启动MySQL,并打开前期建立的数据库和表
查看每个表的结构:
一、系统函数
1、数学函数
(1)、abs(); 求一个数的绝对值
(2)、sqrt(); 求一个数的平方根。sqrt是sqruar(平方,矩形) ,root(根)的缩写。
(3)、power() 幂运算
(4)、rand() 顾名思义,是用来生成随机数用的
随机排序(每次的结果不一样,可以用来随机抽取:比如随机取5名同学)
(5)、三角函数
(6)、ceil() 进一取整、 floor()舍一取整
(7)、truncate(x,y) 比较霸道,不管四舍五入,直接把x,的y位小数直接舍去。
(8)、format 会自动进行千分位,进行四舍五入。
2、字符串函数
MySQL软件支持的字符串函数表如下:
函 数 |
功 能 |
CONCAT(str1,str2,...,strn) |
将str1,str2,...,strn连接为一个完整的字符串 |
INSERT(str,x,y,instr) |
将字符串str从第x开始,y个字符串长度的子串替换为字符串instr |
LOWER(str) |
将字符串str中的所有字母变成小写 |
UPPER(str) |
将字符串str中的所有字母变成大写 |
LEFT(str,x) |
返回字符串最左边的x个字符 |
RIGHT(str,x) |
返回字符串最右边的x个字符 |
LPAD(str,n,pad) |
使用字符串pad对字符串str最左边进行填充,直到长度为n个字符长度 |
RPAD(str,n,pad) |
使用字符串pad对字符串str最右边进行填充,直到长度为n个字符长度 |
LTRIM(str) |
去掉str左边的空格 |
RTRIM(str) |
去掉str右边的空格 |
REPEAT(str,x) |
返回字符串str重复x次的结果 |
REPLACE(str,a,b) |
使用字符串b替换字符串str中所有出现的字符串a |
STRCMP(str1,str2) |
比较字符串str1和str2 |
TRIM(str) |
去掉字符串行头和行尾的空格 |
SUBSTRING(str,x,y) |
返回字符串str中从x位置起y个字符串长度的字符串 |
(1)、字符串连接
(2)、比较字符串大小函数STRCMP()
语法形式:
STRCMP(str1,str2);
比较传入的字符串str1与str2,如果传入的参数str1大于str2,则返回true;如果参数str1小于str2,则返回false;如果参数str1等于str2,则返回0。
(3)、字母大小写转换函数UPPER()和LOWER()
3、日期和时间函数
函 数 |
功 能 |
CURDATE() |
获取当前日期 |
CURTIME() |
获取当前时间 |
NOW() |
获取当前的日期和时间 |
UNIX_TIMESTAMP(date) |
获取日期的UNIX时间戳 |
FROM_UNIXTIME() |
获取UNIX时间戳的日期值 |
WEEK(date) |
返回日期date为一年中的第几天 |
YEAR(date) |
返回日期date的年份 |
HOUR(time) |
返回时间time的小时值 |
MINUTE(time) |
返回时间time的分钟值 |
MONTHNAME(date) |
返回时间date的月份 |
(1)、curdate()函数
(2)、年、月、日及星期
求每个同学的年龄
查询八月出生的学生信息
(3)、计算日期和时间函数
与默认日期和时间操作
TO_DAYS(date):计算日期参数date和默认日期和时间(0000年1月1日)之间相隔的天数。
FROM_DAYS(number):计算从默认日期和时间开始经过number天后的日期和时间。
DATEDIFF():获取两个指定日期之间相隔的天数。
计算每个同学的年龄,用datediff算出的答案与前一题算出的还是有差别的。
(4)、时间格式化函数
时间转字符串
字符串转时间
二、流程控制语句
1、if 语句
IF expression THEN
statements;
END IF;
例 1:查询平均分大于等于90分的同学信息,并显示“优秀”,否则显示“非优秀”
例 2、创建get_week()函数,根据系统时间输出星期几。
调用函数后
2、循环语句
(1)、while语句
调用函数:
(2)、repeat循环
调用函数: