算术运算符:
+ - * /(除也可以写成div,div取整) %(取模可以写成mod)
比较运算符:
= 、>、 >= 、< 、<= 、!=(不等于还可以写成<>) 、<=>(安全等于)
逻辑运算符:
&&(逻辑与也可以写成and) ||(逻辑或也可以写成or) not(逻辑非) xor(逻辑异或)
(||:左边成立执行右边,左边不成立结束)
范围集合:
表达式 between ... and ... (也可以写成 表达式>=... and 表达式 <=...)
表达式 not between ... and ...(也可以写成 表达式<... || 表达式 >...)
in (值,值,值...) 、 not in(值,值,值...)
模糊查询:
- like 和 通配符 一起使用
- like _ 匹配单个字符
- like % 匹配任意个字符
#快速创一个表2,,其结构与表1完全相同:
create table 表2 like 表1
NULL值判断与处理:
关于null值计算:所有运算符遇到null都是null
常用函数
字符串函数 | |
---|---|
函数 | 功能 |
CONCAT(s1,s2...sn) | 字符串 s1,s2 等多个字符串合并为一个字符串 |
INSERT(s1,x,len,s2) | 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串 |
LOWER(s) | 将字符串 s 的所有字母变成小写字母 |
UPPER(s) | 将字符串转换为大写 |
LEFT(s,n) | 返回字符串 s 的前 n 个字符(最左边的n个字符) |
RIGHT(s,n) | 返回字符串 s 的后 n 个字符(最右边的n个字符) |
LPAD(s1,len,s2) | 在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len |
RPAD(s1,len,s2) | 在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len |
LTRIM(s) | 去掉字符串 s 开始处的空格 |
RTRIM(s) | 去掉字符串 s 结尾处的空格 |
TRIM(s) | 去掉字符串 s 开始和结尾处的空格 |
REPEAT(s,n) | 将字符串 s 重复 n 次 |
REPLACE(s,s1,s2) | 将字符串 s2 替代字符串 s 中的字符串 s1 |
REVERSE(s) | 将字符串s的顺序反过来 |
STRCMP(s1,s2) | 比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1 |
SUBSTRING(s, start, length) | 从字符串 s 的 start 位置截取长度为 length 的子字符串 |
| |
---|---|
ABS(x) | 返回 x 绝对值 |
MOD(x,y) | 返回 x 除以 y 以后的余数 |
SQRT(x) | 返回x的平方根 |
POW(x,y) | 返回 x 的 y 次方 |
EXP(x) | 返回 e 的 x 次方 |
LOG(x) | 返回自然对数(以 e 为底的对数) |
MAX(expression) | 返回字段中的最大值 |
MIN(expression) | 返回字段 expression 中的最小值 |
SUM(expression) | 返回指定字段的总和 |
COUNT(expression) | 返回查询的记录总数,expression 参数是一个字段或者 * 号 |
AVG(expression) | 返回一个表达式的平均值,expression 是一个字段 |
CEIL(x) | 返回大于或等于x的最小整数 |
FLOOR(x) | 返回小于或等于 x 的最大整数 |
ROUND(x) | 返回离 x 最近的整数 |
TRUNCATE(x,y) | 返回数值 x 保留到小数点后 y 位的值(与 ROUND 最大的区别是不会进行四舍五入) |
RAND() |
*函数* | *功能* |
CURDATE() | 返回当前日期 |
CURTIME() | 返回当前时间 |
NOW() | 返回当前日期和时间 |
UNIX_TIMESTAMP(date) | 返回日期date的unix时间戳 |
FROM_UNIXTIME | 返回unix时间戳的日期值 |
YEAR(date) | 返回年份 |
MONTH(date) | 返回日期date中的月份值,1 到 12 |
MONTHNAME(date) | 返回日期当中的月份名称,如 Janyary |
WEEK(date) | 计算日期 date 是本年的第几个星期,范围是 0 到 53 |
HOUR(time) | 返回 time中的小时值 |
MINUTE(time) | 返回 time 中的分钟值 |
SECOND(time) | 返回 time 中的秒钟值 |
DATE_FORMAT(date,fmt) | 按表达式 fmt的要求显示日期 date |
DATE_ADD(date,INTERVAL expr type) | 计算起始日期 date 加上一个时间段后的日期 |
DATEDIFF(date1,date2) |
函数 |
功能 |
IF(value,t,f) | 如果value是真,返回t;否则返回f |
IFNULL(value1,value2) | 如果value1不为空,返回value1;否则返回value2 |
CASE WHEN[value1]THEN[result]…ELSE[default]END | 如果value1是真,返回result1;否则返回default |
CASE[expr]WHEN[value1]THEN[result]…ELSE[default]END |