一、常量

类型

说明

字符串常量

分为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迭代