数据类型
一、整数类型
标准SQL支持INTEGER和SMALLINT两种整数类型,另外还扩展支持TINYINT、MEDIUMINT、BIGINT。
二、浮点数类型和定点数类型
浮点数类型包括单精度(FLOAT)和双精度(DOUBLE),定点数类型(DECIMAL)。
三、CAHR类型和VARCHAR类型
四、TEXT类型和BLOB类型
TEXT和BLOB类型是对应的,不过存储方式不同,TEXT是以文本方式存储的,而BLOB是以二进制方式存储的。如果存储英文的话,TEXT区分大小写,而BLOB不区分大小写。TEXT 可以指定字符集,BLOB 不用指定字符集。
五、BINARY类型和VARBINARY类型
BINARY和 VARBINARY数据类型类似于 CHAR和 VARCHAR类型。不同之处在于BINARY与VARBINARY以字节为存储单位,而CHAR与VAR CHAR 以字符为存储单位。例如,BINARY(5)表示存储 5字节的二进制数据,CHAR(5)表示存储5个字符的数据。
BINARY(n): 固定n个字节二进制数据。n的取值范范围为1-255,默认为1。若输出的字节长度小于n,则不足部分以0填充。BINARY(n)数据存储的字字节长度为n+4。
VARBINARY(n):n个字节变长二进制数据。1 n 的取值范围为1-65535,默认为 1。 VARBINARY(n)数据存储的字节长度为实际长度+4。
六、日期和时间类型
日期和时间类型是为了方便在数据库中存储日期和时间而设计的。MySQL有多种表示日期和时间的数据类型。其中,YEAR类型表示年份,TIME 类型表示时间,DATE类型表示日期,DATETIME和TIMESTAMP 表示日期和时间。
七、ENUM类型和SET类型
ENUM类型和 SET类型是比较特殊的字符串数据类型,它们的取值范围是一个预先定义好的列表。被枚举的值必须用单引号标注,不能为表达式或者一个变量估值。如果想用数值作为枚举值,也必须用单引号标注。ENUM(枚举)类型最多可以定义 65535 种不同的字符串,从中做出选择时只能并且必须选择其中一种;占用存储空间是1个或2个字节,由枚举值的数目决定。例如,要表示性别字段,可用ENUM数据类型,ENUM('男','女')只有两种选择,要么是“男”要么是“女”,而且只需占用一个字节。
SET(集合)类型,其值同样来自一个用逗号分隔的列表,最多可以有64个成员,可以选择其中的0个或不限定的多个,占用存储空间是1~8字节,由集合可能的成员数目决定。例如,某个表示业余爱好的字段,要求提供多选项供选择,这时该字段可以使用SET 数据类型,如 SET('篮球,'足球',音乐',电影,'看书,画画','摄影),表示可以选择“篮球”“足球”“音乐”“电影”“看书”“画画”“摄影”中
如何选择数据类型
在MySQL中创建表时,需要考虑为字段选择哪种数据类型是最合适的。选择合适的数据类型会提高数据库的使用效率。
SMALLINT: 存储相对比较小的整数,如年龄、工龄和学分等。
INT:存储中等大小整数,如距离。
BIGINT:存储超大整数,如科学数据。
FLOAT: 存储单精度的小的数据,如成绩、温度和测量值。
DOUBLE: 存储双精度的小数据,如科学数据。
DECIMAL: 以特别高的精度存储小数据,如货币数额、单价和科学数据。
CHAR:存储通常包含预定义字符串的变量,如国家名称、邮编和身份证号。
VARCHAR: 存储不同长度的字符串值,如名字、商品名称和密码。
TEXT:存储大型文本数据,如新闻事件、产品描述和备注。
BLOB: 存储二进制数据,如图片、声音、附件和二进制文档。
YEAR: 存储年份,如毕业年、工作年和出生年。
DATE:存储日期,如生日和进货日期。
TIME:存储时间或时间间隔,如开始/结束时间、两时间之间的间隔。
DATETIME:存储包含日期和时间的数据,如事件提醒。
TIMESTAMP:存储即时时间,如当前时间、事件提醒器。
ENUM:存储字符属性,只能从中选择之一,如性别、布尔值。
SET:存储字符属性,可从中选择多个字符的联合,如多项选择业余爱好和兴趣。
标签:存储,字节,TEXT,ENUM,数据类型,选择,MySQL,类型 From: https://blog.csdn.net/qq_42742156/article/details/140413733