1.数值类型
-
整数类型
TINYINT
:1字节整数,范围从-128到127 (有符号) 或 0到255 (无符号)。SMALLINT
:2字节整数,范围从-32768到32767 (有符号) 或 0到65535 (无符号)。MEDIUMINT
:3字节整数,范围从-8388608到8388607 (有符号) 或 0到16777215 (无符号)。INT
或INTEGER
:4字节整数,范围从-2147483648到2147483647 (有符号) 或 0到4294967295 (无符号)。BIGINT
:8字节整数,范围从-9223372036854775808到9223372036854775807 (有符号) 或 0到18446744073709551615 (无符号)。
-
浮点数类型
FLOAT(M, D)
:单精度浮点数,M是总位数,D是小数点后位数。DOUBLE(M, D)
:双精度浮点数,M是总位数,D是小数点后位数。
-
定点数类型
DECIMAL(M, D)
:精确小数数值,M是总位数,D是小数点后位数。
2. 日期和时间类型
DATE
:日期,格式为'YYYY-MM-DD'。TIME
:时间,格式为'HH:MM:SS'。DATETIME
:日期和时间组合,格式为'YYYY-MM-DD HH:MM:SS'。TIMESTAMP
:时间戳,与时区有关,通常用于记录修改时间。YEAR
:年份,格式为'YYYY'。
3. 字符串类型
CHAR(N)
: 固定长度字符串,最多255个字符。VARCHAR(N)
: 可变长度字符串,最多65535个字符。TEXT
: 长文本数据,最多65535个字符。TINYTEXT
: 短文本数据,最多255个字符。MEDIUMTEXT
: 中等长度文本数据,最多16777215个字符。LONGTEXT
: 长文本数据,最多4294967295个字符。
char(45): 字符串长度45,长度固定,例如存"hello",实际存的是"hello000000000000000....",长度固定45。
varchar(45): 字符串最大长度45,例如存"hello",实际存的是"hello",实际存多少就占多少长度,一个字符占一个字节。
nvarchar(45): 字符串最大长度45,例如存"hello",实际存的是"hello",实际存多少就占多少长度,不能超过45,使用宽字符集,一个字符占两个字节。
4. 二进制类型
BLOB
:二进制数据,最多65535字节。TINYBLOB
:小型二进制数据,最多255字节。MEDIUMBLOB
:中等大小二进制数据,最多16777215字节。LONGBLOB
:大型二进制数据,最多4294967295字节。
5. 特殊类型
ENUM('value1', 'value2', ...)
:枚举类型,允许定义一组可能的值。SET('value1', 'value2', ...)
:集合类型,允许多个值的组合。
注意事项:
- 数据类型的选择应根据数据的特性和存储需求进行合理的选择,以提高效率和节省存储空间。
- 在定义表结构时,应根据实际情况选择合适的数据类型和长度,避免过度使用大容量类型。
- MySQL还支持自定义数据类型、空间数据类型等,但这些不在常规使用范围内。