算术运算符
+ 加法
- 减法
* 乘法
/ 除法
DIV 除法
% 取余
MOD 取余
MySQL的算术预算符----当除数为0的时候结果为NULL;
比较运算符
= 判断是否相等
<>或!= 判断是否不相等
<=> 判断是否相等,可以判断是否等于NULL
>,>= 判断是否大于等于
<,<= 判断是否小于等于
IS NULL或IS NOT NULL 判断是否等于NULL
BETWEEN AND或NOT BETWEEN 判断是否在范围内
IN或NOT IN 判断是否在一个固定范围内
LIKE或NOT LIKE 判断是否匹配
REGEXP 判断是否正则匹配
逻辑运算符
&&或者AND 与 并且
||或者OR 或 或者
!或者NOT 非 取反
XOR 异或 不同为真
MySQL的数学函数
CEIL() 进一取整
FLOOR() 舍一取整
MOD() 取余数(取模)
POWER() 幂运算
ROUND() 四舍五入
TRUNCATE() 数字截取
ABS() 取绝对值
PI() 圆周率
RAND()和RAND(X) 返回0-1之间的随机数,RAND(X)X相同时返回的随机数相同
SIGN(X) 返回X的符号,X为负数,0,正数分别返回-1和0和1
EXP(X) 计算e的几次方
举例:
SELECT 5+5
SELECT empno,ename,ename REGEXP '^s' FROM emp; -- 正则表达式,以s开头 1代表true,0代表false
-- 函数调用
SELECT CEIL(3.14); -- 向上取整
SELECT TRUNCATE(3,14,1); -- 保留几位小数
SELECT SUBSTRING('abc',1,2); -- 截取字符串,从1开始,截取2位
MySQL中的字符串函数
函数名称 作用 char_length(s) 返回字符串s的字符数 length(s) 返回字符串s的长度(一个中文字母长度为3) concat(s1,s2,…) 返回s1,s2…拼接之后的字符串 concat(x,s1,s2,…) 返回以x为分隔符拼接之后的字符串 insert(s1,x,len,s2) 返回将s2从s1第x个字符到x+len个替换之后的字符串 upper(s) ucase(s) 将s字符串中的所有小写字母变成大写 lower(s) lcase(s) 将s字符串中的所有大写字母变成小写 left(s,n) 返回字符串s的前n个字符 rigth(s,n) 返回字符串s的后n个字符 lpad(s1,len,s2) 将字符串循环s2添加到s1的开始处,s1长度为len时停止 rpad(s1,len,s2) 将字符串循环s2添加到s1的结尾处,s1长度为len时停止 trim(s) 去除字符串s首尾两边的空格 ltrim(s) 去除字符串s开始处的空格 rtrim(s) 去除字符串s结尾处的空格 repeat(s,n) 返回将字符串s重复n次后的字符串 space(n) 返回n个空格 replace(s,s1,s2) 将字符串s2替代字符串s中的子字符串s1 strcmp(s1,s2) s1<s2,返回-1;s1=s2,返回0;s1>s2,返回1; substring(s,n,len) 返回从字符串s的第n个字符开始长度为len的子字符串 mid(s,n,len) 返回从字符串s的第n个字符开始长度为len的子字符串 locate(s1,s) 返回s1在s中字符的第几个位置 position(s1 in s) 返回s1在s中字符的第几个位置 instr(s,s1) 返回s1在s中字符的第几个位置 reverse(s) 返回字符串s的逆序字符串 elt(n,s1,s2,sn…) 返回第n个字符串 sn field(s,s1,s2,sn…) 返回字符串s在sn中匹配的位置 n find_in_set(s1,s2) 返回字符串s2在s1中匹配的位置,其中s2必须是以“ , ”分隔的字符串 make_set(x,s1,s2,sn…) 按x的二进制数从sn中选取字符串
SELECT CHAR_LENGTH('admin,root'),LENGTH('admin,root'),CHAR_LENGTH('我爱Java'),LENGTH('我爱Java');
SELECT CONCAT('a','b','c'),CONCAT_WS(',','a','b','c');
SELECT INSERT('admin',2,3,'root');
SELECT UPPER('adminROOTadmin,of;ajax'),UCASE('adminROOTadmin');
SELECT LOWER('adminROOTadmin,of;ajax'),LCASE('adminROOTadmin');
SELECT LEFT('admin',3),RIGHT('admin',3);
SELECT LPAD('admin',12,'root'),RPAD('admin',12,'root'),LPAD('admin',6,'root'),RPAD('admin',6,'root');
SELECT TRIM(' ad min '),LTRIM(' ad min '),RTRIM(' ad min '),TRIM('ad' FROM 'admin admin admin ad');
SELECT REPEAT('admin ',3),SPACE(3),REPLACE('admin','d','c');
SELECT STRCMP('admin','zdmin'),STRCMP('admin','admin'),STRCMP('zdmin','admin');
SELECT SUBSTRING('admin',1,3),MID('admin',1,3);
SELECT LOCATE('mi','admin'),POSITION('mi' IN 'admin'),INSTR('admin','min');
SELECT REVERSE('admin'),ELT(3,'admin','root','miss','running'),FIELD('miss','admin','root','miss','running');
SELECT FIND_IN_SET('miss','admin,root,miss,running')
SELECT MAKE_SET(7,'a','d','m','i','n'),MAKE_SET(9,'a','d','m','i','n')
MySQL中的时间函数(具体见下一篇博客)
函数名称 作用 CURDATE(),CURRENT_DATE() 返回当前日期 CURDATE(),CURRENT_TIME() 返回当前时间 NOW() 返回当前日期和时间 MONTH(D) 返回日期中月份的值 MONTHNAME(D) 返回日期中月份名称,返回January DAYNAME(D) 返回日期是几,Monday DAYOFWEEK(D) 返回一周内的第几天,1代表星期日 WEEKDAY(D) 返回日期是星期几,0代表星期一 WEEK(D) 一年中的第多少个星期 YEAR(D) 返回年份值 HOUR(D) 返回小时值 MINUTE(T) 返回分钟值 SECOND(T) 返回秒数 DATEDIFF(D1,D2) 计算两个日期之间相隔的天数
条件判断函数
函数名称 作用 IF(EXPR,V1,V2) 如果表达式EXPR成立,返回结果V1,否则返回V2 IFNULL(V1,V2) 如果V1的不为空,就显示V1的值,否则V2 CASE WHEN exp1 THEN V1 [ WHEN exp2 THEN V2] [ELSE VN ] END case表示函数开始,end表示函数结束,如果表达式exp1成立时,返回v1,如果表达式exp2成立,返回v2的值,依此类推,最后遇到ELSE时,返回vn的值
系统信息函数
函数名称 作用 VERSION() 返回数据库的版本号 CONNECTION_ID() 返回服务器的连接数 DATABASE(),SCHEMA() 返回当前数据库名 USER()SYSTEM_USER() 返回当前用户 CURRENT_USER(),CURRENT_USER 返回当前用户 CHARSET(STR) 返回字符串STR的字符集 COLLECTION(STR) 返回字符串STR的校验字符集 LAST_INSERT_ID() 返回最近生成的AUTO_INCREMENT值