一、常量
类型 | 说明 |
---|---|
字符串常量 | 分为ASCII常量和Unicode常量(加前缀N,如 N 'hello'),部分特殊字符须转义 |
数值常量 | 整数常量、浮点数常量 |
十六进制常量 | 通常指定为一个字符长常量,每对十六进制数字被转换为一个字符,如X'4D5F' , x'4D5F' 或 0x4D5F |
日期时间常量 | 由单引号将表示日期时间的字符串括起来,年月日的顺序,间隔符为“-”、“\”,"@" 或 "%" |
位字段常量 | 使用字母b和由单引号引起来的数值表示,如b’value',其中value是一个用0或1写成的二进制值 |
布尔值 | TURE / FALSE,或者1 / 0 |
NULL值 | 空值,即没有值、无数据。它不同于0或空字符串 |
二、变量
1、用户变量,用户自定义的变量
使用SET关键字来定义变量,变量名称前使用@符号,格式如:
SET @user_variable=expression 或 SET @user_variable1=expression1 [,user_variable2=expression2,...]
在SQL语句中,使用":="作为分配符,如SELECT @t2:=7 as t2
2、系统变量,系统生成的变量
必须在变量名称前加两个@符号,省略两个@符号的常用系统变量如下:
CURRENT_DATE: 系统日期
CURRENT_TIME: 系统时间
CURRENT_TIMESTAMP: 系统日期和时间
CURRENT_USER: SQL用户的名字
系统变量分为全局系统变量和会话系统变量
三、运算符
1、算术运算符:
+ 加法 - 减法 * 乘法 / , DIV() 除法 % , MOD() 求余
2、比较运算符:
运算符 作用 = 等于 <>或!= 不等于 <=> NULL安全的等于 < 小于 <= 小于等于 > 大于 >= 大于等于 BETWEEN AND 存在于指定范围 IN 存在于指定集合 IS NULL 为NULL IS NOT NULL 不为NULL LIKE 通配符匹配 REGEXP 或 RLIKE 正则表达式匹配
3、逻辑运算符:
运算符 作用 NOT 或 ! 逻辑非 AND 或 && 逻辑与 OR 或 || 逻辑或 XOR 逻辑异或
4、位运算符:
运算符 作用 & 位与 | 位或 ^ 位异或 ~ 位取反 >> 位右移 << 位左移
5、运算符优先级:
优先级顺序 运算符 1 INTERVAL 2 BINARY , COLLATE 3 ! 4 -(一元减号),~(一元比特反转) 5 ^ 6 * , / , DIV , % , MOD 7 - , + 8 << , >> 9 & 10 | 11 = , <=> , >=, > , <= , < , <> , != , IS , LIKE , REGEXP , IN 12 BETWEEN , CASE , WHEN , THEN , ELSE 13 NOT 14 && , AND 15 || , OR , XOR 16 !=
四、控制语句
MySQL数据库支持多种控制语句,包括选择语句、循环语句、迭代和跳出,但能够用在控制台命名的只有条件语句,其它语句可在函数、存储过程和触发器中使用
1、条件语句(IF和CASE)
控制台:
IF (条件,结果1,结果2);
CASE 字段名称
WHEN 值1 THEN 结果1
WHEN 值2 THEN 结果2
WHEN 值N THEN 结果N
ELSE 默认结果
END AS 字段别名
函数或存储过程:
IF search_condition THEN statement_list
[ ELSEIF search_condition THEN statement_list ]...
[ ELSE statement_list ]
END IF
CASE [ case_value ]
WHEN search_condition THEN statement_list
[ WHEN search_condition THEN statement_list ]...
END CASE
2、循环语句
(1) WHILE END WHILE
(2) REPEAT END REPEAT
(3) LOOP END LOOP
(4) LABLES 标号
(5) ITERATE迭代