1 数据类型
MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。
1.1 数值类型
表2-1 MySQL中整型数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|
TINYINT | 1字节 | -128 ~ 127 | 0 ~ 255 | 小整数值 |
SMALLINT | 2字节 | -32,768 ~ 32,767 | 0 ~ 65,535 | 大整数值 |
MEDIUMINT | 3字节 | -8,388,608 ~ 8,388,607 | 0 ~ 16,777,215 | 大整数值 |
INT或INTEGER | 4字节 | -2,147,483,648 ~ 2,147,483,647 | 0 ~ 4,294,967,295 | 大整数值 |
BIGINT | 8字节 | -9,233,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 0 ~ 18,446,744,073,709,551,615 | 极大整数值 |
表2-2 MySQL中浮点数值类型
类型 | 大小 | 用途 |
---|
FLOAT | 4字节 | 单精度浮点数值 |
DOUBLE | 8字节 | 双精度浮点数值 |
DECIMAL(M,D) | 如果M>D,为M+2否则为D+2 | 小数值 |
2.2 字符串类型
表2-3 MySQL中字符串类型
类型 | 大小 | 用途 |
---|
CHAR(M) | M字节,0 ~ 255字节 | 定长字符串 |
VARCHAR(M) | L+1字节,0 ~ 65535字节 | 变长字符串 |
TINYTEXT | L+1字节,0 ~ 255字节 | 短文本字符串 |
TEXT | L+2字节,0 ~ 65,535字节 | 长文本数据 |
MEDIUMTEXT | L+3字节,0 ~ 16,777,215字节 | 中等长度文本数据 |
LONGTEXT | L+4字节,0 ~ 4,294,967,295字节 | 极大文本数据 |
ENUM | 1或2个字节 | 枚举值,只能有一个枚举字符串值 |
SET | 1,2,3,4,8字节 | 一个设置,字符串对象可以有0个或多个SET成员 |
- ENUM:是一个字符串对象,其值为创建表格是规定中枚举的一列值,使用方法如下:
column_name enum('value',...)
2.3 日期和时间类型
表2-4 MySQL中日期和时间类型
类型 | 大小(Byte) | 范围 | 格式 | 用途 |
---|
DATE | 3 | 1000-01-01 ~ 9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | ‘-838:59:59’ ~ ‘838:59:59’ | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901 ~ 2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00 ~ 2038-1-19 11:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
2.4 二进制字符串类型
- 用于以二进制类型的数据存储图像、音频、视频文件,但是使用性不高
表2-5 MySQL中大对象数据类型
类型 | 大小(字节) | 用途 |
---|
BIT(M) | (M+7)/8 | 位字段类型 |
BINARY(M) | M | 固定长度二进制字符串 |
VARBINARY(M) | M+1 | 可变长度二进制字符串 |
TINYBLOB(M) | L+1,0 ~ 255字节 | 不超过255个字符的二进制字符串 |
BLOB(M) | L+2,0 ~ 65,535字节 | 二进制形式的长文本数据 |
MEDIUMBLOB(M) | L+3,0 ~ 16,777,215字节 | 二进制形式的中等长度文本数据 |
LONGBLOB(M) | L+4,0 ~ 4,294,967,295字节 | 二进制形式的极大文本数据 |
2.5 布尔值——Boolean
- Boolean数据类型的默认值为False,占用2个字节的存储空间,取值为False或True
3 SQL运算符
3.1 算术运算符
表3-1 MySQL中的算数运算符
运算符 | 作用 |
---|
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算 |
% | 求余运算 |
3.2 比较运算符
表3-2 MySQL中的比较运算符
运算符 | 作用 |
---|
= | 等于 |
<=> | 安全的等于,可以判断NULL值 |
<>(!=) | 不等于 |
<= | 小于等于 |
>= | 大于等于 |
> | 大于 |
< | 小于 |
IS NULL | 判断一个值是否为NULL |
IS NOT NULL | 判断一个值是否不为NULL |
LEAST | 在有两个或多个参数时,返回最小值 |
GREATEST | 在有两个或多个参数时,返回最大值 |
BETWEEN AND | 判断一个值是否落在两个值之间 |
ISNULL | 与IS NULL作用相同 |
IN | 判断一个值是IN列表中的任意一个值 |
NOT IN | 判断一个值不是IN列表中的任意一个值 |
LIKE | 通配符匹配 |
REGEXP | 正则表达式匹配 |
3.3 逻辑运算符
表3-3 MySQL中的逻辑运算符
运算符 | 作用 |
---|
NOT(!) | 逻辑非 |
AND(&&) | 逻辑与 |
OR( | |
XOR | 逻辑异或 |
3.4 位操作运算符
表3-4 MySQL中的位运算符
运算符 | 作用 |
---|
| | 按位或 |
& | 按位与 |
^ | 按位异或 |
<< | 左移 |
>> | 右移 |
~ | 按位反 |