DQL字符串函数
lower(字段名):将字段名大写转换成小写
length(字段名):显示字段的长度
lpad(字段名,长度,'替补符号'):追加数据,左补位
rpad(字段名,长度,'替补符号'):追加数据,右补位
ltrim():去除左空格
rtrim():去除右空格
replace():替换
substr():截取
-- 将ename字段名大写转换成小写
SELECT LOWER(ename) FROM emp;
-- 显示字段长度
SELECT LOWER(ename),LENGTH(ename) FROM emp;
-- 使用lpad函数对ename追加数据,长度为8,位数不够使用#在左面替补
SELECT LOWER(ename),LENGTH(ename),LPAD(ename,8,'#') FROM emp;
-- 使用rpad函数对ename追加数据,长度为8,位数不够使用#在右面替补
SELECT LOWER(ename),LENGTH(ename),LPAD(ename,8,'#'),RPAD(ename,8,'#') FROM emp;
-- 使用ltrim去除左面空格
SELECT LOWER(ename),LENGTH(ename),LPAD(ename,8,'#'),RPAD(ename,8,'#'),LTRIM(' 123 ') FROM emp;
-- 使用rtrim去除右面空格
SELECT LOWER(ename),LENGTH(ename),LPAD(ename,8,'#'),RPAD(ename,8,'#'),RTRIM(' 123 ') FROM emp;
-- 使用replace将ename字段中所有的S替换成@
SELECT LOWER(ename),LENGTH(ename),LPAD(ename,8,'#'),RPAD(ename,8,'#'),RTRIM(' 123 '),REPLACE(ename,'S','@') FROM emp;
-- 使用sunstr将ename字段从第一个字符到第三个字符进行截取
SELECT LOWER(ename),LENGTH(ename),LPAD(ename,8,'#'),RPAD(ename,8,'#'),RTRIM(' 123 '),REPLACE(ename,'S','@'),SUBSTR(ename,1,3) FROM emp;
DQL数值型函数(借助伪表dual操作,所谓的伪表是mysql数据库提供的并不是真实存在的表)
abs():绝对值
floor():向下取整
ceil():向上取整
round():四舍五入
-- 使用abs求值
SELECT ABS(-10) FROM DUAL;
-- 使用floor对浮点数进行向下取整
SELECT FLOOR(3.9) FROM DUAL;
-- 使用ceil对浮点数进行向上取整
SELECT CEIL(3.9) FROM DUAL;
-- 使用round对浮点数进行四舍五入
SELECT ROUND(3.6), ROUND(3.3) FROM DUAL;
DQL单行函数之日期函数
now():获取当前的系统的日期时间
EXTRACT():提取日期中的年月日
CURRENT_DATE():提取年月日
CURRENT_TIME():提取时分秒
CURRENT_TIMESTAMP():提取时间戳
LAST_DAY():获取月份的最后一天
-- 查询日期
SELECT hiredate,NOW() FROM emp;
-- 查询当前系统的日期时间
SELECT hiredate,NOW() FROM emp;
-- 提取日期中的年
SELECT EXTRACT(YEAR FROM hiredate) FROM emp;
-- 提取日期中的月
SELECT EXTRACT(MONTH FROM hiredate) FROM emp;
-- 提取日期中的日
SELECT EXTRACT(DAY FROM hiredate) FROM emp;
-- 提取年月日,时分秒,时间戳
SELECT hiredate,CURRENT_DATE(),CURRENT_TIME(),CURRENT_TIMESTAMP() FROM emp;
-- 日期转换,指定显示格式
-- 显示英文月份
SELECT hiredate,DATE_FORMAT(hiredate,'%Y-%M-%D')FROM emp;
-- 显示与查询字段一致的时间
SELECT hiredate,DATE_FORMAT(hiredate,'%Y-%m-%d')FROM emp;
-- 显示中文年月日
SELECT hiredate,DATE_FORMAT(hiredate,'%Y年%m月%d日')FROM emp;
-- 显示中文年月日,时分秒
SELECT hiredate,DATE_FORMAT(hiredate,'%Y年%m月%d日 %H-%i-%s')FROM emp;
-- 显示中文当前系统的年月日,时分秒
SELECT hiredate,DATE_FORMAT(NOW(),'%Y年%m月%d日 %H时%i分%s秒')FROM emp;
-- 获取当前系统月份的最后一天
SELECT LAST_DAY(NOW());
-- 获取hiredate字段所有月份的最后一天
SELECT LAST_DAY(hiredate) FROM emp;
DQL其他函数
ifnull():替换空值
MD5():不可逆加密
-- 计算工资+奖金 会出现null的情况
SELECT sal + comm FROM emp;
-- 使用ifnull函数替换空值
SELECT sal + IFNULL(comm,0) FROM emp;
-- 将数字123456进行MD5加密
SELECT MD5("123456") FROM DUAL;
创建的多行函数
max:最大值
min:最小值
sum:求和
cont:求总数
avg:求平均值
-- 查找最高薪资
SELECT MAX(sal) FROM emp;
-- 查找最低薪资
SELECT MIN(sal) FROM emp;
-- 查找薪资总和
SELECT SUM(sal) FROM emp;
-- 查看员工总人数
SELECT COUNT(empno) FROM emp;
-- 查看工资的平均值
SELECT AVG(sal) FROM emp;
-- 查看入职最早的员工
SELECT MIN(hiredate) FROM emp;
-- 查看员工中谁的名字最大
SELECT MAX(ename)FROM emp;
-- 查看员工中谁的名字最小
SELECT MIN(ename)FROM emp;
-- 查看奖金总额
SELECT SUM(comm) FROM emp;