MySQL:数据类型

发布于:2025-07-11 ⋅ 阅读:(47) ⋅ 点赞:(0)

目录

数值类型

tinyint类型

bit类型

小数类型 

float

double

decimal

字符串类型 

char

varchar

日期和时间类型

date

datetime

timestamp

enum

set

find_in_set函数 


数据类型:数值类型、字符串类型、日期和时间类型、枚举和集合类型

数值类型

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 



网站公告

今日签到

点亮在社区的每一天
去签到