运算符是MySQL执行特定算数或逻辑操作的符号,运算符连接表达式中各个操作数,其作用用来指明操作数所运行的运算;
算数运算符
+ - * / %(求余)
比较运算符
> ,<,>=,<=, <>(!=),is null,between ....and...(判断一个值是否在两个值之间) ,(not)in (判断一个值是一个列表中的值),like (通配符匹配)
逻辑运算符
and or not
函数
函数表示对输入值返回一个具有特定关系的值;
数值函数:
ceil(x):返回大于x 的最小整数值:select ceil(28.34);----29
floor(x),返回小于x的最小整数值;select floor(28.34);---28
四舍五入:
round(x)返回接近参数x的整数,对x进行四舍五入,select round(2.5)---3;
round(x,y)保留小数点后面是y位,。若y是负数,则保留x值到小数点左边y位;
select round(23.55,1),round(23.33,0),round(23.44,-1);--23.6 23 20
截断函数:
truncate(x,y)返回被舍去小数点后面y位的数字x,若值为0则返回整数,若y 为负数,则截取小数点左侧第y位
select truncate(23.44,1),truncate(23.44,0),truncate(23.44,-1);----23.4 23 20
取模:
mod(x,y) 返回x被y除后的余数;
select mod(11,2)---1
字符函数
处理数据库中字符串数据
concat(s1,s2....)返回结果为连接参数产生的字符串,如果任何一个参数为null,则返回为null;
select concat("hello","word");-------------helloword
select concat("hello",null);-------------NULL
concat_ws("x",s1,s2);第一个参数x是其他参数的符,若分隔符为null,则结果为null
select concat_ws("_",“hello”,“word”) ,------hello_word
字母转换大小写函数:
lower(str):全部转化为小写
upper(str)全部转化为大写字母
求字符串长度函数
length(str);-----返回字符串长度
例:select length ("hello");---5
删除空格函数:
ltrim(s);返回字符串s字符串左侧字符被删除
select ltrim(" hello ");---"hell0 "
rtrim(s);返回字符串s,右侧字符串被删除
截取字符串:
substring(s,n,len);带有len参数格式,从字符串s返回一个长度为len的字符串,起始位置为n,若n为复数,则字符串的起始位置为
字符串结尾的n个字符
select substring("hello",2,3);----ell
select substring("hello",-4,3);----el
获取指定长度字符串
left(s,n)返回字符串s,开始最左侧n个字符串
select left("hello world",3) --hel
right(s,n)返回字符串s,开始最右侧n个字符串
替换函数;
replace(str,from_str,to_str),字符串str在from_str中出现的字符均被to_str替换
select replace("hello world","world","mysql");----hello mysql
格式化函数
format(x,n),将数字x格式化,并以四舍五入的方式保留小数点后面n位,结果以字符串的形式返回,若n为0,则返回结果不含小数
select formate(123.233,2),formate(32.3,2),formate(32.333,0); 123.23 32.30 32
时间日期函数:处理日期与时间函数
获取当前日期函数
curdate()和current_date()
select curdate(); ---2019-07-27
获取当前时间函数
curtime()和curren_time();
select curtime(); -- 17:10:21
获取当前日期时间
now()和sysdate()
select now():--2019-07-27 17:12:16
执行日期的加运算
date_add(date,interval,expr type),date是一个DATETIME或DATE的值,用来指定起始时间。
expr 是一个表达式,用来指定起始时间添加或减去的时间间隔
type 为关键词,指示了表达式被解释的方式如:month,day,week,hour等;
select date_add("2019-07-27",interval 2 month); ---2019-09-27
计算两个日期之间的间隔天数
datediff(date1,date2),返回起始时间date1余结束时间date2,之间间隔
聚合函数
有时候不需要返回实际表中的数据,只是对获取的数据进行分析与总结,需要聚合函数
avg()-----平均值
count()----返回某列行数 select count(*) from book;查询有多少种类书籍
max()---最大值
min()--最小值
sum()--求和
系统信息函数
version();查看当前版本号
connection_id(); 返回mysql服务器当前连接的次数,每个连接都有各自的ID;
database()与schema();返回当前数据库名
user();获取用户名函数,返回当前登陆的用户名称
加密函数:
md5():信息摘要算法
MD5(str):加密字符串,加密后的值以32位十六进制数字的二进制字符串的形式返回,若参数为NULL,则返回NULL
select md5("test");------------------ 098f6bcd4621d373cade4e832627b4f6
------------------------------------------------------------------------------------------------------------------------------------------------------
password():密码算法
password(str):从原明文密码str计算并返回加密后的密码字符串,若参数为NULL,则返回NULL
select password("test");------------*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29