1. 字符串函数
1:任何字符串和NULL连接结果都是NULL 如下
2:下⾯的例⼦把字符串“beijing2018you”中从第12个字符开始以后的3个字符替换 成“me”。
3:在字符串⽐较中,通常要将⽐较的字符串全部转换为⼤写或者⼩写
4:LEFT(str,x)和RIGHT(str,x)函数:分别返回字符串最左边的x个字符和最右边的x个字符。如果第⼆个参数是
NULL,那么将不返回任何字符串。
5:LPAD(str,n,pad)和RPAD(str,n,pad)函数:⽤字符串pad对str最左边和最右边进⾏填充,直到长度为n个字符长度
6:LTRIM(str)和RTRIM(str)函数:去掉字符串str左侧和右侧空格。
7:TRIM(str)函数:去掉⽬标字符串的开头和结尾的空格。
8:REPEAT(str,x)函数:返回str重复x次的结果。
9:REPLACE(str,a,b)函数:⽤字符串b替换字符串str中所有出现的字符串a。
10:STRCMP(s1,s2)函数:⽐较字符串s1和s2的ASCII码值的⼤⼩。
11:SUBSTRING(str,x,y)函数:返回从字符串str中的第x位置起y个字符长度的字串。
2. 数值函数
1:ABS(x)函数:返回x的绝对值。
2:CEIL(x)函数:返回⼤于x的最⼩整数。
3:FLOOR(x)函数:返回⼩于x的最⼤整数,和CEIL的⽤法刚好相反。
4:MOD(x,y)函数:返回x/y的模。
5:RAND()函数:返回0~1内的随机值。
利⽤此函数可以取任意指定范围内的随机数,⽐如需要产⽣ 0~100 内的任意随机 整数,可以进⾏如下操作
6:ROUND(x,y)函数:返回参数x的四舍五⼊的有y位⼩数的值。
7:TRUNCATE(x,y)函数:返回数字x截断为y位⼩数的结果。
注意TRUNCATE和ROUND的区别在于TRUNCATE仅仅是截断,⽽不进⾏四舍五⼊
3. ⽇期和时间函数
1:CURDATE()函数:返回当前⽇期,只包含年⽉⽇。
2:CURTIME()函数:返回当前时间,只包含时分秒。
3:NOW()函数:返回当前的⽇期和时间,年⽉⽇时分秒全都包含。
4:WEEK(DATE)和 YEAR(DATE)函数:前者返回所给的⽇期是⼀年中的第⼏周,后者返回所给的⽇期是哪⼀年。
5:HOUR(time)和MINUTE(time)函数:前者返回所给时间的⼩时,后者返回所给时间的分钟。
6:DATE_FORMAT(date,fmt)函数:按字符串 fmt 格式化⽇期 date 值,此函数能够按指定的格式显⽰⽇期
7:DATE_ADD(date,INTERVAL expr type)函数:返回与所给⽇期date相差 INTERVAL时间段的⽇期。
其中INTERVAL是间隔类型关键字,expr是⼀个表达式,这个表达式对应后⾯的 类型, type是间隔类型,MySQL提供了13种间隔类型
8:同样也可以⽤负数让它返回之前的某个⽇期时间,如下第1列返回了当前⽇期时间,第2列返回距离当前⽇期31天前的⽇期时间,第3列返回距离当前⽇期⼀年两个⽉前的⽇期时间,跟上面的意思相反
9:DATEDIFF(date1,date2)函数:⽤来计算两个⽇期之间相差的天数。 下⾯的例⼦计算出当前距离2020年3⽉1⽇学校毕业还有多少天
4.流程函数
用户可以使用这类函数在一个SQL语句中实现条件选择,这样做能够提⾼语句的效率。
1:下⾯的例⼦中模拟了对职员薪⽔进⾏分类,这⾥⾸先创建并初始化⼀个职员薪⽔
create table salary (userid int,salary decimal(9,2));
insert into salary values(1,1000),(2,2000), (3,3000),(4,4000),(5,5000), (1,null);
IF(value,t,f)函数:这⾥认为⽉薪在2000元以上的职员属于⾼薪,⽤“high”表⽰;⽽2000元以下的职员属于低 薪,⽤“low”表⽰。
select if(salary>2000, 'high', 'low') from salary;
2:IFNULL(value1,value2)函数:这个函数⼀般⽤来替换 NULL 值,我们知道 NULL 值是不能参与数值运算的, 下⾯这个语句就是把NULL值⽤0来替换
select ifnull(salary,0) as salary from salary;
3:CASE WHEN [value1] THEN[result1]…ELSE[default]END函数:这⾥也可以⽤ case when…then函数实现上⾯例
⼦中⾼薪低薪的问题。
4:CASE [expr] WHEN [value1] THEN[result1]…ELSE[default]END函数:这⾥还可以分多种情况把职员的薪⽔分
多个档次,⽐如下⾯的例⼦分成⾼、中、低3种情况
1:DATABASE()函数:返回当前数据库名。
select DATABASE();
2:VERSION()函数:返回当前数据库版本。
select VERSION();
3:USER()函数:返回当前登录⽤户名。
select USER();
4:PASSWORD(str)函数:返回字符串str的加密版本,⼀个41位长的字符串。此函数只⽤来设置系统⽤户的密码,但是不能⽤来对应⽤的数据加密。如果应⽤⽅⾯有加密的需求,可以使⽤MD5等加密函数来实现
select PASSWORD('123456');
5:MD5(str)函数:返回字符串str的MD5值,常⽤来对应⽤中的数据进⾏加密。
select MD5('123456');