一、常量
类型 | 说明 |
字符串常量 | 分为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为NULLIS NOT NULL不为NULLLIKE通配符匹配REGEXP 或 RLIKE正则表达式匹配
3、逻辑运算符:
运算符作用NOT 或 !逻辑非AND 或 &&逻辑与OR 或 ||逻辑或XOR逻辑异或
4、位运算符:
运算符作用&位与|位或^位异或~位取反>>位右移<<位左移
5、运算符优先级:
优先级顺序运算符1INTERVAL2BINARY , COLLATE3!4-(一元减号),~(一元比特反转)5^6* , / , DIV , % , MOD7- , +8<< , >>9&10|11= , <=> , >=, > , <= , < , <> , != , IS , LIKE , REGEXP , IN12BETWEEN , CASE , WHEN , THEN , ELSE13NOT14&& , AND15|| , OR , XOR16!=
四、控制语句
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迭代