MySQL常见命令
- show database : 查看当前所有的数据库
- use 库名 : 使用指定的库
- show tables : 查看当前库的所有表
- show tables from 库名 : 查看其它库的所有表
- desc 表名 : 查看表结构
MySQL常见函数
字符函数
- concat : 字符拼接
select CONCAT(‘aa’,’,’,‘bb’);
输出结果 : aa,bb
- substr/SUBSTRING : 截取子串,这两个效果是一样的,需要注意的是,这里索引下标从1开始
select SUBSTR('123456789',5);
表示从第5位开始截取数据,到最后,输出结果 : 56789
select SUBSTR('123456789',5,2); -- 索引开始位置, 截取长度
表示从第五位开始截取2个字符长度的子串,输出结果 : 56
- upper / lower : 转换成大/小写
SELECT UPPER('abc'); -- 转换大写,结果ABC
SELECT LOWER('ABC'); -- 转换小写,结果abc
- trim : 去除前后指定的空格和字符
SELECT TRIM(" abc "); -- 去除前后空格,输出结果 : abc
SELECT TRIM('a' from "aaaa七a夜a雪aaaaa"); -- 从后面的字符中,去除字符前后指定的字符a, 输出结果为 : 七a夜a雪
- ltrim/rtrim : 去除左侧空格/去除右侧空格
SELECT LTRIM(" aa "); -- 去除左侧空格, 输出结果 : "aa "
SELECT RTRIM(" aa "); -- 去除右侧空格, 输出结果 : " aa"
- replace : 替换
-- 格式 : REPLACE(原始字符串,要替换的子串,要替换的新串)
SELECT REPLACE("aabbdd","dd","cc"); -- 输出结果 : aabbcc
- LPAD/RPAD : 左/右填充
-- 格式 : LPAD/RPAD(字符串,字符串长度,填充的字符)
SELECT LPAD('abc',10,'*'); -- 输出结果 : *******abc
SELECT RPAD('abc',10,'*'); -- 输出结果 : abc*******
- instr : 返回子串第一次出现的索引
-- 格式 : INSTR(目标字符串, 要查找的子串)
SELECT INSTR('aabbcc','bb'); -- 索引从1开始,所以输出结果 : 3
- length : 获取字节个数, 注意,这里是字节,不是字符
SELECT LENGTH("a七夜雪a"); -- UTF-8下一个中文占3个字符,所以输出结果 : 11
数学函数
- round : 四舍五入
- rand : 随机数
- floor : 向下取整
- ceil : 向上取整
- mod : 取余
- truncate : 截断
- abs : 绝对值
SELECT ROUND(1.456); -- 输出结果 : 1
-- ROUND(目标数字, 保留小数位数)
SELECT ROUND(1.456,2); -- 输出结果 : 1.46
SELECT RAND() -- 输出结果为随机数字
SELECT FLOOR(1.9); -- 输出结果 : 1
SELECT CEIL(1.001); -- 输出结果 : 2
-- 格式 : MOD(目标数字,用来取余的数字);
-- 余数正负情况只与目标数字正负有关
SELECT MOD(11,3), MOD(11,-3), MOD(-11,3), MOD(-11,-3); -- 输出结果 : 2,2-2,-2
-- 格式 : TRUNCATE(目标数字, 要保留的小数位数,之后的将会被丢弃);
SELECT TRUNCATE(1.129,2); -- 输出结果 : 1.12
SELECT ABS(-123); -- 输出结果 : 123
日期函数
- now : 当前系统日期+时间
SELECT NOW(); -- yyyy-mm-dd hh:mi:ss 格式当前时间
- CURRENT_DATE : 当前系统日期
- CURRENT_TIME : 当前系统时间
SELECT CURRENT_DATE(); -- yyyy-mm-dd格式日期
SELECT CURRENT_TIME(); -- hh:mi:ss 格式时间
- str_to_date : 将字符转换成日期
-- 格式 : STR_TO_DATE(字符串类型日期,字符串日期格式);
SELECT STR_TO_DATE('2018-08-08 13:30:56','%Y-%m-%d %H:%i:%s');
-- 输出结果 : 2018-08-08 13:30:56
- date_format : 将日期转换成字符
-- 格式 : STR_TO_DATE(目标日期, 格式化后的字符串格式);
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日 %H:%i:%s');
-- 输出结果 : 2018年09月08日 15:03:53
- DATEDIFF : 计算两个日期之间相差的天数
-- 格式 : DATEDIFF(日期1, 日期2),返回日期1与日期2直接相差的天数
SELECT DATEDIFF(STR_TO_DATE('2018-08-31','%Y-%m-%d'), STR_TO_DATE('2018-08-08','%Y-%m-%d'))
-- 输出结果 : 23
日期格式说明 :
- %Y : 四位的年份
- %y : 两位的年份
- %m : 补零月份(01, 02…12)
- %c : 月份(1, 2, 3…12)
- %d : 天
- %H : 小时, 24小时制
- %h : 小时, 12小时制
- %i : 分钟
- %s : 秒
分组函数
- sum : 求和
- max : 最大值
- min : 最小值
- avg : 平均值
- count : 计数
- 以上五个函数都忽略null值, 除了count(*)
- sum和avg一般用于处理数值型
max、min、count可以处理任何数据类型- 都可以搭配distinct使用,用于统计去重后的结果
- count的参数可以支持:
字段、*、常量值,一般放1, 一般使用count(*)