数据类型
注意:每个字段都必须设置数据类型
整数类型
tinyint - 1字节 - 应用场景:存储状态码
int - 4字节 - 应用场景:没有特殊要求,一般使用int
bigint - 8字节 - 应用场景:存储极大的整数
CREATE TABLE user (username varchar(32) PRIMARY KEY,password varchar(32),name varchar(32),age int(3) unsigned zerofill, )
注意:age int(3)字段上的数据可以存储-2147483648~2147483647范围,如果数据不满3位,使用0填充
前提:字段上必须使用unsigned zerofill修饰
unsigned - 无符号(不能使用负数)
zerofill - 不满3位,使用0填充
浮点类型
float - 单精度浮点型 -- 应用场景:允许失去精度的数据
double - 双精度浮点型 -- 应用场景:允许失去精度的数据
decimal - 字符串的浮点数 -- 应用场景:不允许失去精度的数据(ps:银行的金额)
float(8,2):小数长度为8位,其中2位是小数位
注意:float和double都有可能失去精度
字符串类型
varchar -- 变长字符串(ps:varchar(32),最多存储32个字符,如果存储"用良心做教育",会按照实际数据长度开辟空间)
char -- 定长字符串(ps:char(32),最多存储32个字符,如果存储"用良心做教育",会按照32个长度开辟空间)
注意:varchar和char的取值范围0~255字符
text -- 长文本数据的字符串,意味着可以存储文本文件
blob -- 二进制形式的文本数据的字符串,意味着可以存储二进制文件(图片、音频、视频)
longtext -- 极长的长文本数据的字符串,意味着可以存储文本文件
longblob -- 极长的二进制形式的文本数据的字符串,意味着可以存储二进制文件(图片、音频、视频)
注意:存储纯文本数据和二进制数据的技术叫做CBLob(TEXT类型叫做clob->character,BLOB类型叫做blob->binary system)
经验:项目中不会把文件存入数据库中,因为这样会对数据库造成极大的压力。如果向存储文件可以把文件地址存储在数据库中
日期时间类型
date -- 日期类型(2024-07-03)
time -- 时间类型(14:19:30)
datetime -- 日期时间类型(2024-07-03 14:19:30)
year -- 年份(2024)
timestamp -- 时间戳
CREATE TABLE user (username varchar(32) COLLATE utf8mb4_general_ci,password varchar(32) COLLATE utf8mb4_general_ci,name varchar(32) COLLATE utf8mb4_general_ci,age int(3) unsigned zerofill,birth date ,xxx timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, )
UPDATE CURRENT_TIMESTAMP -- timestamp可以设置修改该数据行就刷新时间戳数据