MySQL常用命令及函数

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/love905661433/article/details/82529886

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 : 计数
  1. 以上五个函数都忽略null值, 除了count(*)
  2. sum和avg一般用于处理数值型
    max、min、count可以处理任何数据类型
  3. 都可以搭配distinct使用,用于统计去重后的结果
  4. count的参数可以支持:
    字段、*、常量值,一般放1, 一般使用count(*)

猜你喜欢

转载自blog.csdn.net/love905661433/article/details/82529886