select length('john');
select concat('I',' ','like',' ','mysql');
-- concat_ws可以指定分隔符进行拼接,第一个字符为所指定的分隔符
select concat_ws(' ','I','like','mysql');
-- 两这结果都是I like mysql
-- GROUP_CONCAT负责将item_id拼接起来,是一个聚合函数,所以需要使用group by
-- 结果是根据app_id分组,将app_id下的所有item_id使用逗号分隔开全部展示出来
select app_id,GROUP_CONCAT(item_id separator ',') as item_ids from app_video
group by app_id
select upper('mysql');
select lower('MySQL');
#从第几个字符开始截取,注意:索引从1开始
select substr('I like MySQL',8);
#从第几个字符开始截取,截取几个字符
select substr('I like MySQL',8,2);
-- 第一个参数str 要处理的字符串
-- 第二个参数delim 分割符
-- 第三个参数count 计数 如果为正数,则从左开始数,如果为负数,则从右开始数
select substring_index('aaa:bbb:2',':',1); -- aaa
select substring_index('aaa:bbb:2',':',2); -- aaa:bbb
select substring_index('aaa:bbb:2',':',-1); -- 2
select substring_index('aaa:bbb:2',':',-2); -- bbb:2
select instr('I like MySQL','MySQL');
select trim(' My SQL ');
-- ltrim 表示去除前面空格
-- rtrim 表示去除后面空格
select lpad('MySQL',8,'*');
select rpad('MySQL',8,'*');
select replace('aabb','bb','cc');
-- qw
select left('qwer',2)
-- er
select right('qwer',2)
-- rewq
select reverse('qwer')
coalesce函数可以指定一个或多个参数,会返回参数列表中第一个非null值
select coalesce(imagesJson,"aa") from doc where imagesJson is null
select avg(sal) as avg_sal from emp
select max(sal) as max_sal from emp
select min(sal) as min_sal from emp
select sum(sal) as sum_sal from emp
select abs(-10);
select round(1.4);
#小数点后保留几位
select round(1.567,2);
select ceil(1.2);
select floor(1.2);
select truncate(1.61,2);
select mod(10,3);
format数字格式化
-- 保留一位小数
select format(123.21,1);
select unix_timestamp(now())*1000;
select now();
select curdate();
select curtime();
select year('2020-10-10');
select month('2020-10-10');
-- 减五天
select date_add(hiredate,interval -5 day) from emp
-- 加五天
select date_add(hiredate,interval 5 day) from emp
-- 减五年
select date_add(hiredate,interval -5 year) from emp
-- 加五年
select date_add(hiredate,interval 5 year) from emp
select str_to_date('2020年10月12','%Y年%m月%d');
select date_format('2020/10/12','%Y-%m-%d');
select FROM_UNIXTIME(1387189325000/1000);
SELECT DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s');-- 2015-09-28 00:00:00
聚合函数有sum()求和、avg()平均值、max()最大值、min()最小值、count()数量等
md5()使用MD5加密算法
select md5(123);
+----------------------------------+
| md5(123) |
+----------------------------------+
| 202cb962ac59075b964b07152d234b70 |
+----------------------------------+
password()使用密码算法
select password(123);
+-------------------------------------------+
| password(123) |
+-------------------------------------------+
| *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+-------------------------------------------+
流程控制结构分为顺序结构、分支结构、循环结构
从上往下依次执行
从两条或多条分支选择一条执行
#语法 if(表达式1,表达式2,表达式3) 表达式1成立,则执行表达式2,否则执行表达式3
select if(6<3,'小于','大于');
#语法
case 表达式|变量|字段
when 要判断的值 then 结果
when 要判断的值 then 结果
...
else result
end
#语法
case
when 要判断的条件 then 结果
when 要判断的条件 then 结果
...
else result
end
#语法
if 条件1 then 语句1;
elseif 条件2 then 语句2;
else 语句;
end if;
在满足一定的条件下,重复执行一段代码
循环控制
【标签:】while 循环条件 do
循环体
end while 【标签】;
【标签:】loop
循环体
end loop 【标签】;
【标签:】 repeat
循环体
until 捷顺循环的条件
end repeat 【标签】;
select sum(salary) from employees;
select avg(salary) from employees;
select max(salary) from employees;
select min(salary) from employees;
select count(id) from users;
count(*)对行的数目进行计算,包含NULL count(column)对特定的列的值具有的行数进行计算,不包含NULL值。 count(1)这个用法和count(*)的结果是一样的
使用count(*)即可
如果表没有主键,那么count(1)比count(*)快 如果有主键,那么count(主键,联合主键)比count(*)快 如果表只有一个字段,count(*)最快 count(1)跟count(主键)一样,只扫描主键。count(*)跟count(非主键)一样,扫描整个表。明显前者更快一些
https://zhhll.icu/2020/数据库/关系型数据库/MySQL/基础/10.MySQL函数/
本文由 mdnice 多平台发布