表达式
- 除了特殊处理,包含null的表达式总是null
操作符
- {and|&&}、{or|||}、{xor} {not|!}
- [not] between ... and ...
- &、~、|、^ :(位)与、反、或、异或
- case:ansi的标准操作符
- is [not] {null|true|false}
- =、>=、>、<=、<、<=>、!=、<> --"<=>"安全的等于:会是表达式"null<=>null"为true1,其中有一个是null时,返回false0
- +、-、*、/、%、div --div(floor())是用于整数的除法,对于bigint是安全的;%(mod())取余
- [not] like
- [not] {rlike|regexp} --正则表达式模式匹配
- >>、<< --位右移、左移
- binary --关键字:强制字符串转换为二进制模式
- ()--改变操作符的优先级
- 特殊的操作函数
in()、least()、greatest()、coalesce()、interval()、isnull()、strcmp()...
if()类似于c的?三元运算符、ifnull()类似于sqlserver的isnull()、nullif()、
类型转换
- 比较的两边一个是datetime或timestamp,另一边是常量时,常量隐式转换为datetime 或 timestamp
- 两个类型相同时,按同类型比较
- 其他情况下转换为duble——可能不需要转到最高级,而是中间的足够宽容的级别
- 隐式转换:
- 显示转换:cast()、convert()、binary。注意cast函数支持的type:binary(m),char(m),date,datetime,singed,unsigned,decimal(m,d)
特殊函数
- benchmark()重复执行表达式
- default()获取表列的默认值
- last_day() 某月最后的日期
.............................