目录
数据类型:数值类型、字符串类型、日期和时间类型、枚举和集合类型
数值类型
tinyint类型
tinyint是一种整数数据类型,用于存储较小的整数值。
取值范围
有符号:-128——127
无符号:0——255
存储空间
该类型占用1个字节
bit类型
bit数据类型用于存储二进制数据,即由 0 和 1 组成的数据。它在数据库中用于表示位字段,适合存储位标志或位掩码等数据。
语法:
bit[(M)]
取值范围
可以指定存储的位数M:1——64
存储空间
每增加8位占用的字节数+1
小数类型
float
float类型它适用于存储不需要高精度的小数
语法:
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节
精度
大约可以存储 7 位有效数字。
存储范围
该类型占用4个字节。
double
double类型是一种双精度浮点数类型,通常占用 8 个字节。它提供了比float更高的精度,适用于需要更高精度的小数。
语法:
double[(m, d)] [unsigned] : M指定显示长度,d指定小数位数
精度
大约可以存储 15 位有效数字。
存储范围
该类型占用8个字节。
float和double在精度较高时会出现误差,所以可以使用decimal
decimal
decimal类型是一种定点数类型,用于存储精确的小数。它在存储和计算时会保持精确的数值,不会出现浮点数的精度问题。
语法:
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数
精度
可以精确表示指定的小数位数,适用于需要精确计算的场景。
存储范围
根据定义的精度和小数位数动态分配存储空间。
字符串类型
char
char类型是一种固定长度的字符串类型。
语法:
char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255
不论实际存储的数据长度如何,都会占用声明时指定的全部长度。
这里的L并不是字节,而是字符个数,无论是英文还是中文(无论占用1字节或2字节或3字节),都能够存储L个字符
varchar
varchar是一种可变长度的字符串类型。
语法:
varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节
实际存储时,varchar只占用实际数据的长度加上一个额外的字节
varchar相比char更节省空间,因为char会用空格将剩余空间补齐,varchar只会占用实际数据的空间
日期和时间类型
date
date是用于存储日期的类型。
它只包含年、月、日信息,不包含时间信息。
格式:YYYY-MM-DD
存储空间
占用3字节
datetime
datetime是用于存储日期和时间的类型。
它包含年、月、日、小时、分钟和秒。
格式:YYYY-MM-DD HH:MM:SS
存储空间
占用8字节
timestamp
timestamp是一个时间戳,从1970年开始的
存储空间
占用4字节
enum
enum是一个字符串对象,其值从预定义的字符串列表中选择。
在定义时,需要指定所有可能的值,这些值用单引号括起来,并用逗号分隔。
语法:
enum('apple', 'banana', 'cherry')
适用于字段的值是有限且固定的情况
set
set和enum一样,是一个字符串对象,其值从预定义的字符串列表中选择。
语法也相同
set和enum的区别
enum只能从指定的所有值中选一个值
set可以从指定的所有值中选多个值
find_in_set函数
是 MySQL 中的一个字符串函数,用于在逗号分隔的字符串中查找某个值的位置。它通常与set数据类型或存储了逗号分隔值的字符串字段一起使用,但也可以用于任何包含逗号分隔值的字符串。
语法:
find_in_set(str, strlist)
str:要查找的字符串值。
strlist:逗号分隔的字符串列表。
如果str在strlist中,则返回下标;如果不在,则返回0
完