回顾 投影查询
SELECT 20 DIV 10 AS res;
SELECT DISTINCT s_sex FROM _stu;
SELECT s_name,s_sex FROM _stu;
投影查询之函数
mysql经常做的一些操作编写出来--封装起来--函数
提供了很多的功能函数分为两类
单值函数【一个或者零个参数进 一个结果返回】
数学函数
字符串函数
日期函数
条件函数
信息函数和加密函数
其他函数
多值函数,也叫聚合函数 0个或者多个参数进 一个结果出】
单值函数--数学函数
绝对值和圆周率
SELECT ABS(-125),PI()
数据精度处理 小数转化成整数
floor(x) 直接取出x的小数部分保留整数
ceil(x)和ceiling(x)得到的结果是大于x的最小整数
round(x) 小数位四舍五入得到整数
SELECT FLOOR(12.55),CEIL(12.56),CEILING(12.77),ROUND(12.88)
SELECT FLOOR(12.22),CEIL(12.00),CEILING(12.22),ROUND(12.22)
获取随机数 rand() rand(x) 获取一个随机数
SELECT RAND();
SELECT RAND(10);
获取1-9随机整数
SELECT ROUND(RAND()*8+1)
求余数和平方根
SELECT SQRT(9),MOD(12,5)
数据的幂运算
SELECT POW(2,3),POWER(2,4)
小数精度处理
round(x,n) x小数保留小数点后n位 可以是负数 四舍五入
truncate(x,n) x小数保留小数点后n位 直接舍弃后面多的小数位
SELECT ROUND(1.2345,2),TRUNCATE(12.35,1)
获取字符串的长度
CHAR_LENGTH(x)返回的是字符串x的字符个数
length(x) 返回的是字符串x在当前数据编码环境中占得字节数
SELECT CHAR_LENGTH('今天不错'),LENGTH('今天不错')
字符串的连接
CONCAT(字符串1,字符串2...) 可以将多个字符串拼接长一个字符串
CONCAT_WS(连接符,字符串1,字符串2...) 可以将多个字符串同连接符连接成一个字符串
SELECT CONCAT('今天','不要再玩了','学点东西','动动手'),CONCAT_WS('-','你好','学点吧')
大小写转化 lower和upper
SELECT LOWER('sadaWWRWR'),UPPER('sasfaf')
翻转字符串
SELECT REVERSE("今天好好学习")
截取字符串
截取空格
trim(x) 会将x前后空格去除
ltrim(x) 会将x左边的空格去除
rtrim(x) 会将x右边的空格去除
SELECT TRIM(' 你好 '),LTRIM(' 你好 '),RTRIM(' 你好 ');
TRIM('x'FROM'y')去除y两边的x字符串
SELECT TRIM('sa'FROM'saggrwewsa')
获取子字符串 获取我们想要的字符串
left(x,n) 获取x字符串左边n个字符
right(x,n) 获取x字符串右边n个字符
SELECT LEFT('grfwewee',3),RIGHT('dsadweeeee',4)
SELECT LEFT(s_name,1) FROM _stu;
填补字符串
lpad(x1,len,x2) 会用x2去将x1填充到长度为len 返回的结果就是len长度的字符串
如果x1的长度大于len会将字符串截取到len长度
如果x1的长度小于len才会使用下x2填充到对应长度
SELECT LPAD("abcdefg",12,'2'),RPAD('ABCDEFG',2,'3333');
字符串
substring(x,n)和substring(x,n) 从x字符串的第n个字符开始截取返回
SELECT SUBSTRING("今天天气不错",2),SUBSTRING("今天天气不错" FROM 2)
substring(x,n,len) 从x字符串中第n个字符开始截取len长度字符串返回
SELECT SUBSTRING("今天天气不错",2,2),SUBSTRING("今天天气不错" FROM 2 FOR 2)
重复字符串
SELECT REPEAT("下课",10);
函数查询-日期处理函数
可以使用函数获取我们想要的日期信息
基础处理
SELECT '2023-07-14'-'2002-5-17'
SELECT '2023-07-14'>'2002-5-17'
获取当前的日期信息
获取yyyy-mm-dd
SELECT CURDATE(),CURRENT_DATE()
获取yyyy-mm-dd hh:mm:ss
SELECT NOW(),SYSDATE(),LOCALTIME(),CURRENT_TIMESTAMP();
获取 hh:mm:ss
SELECT CURRENT_TIME();
获取日期的月份
SELECT MONTH(NOW()),MONTHNAME(NOW());
获取年
SELECT YEAR(NOW())
获取天
SELECT DAY(NOW())
获取小时
SELECT HOUR(NOW()),MINUTE(NOW()),SECOND(NOW())
获取星期
DAYNAME(NOW()) 日期对应星期的英文名字
DAYOFWEEK(NOW()) 日期对应的英文日历位置(周日 周一......周六)(12......6)
WEEKDAY(NOW()) 日期对应星期的索引 (周一,周二......周日)(0 1......6)
SELECT DAYNAME(NOW()),DAYOFWEEK(NOW()),WEEKDAY(NOW());
获取一些特殊时间
获取一年中的周数
SELECT WEEK(NOW()),WEEKOFYEAR(NOW());
SELECT WEEKOFYEAR('2023-12-30')
获取第几天
对应日期是一年中的第几天
SELECT DAYOFYEAR(NOW());
对应日期是一个月中的第几天
SELECT DAYOFMONTH(NOW());
获取是第几个季度
SELECT QUARTER(NOW())
日期转化
当前的小时分钟秒 转化成秒数
SELECT TIME_TO_SEC(NOW());
SELECT SEC_TO_TIME(12000);
标签:语句,函数,len,获取,SQL,字符串,运用,NOW,SELECT From: https://blog.51cto.com/u_16220922/7297296