05 数据类型-列类型-创建表的列类型
数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来
使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间
数值类型
常用类型:
tinyint:小整数值
int:大整数值
double:双精度
浮点型float单精度:只能保证大概7为左右的精度:如果数值在7位以内,基本可以保证数值的精度,但是如果超过了7位,那么是不准确的
浮点型double双精度:可以保证15为左右的精度
日期类型
常用类型:
date:日期类型,格式是:YYYY-MM-DD
datettime:时间类型,格式是:YYYY-MM-DD HH:ii:SS
timestamp:时间戳类型
-- 设置默认时间
create table news(
pub_time TIMESTAMP default CURRENT_TIMESTAMP COMMENT '发布时间'
);
字符串类型
常用类型:
char:定长字符串,指定长度后,系统一定会分配指定长度的空间用于存储数据
varchar:变长字符串,指定长度后,系统会根据实际存储的数据来计算长度,分配合适的长度
text:普通的长文本数据--使用较多,如果数据超过255个字符,一定选择text类型存储数据
enum:枚举类型,enum(数值1,数值2,数值3...)
set集合:可以将多个数据选项同时保存的数据集合,类似 enum,但是enum就像单选,set集合就像多选
set集合的本质是将指定的项按照对应的二进制位来进行控制,1表示该选项被选中 0表示该选项没有选中
存储语法:set('值1','值2','值3'...)
-- set集合
create table my_set(
hobby set('足球','篮球','羽毛球','跑步','跳高','读书','看报','睡觉','打游戏','逛街','吃饭') COMMENT '兴趣爱好'
sex enum('男','女','保密') default '保密'
);
// 插入数据,值只能是 set集合中的值,多个值使用 , 隔开即可
INSERT into my_set VALUES('篮球,足球');
tinytext:短文本字符串
blob:存储二进制文件(图片、文件等),但是一般也不会使用blob来存储文件本身,一般是使用一个链接来指向对应的文件本身