c++知识点合集已经完成欢迎前往主页查看,点点赞点点关注不迷路哦
MYSQL第一章节DDL数据定义语言的操作----点我进入
MYSQL第二章节DDL-数据库操作语言 DQL-数据查询语言----点我进入
MYSQL-第三章节DCL-管理用户,控制权限----点我进入
目录
函数
函数 | 功能 |
---|---|
CONCAT(S1,S2,.Sn) | 宇符串拼接,将S1,S2,…Sn拼接成一个字符串 将字符串str全部转为小写 |
LOWER(str) | 将字符串str全部转为小写 |
UPPER(str) | 将字符串str全部转为大写 |
LPAD(str,n,pad) | 左填充,用字符串lpad对str的左边进行填充,达到n个字符串长度 |
RPAD(str,n,pad) | 右填充,用字符串rpad对str的右边进行填充,达到n个字符串长度 |
TRIM(str) | 去掉字符串头部和尾部的空格 |
SUBSTRING(str,start,len) | 返回从字符串str从start位置起的len个长度的字符串 |
SELECT 函数(参数);
例子
SELECT concat('hello','mysql');
SELECT LOWER('HELLO');
SELECT UPPER('hello');
SELECT lpad('01',5,'-');
SELECT RPAD('02',5,'-');
SELECT TRIM(' hello mysql ');
SELECT SUBSTRING('hello mysql',1,5);
结果
数值函数
函数 | 功能 |
---|---|
CEIL(x) | 向上取整 |
FLOOR(x) | 向下取整 |
MOD(x,y) | 返回x/y的模 |
RAND() | 返回0~1内的随机数 |
ROUND(x,y) | 求参数x的四舍五入的值,保留y位小数 |
例子1
select CEIL(1.1);
select floor(1.9);
select mod(1,4);
select rand();
select round(2.34,2);
例子2
通过数据库的函数,生成一个六位数的随机验证码
select lpad(round(rand()*1000000,0),6,'0');
日期函数
函数 | 功能 |
CURDATE() | 返回当前日期 |
CURTIME() | 返回当前时间 |
NOW() | 返回当前日期和时间 |
YEAR(date) | 获取指定date的年份 |
MONTH(date) | 获取指定date的月份 |
DAY(date) | 获取指定date的日期 |
DATE_ADD(date, INTERVAL expr type) | 返回一个日期/时间值加上一个时间间隔expr后的时间值 |
DATEDIFF(date1,date2) | 返回起始时间date1 和 结束时间date2之间的天数 |
例子
查询所有员工的入职天数,并根据入职天数进行倒序排序
select name ,datediff(curdate(),entrydate) as enterdays from exaple ORDER BY enterdays desc;
流程函数
函数 | 功能 |
---|---|
IF(value, t, f) | 如果value 为true,则返回t,否则返回f |
IFNULL(value1, value2) | 如果value1不为空,返回value1,否则返回value2 |
CASE WHEN [val1] THEN [res1] .. ELSE[default] END | 如果val1为true,返回re1,…否则返回defaut默认值 |
CASE [expr ] WHEN [val1] THEN [res1] ... ELSE [ default ] END | 如果expr的值等于val1,返回res1,…否则返回defaut默认值 |
例子1
--查询emp表的员工姓名和工作地址(北京/上海--一线城市,其他--二线城市)--
select name,
(case adress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地址' from emp;
例子2
统计班级各个学员的成绩,展示的规则如下:
>=85,展示优秀
>=60,展示及格
否则,展示不及格
数据准备
create table score(
id int comment 'ID',
name varchar(20) comment '姓名',
math int comment '数学',
english int comment '英语',
chinese int comment '语文'
) comment '学员成绩表';
insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95 ), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);
答案
select name,
(case when math>=85 then '优秀' when math>60 then '及格' else '不及格' end) '数学',
(case when english>=85 then '优秀' when english>60 then '及格' else '不及格' end) '英语',
(case when chinese>=85 then '优秀' when chinese>60 then '及格' else '不及格' end) '语文' from score;