目录
运算符
算术运算符
算术运算符是最常见的一类运算符,MySQL中支持的算数运算符包括加、减、乘、除、取余。如下表:
符号 | 作用 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
DIV | 除法,等同于'/' |
MOD | 取余,等同于'%' |
说明:
算数运算符可以同时运算多个操作数;
在进行除法和取余运算操作时,如果除数是0,则结果将是空值;
CREATE TABLE IF NOT EXISTS ROW(ROW INT NULL DEFAULT NULL);
INSERT INTO ROW(ROW) VALUES(95),(NULL),(1),(8),(NULL);
SELECT
ROW AS 'ori',
ROW+ROW AS '+',
ROW-ROW AS '-',
ROW*ROW AS '*',
ROW/ROW AS '/',
ROW%ROW AS '%',
ROW DIV ROW AS 'DIV',
ROW MOD ROW AS 'MOD'
FROM ROW;
比较运算符
比较运算符是数据查询时最常见的一类运算符,通过比较运算符可以判断表中哪些记录是符合条件的,如下表所示:
运算符 | 名称 | 示例 | 运算符 | 名称 | 示例 |
= | 等于 | id=5 | is not null | n/a | id is not null |
> | 大于 | id>5 | between and | n/a | id is between and 15 |
< | 小于 | id<5 | in | n/a | id in(3,4,5) |
>= | 大于等于 | id>=5 | not in | n/a | name not in(shi,li) |
<= | 小于等于 | id<=5 | like | 匹配模式 | name like('shi%') |
!=或<> | 不等于 | id!=5 | not like | 匹配模式 | name not like('shi%') |
is null | n/a | id is null | regexp | 常规表达式 | name 正则表达式 |
运算符"="
用来判断数字,字符串和表达式是否相等,如果相等 返回1,否则返回0.在进行字符比较时,比较的是字符的ASCLL码,空值(NULL)不能使用"="比较
SELECT ROW=95 FROM ROW;
id等于95的记录返回1,不等于的返回0
流程控制语句
在MySQL中,常见的过程是SQL语句可以用一个存储过程体中.其中包括IF语句、case语句、loop语句、while语句、iterate语句和leave语句
if语句
条件判断语句,首先判断if后面的条件是否为真,若为真执行then后面的语句,若为假继续panduanif语句直到为真,当以上条件都不满足时,执行else语句,语法如下:
if condition then
...
[else condition then]
...
[else]
...
endif
case语句
多分支语句结构,该语句首先从when后面的value中查找与case后面的value相等的值,如果找到则执行该分支的内容,否则执行else后面的内容,语法格式如下:
case value
when value then ...
[when value then ...]
[else ...]
end case
另一种语法的表现形式如下:
case when value then ...
[when value then...]
[else...]
end case
while循环语句
while循环语句执行时首先判断condition条件是否为真,如果是则执行循环体,否则退出循环。语法格式如下:
while condition do
...
end while;
loop语句
该循环没有内置循环条件,但是可以通过leave语句退出循环,语法格式如下:
loop
...
end loop
repeat语句
该语句先执行一次循环体,之后判断condition条件是否为真,为真则退出循环,否则继续执行循环,语法格式如下:
repeat
...
until condition
end repeat
※注意
与一般程序设计流程控制不同的是:存储过程并不支持for循环