Mysql的运算符与常用函数

1. MySQL 中的运算符

1.1 算术运算符

MySQL 支持的算术运算符

运算符作用
+加法
-减法
/,DIV除法,返回商
%,MOD除法,返回余数

除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL
对于模运算,还有另外一种表达方式,使用MOD(a,b)函数与a%b 效果一样。

1.2 比较运算符

MySQL 支持的比较运算符

运算符作用
=等于
<>或!=不等于
<=>NULL安全的等于(NULL-safe)
<小于
>大于
>=大于等于
BETWEEN存在与指定范围
IN存在于指定集合
IS NULL为NULL
IS NOT NULL不为NULL
LIKE通配符匹配
REGEXP或RLIKE正则表达式匹配

1.3 逻辑运算符

MySQL 中的逻辑运算符

运算符作用
NOT或!逻辑非
AND或&&逻辑与
OR或 ||逻辑或
XOR逻辑异或

1.4 位运算符

运算符作用
&位与(位AND)
|位或(位OR)
^位异或(位 XOR)
~位取反
>>位右移
<<位左移

1.5 运算符的优先级

优先级顺序运算符
1:=
2I,OR,XOR
3&&,AND
4NOT
5BETWEEN,CASE,WHEN,THEN,ELSE
6=,<>,>=,>,<=<心,l=IS,LIKE REGEXP,IN
7\
8&
9<<,>>
10-,=
11*/,DIV,%,MOD
12^
13-(一元减号),~(一元比特反转)
14!

2. 常用函数

2.1 字符串函数

MySQL 中的常用字符串函数

函数功能
CANCAT(S1,S2...Sn)连接S1,52..Sn为一个字符串
INSERT(str,x,y,instr)将字符串str从第x位置开始,y个字符长的子串替换为字符串instr
LOWER(str)将字符串str中所有字符变为小写
UPPER(Str)将字符串str中所有字符变为大写
LEFT(Str,x)返回字符串str最左边的x个字符
RIGHT(Str,x)返回字符串str最右边的x个字符
LPAD(str,n,pad)用字符串pad对str最左边进行填充,直到长度为n个字符长度
RPAD(Str,n,pad)用字符串pad对str最右边进行填充,直到长度为n个字符长度
LTRIM(Str)去掉字符串str左侧的空格RTRIM(Str)
REPEAT(Str,x)返回str重复x次的结果
REPLACE(Str,a,b)用字符串b替换字符串str中所有出现的字符串a
STRCMP(S1,52)比较字符串s1和52
TRIM(Str)去掉字符串行尾和行头的空格
SUBSTRING(Str,X,y)返回从字符串strx位置起y个字符长度的字串

2.2 数值函数

MySQL 中的常用数值函数

函数功能
ABS(x)返回x的绝对值
CEIL(x)返回大于x的最大整数值
FLOOR(x)返回小于x的最大整数值
MOD(x,y)返回x/y的模
RAND()返回0到1内的随机值
ROUND(x,y)返回参数x的四舍五入的有y位小数的值
TRUNCATE(x,y)返回数字x截断为y位小数的结果

2.3 日期和时间函数

MySQL中的常用日期时间函数

函数功能
CURDATE()返回当前日期CURTIME()
NOW()返回当前的日期和时间
UNIX_TIMESTAMP(date)返回日期date的UNIX时间戳
FROM_UNIXTIME返回UNIX时间戳的日期值
WEEK(date)返回日期date为一年中的第几周
YEAR(date)返回日期date的年份
HOUR(time)返回time的小时值
MINUTE(time)返回time的分钟值
MONTHNAME(date)返回date的月份名
DATE_FORMAT(date,fmt)返回按字符串fmt格式化日期date值
DATE_ADD(date,INTERVAL expr type)返回一个日期或时间值加上一个时间间隔的时间值
DATEDIFF(expr,expr2)返回起始时间expr和结束时间expr2之间的天数

MySQL中的日期格式

格式符格式说明
%S,%s两位数字形式的秒(00,01..,59)
%i两位数字形式的分(00,01..,59)
%H两位数字形式的小时,24小时(00,01..,23)
%h,%l两位数字形式的小时,12小时(01,02.…12)
%k数字形式的小时,24小时(0,1..,23)%l
%T24小时的时间形式(hh:mm:ss)
%r12小时的时间形式(hh:mm:ssAM或hh:mm:ssPM)
%pAM或PM
%w一周中每一天的名称(Sunday,Monday.…,Saturday)
%a一周中每一天名称的缩写(Sun,Mon.……Sat)
%d两位数字表示月中的天数(00,01.,31)
%e数字形式表示月中的天数(1,2,…,31)
%D英文后缀表示月中的天数(1st,2nd,3rd..…)
%w以数字形式表示周中的天数(0=Sunday,1=Monday.…,6=Saturday)
%j以3位数字表示年中的天数(001,002.,366)
%U周(0,1,52),其中Sunday为周中的第一天%u
%M月名(January,February.,December)
%b缩写的月名(January,February.…,December)
%m两位数字表示的月份(01,02.…,12)
%c数字表示的月份(1,2.…12)
9%Y4位数字表示的年份
%y两位数字表示的年份
%%直接值“%”

MySQL 中的日期间隔类型

表达式类型描述格式
HOUR小时hh
MINUTE 
SECOND5s
YEARYY
MONTH月MM 
DAYDD
YEAR_MONTH年和月YY-MM
DAY_HOUR日和小时DDhh
DAY_MINUTE日和分钟DDhh:mm
DAY_SECOND日和秒DD hh:mm:ss
HOUR_MINUTE小时和分hh:mm
HOUR_SECOND小时和秒hh:ss
MINUTE_SECOND分钟和秒mm:ss

2.4 流程函数

MySQL 中的流程函数

函数功能
IF(value,t, f)如果value是真,返回t;否则返回f
IFNULL(value1,value2)如果value1不为空返回 value1,否则返回 value2
CASE WHEN[value1]
THEN[result1]..ELSE[defaultJEND
如果value1是真,返回result1,否则返回default
CASE[expr]WHEN[value1]
default THEN[result1]..ELSE[default]END
如果expr等于value1,返回 result1,否则返回
IF(value,t,f)函数:我们认为月薪在2000 元以上的职员属于高薪,用“high”表示;而
2000 元以下的职员属于低薪,用“low”表示。
select if(salary>2000,'high','low') from salary;

IFNULL(value1,value2)函数:这个函数一般用来替换NULL 值的,我们知道NULL 值是不
能参与数值运算的,下面这个语句就是把NULL 值用0 来替换。
select ifnull(salary,0) from salary;

CASE WHEN [value1] THEN[result1]…ELSE[default]END 函数:
select case when salary<=2000 then 'low' else 'high' end from salary;

CASE [expr] WHEN [value1] THEN[result1]…ELSE[default]END 函数:
select case salary when 1000 then 'low' when 2000 then 'mid' else 'high' end from
salary;

2.5 其他常用函数

MySQL 中的其他常用函数

函数功能
DATABASE()返回当前数据库名
VERSION()返回当前数据库版本
USER()返回当前登录用户名
INET_ATON(IP)返回lP地址的数字表示
INET_NTOA(num)返回数字代表的IP地址

PASSWORD(Str)返回字符串str的加密版本 MD5()|返回字符串str的MD5值

INET_ATON(IP)和INET_NTOA(num)函数主要的用途是将字符串的IP 地址转换为数字表示的网络字节序,这样可以更方便地进行IP 或者网段的比较。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值