1.ABS(x):返回x的绝对值
SELECT ABS(`目前薪资`) FROM `员工`
2.CEIL(x),CEILIN(x):返回不小于x的最小整数值
SELECT CEIL(`单价` ) FROM `订货明细`
3.Floor(x):返回不大于x的最大整数值
SELECT FLOOR( `单价`) FROM `订货明细`
4.Pi():返回∏的值,默认的显示小数位数是7位 e
SELECT PI()
5.truncate(x,y):返回数值x保留到小数点后y位的值
SELECT TRUNCATE(单价,2) FROM `订货明细`
6.round(x,y):返回数值x保留到小数点后y位的值,但要四舍五入
SELECT ROUND(`单价`,0) FROM `订货明细`
1.Char_length(s):返回字符串s的字符数
SELECT `姓名` FROM `员工` WHERE CHAR_LENGTH(`目前薪资`) NOT in(4) 不等于位数四个的返回
SELECT *FROM `员工` WHERE CHAR_LENGTH(`工作代码`)=3 等于位数3
2.Length(s):返回值为字符串s的长度,单位为字节
SELECT `姓名` FROM `员工` WHERE LENGTH( `目前薪资`)=5
3.Concat(s1,s2,…):返回结果为连接参数产生的字符串
SELECT CONCAT(`部门`,`姓名`) FROM `员工`
4.Insert(s1,x,len,s2):将字符串s2替换s1的x位置开始长度为len的字符串
SELECT 姓名, INSERT (`身份证号码` ,3,7,'*****') AS 身份证 FROM `工龄`
5.Trim(s):去掉字符串s开始处和结尾处的空格
SELECT TRIM('???')
6.Trim(s1 from s):去掉字符串s中开始处和结尾处的字符串s1 (索引,全部)
SELECT TRIM( '仁' FROM `姓名`) FROM `员工`
7.Strcmp(s1,s2):比较字符串s1和s2
SELECT STRCMP( `目前薪资` ,`起薪`) FROM `员工`
8.Substring(s,n,len):获取从字符串s中的第n个位置开始长度为len的字符串
SELECT `姓名` ,`身份证号码` FROM `员工` WHERE SUBSTRING( `身份证号码`,3,1)=7
8.1查找第三位为7并且为的女的
SELECT `姓名` ,`身份证号码` FROM `员工` WHERE SUBSTRING( `身份证号码`,3,1)=7 AND mod(substring(身份证号码,14,1)=2,2)=0
8.2查找倒数第三位
SELECT `姓名` ,`身份证号码` FROM `员工` WHERE SUBSTRING(`身份证号码`,CHAR_LENGTH(`身份证号码`)-2,1)=1
9.Locate(s1,s),position(s1 in s):从字符串s中获取s1的开始位置 "(索引,全部)
SELECT POSITION('d' IN 'asdasd')
1.}now(),current_timestamp(),localtime(),sysdate(),localtimestamp():返回当前日期和时间
SELECT NOW()
2.}Month(d):返回日期d中的月份值,范围是1~12
SELECT MONTH(NOW())
3.DAYOFWEEK (s)-1返回日期s 是星期几
SELECT DAYOFWEEK(NOW())-1
4.Hour(t):返回时间t中的小时值
SELECT HOUR( NOW() )
5.Datediff(d1,d2):计算日期d1~d2之间相隔的天数
SELECT DATEDIFF(CURDATE(),'2020-08-10')
6.}Adddate(d,n): 计算起始日期d加上n天的日期
SELECT ADDDATE(CURDATE(),7) AS 一周后,
ADDDATE(CURDATE(), INTERVAL-7 day) AS 一周前,
ADDDATE(CURDATE(), INTERVAL-7 month) AS 七月前,
ADDDATE(CURDATE(), INTERVAL-7 year) AS 七年前
##Subdate(d,n):计算起始日期d减去n天后的日期
SELECT SUBDATE(CURDATE(),INTERVAL 7 day)
6.1.找出30年没有加薪的员工显示(姓名,部门,目前薪资,加薪日期。)
SELECT `姓名` ,`部门` , `目前薪资` , `加薪日期` FROM `员工` WHERE YEAR(NOW())- YEAR(`加薪日期`)>=30
SELECT `姓名` ,`部门` , `目前薪资` , `加薪日期` FROM `员工` WHERE SUBDATE(now(),INTERVAL 30 YEAR)>`加薪日期`
6.2. 将最近一次加薪的员工找出来显示(姓名,部门,目前薪资,加薪日期)
SELECT `姓名` ,`部门` , `目前薪资` , `加薪日期` FROM `员工` ORDER BY `加薪日期` DESC LIMIT 1
6.3. 将以上员工加薪1000员,同时将加薪时间更新
UPDATE `员工` SET `目前薪资`=`目前薪资`+1000,`加薪日期`=CURDATE() WHERE `员工编号` IN(SELECT t. `员工编号`FROM(
SELECT `员工编号` FROM `员工` WHERE YEAR(NOW())- YEAR(`加薪日期`)>30)t)
If(expr,v1,v2):如果表达式expr成立,则执行v1,否则执行v2
SELECT IF(`目前薪资`>5000,'高新','底薪') FROM `员工`
Ifnull(v1,v2):如果v1不为空,则显示v1的值,否则显示v2的值
SELECT IFNULL( `加薪日期`,NOW()) FROM `员工`
Md5(str):对字符串str进行加密。经常用于对普通数据进行加密
SELECT MD5(`身份证号码`)FROM 员工