1. 列类型
1.字符串型
1. char:定长字符(指定长度之后,系统一定会分配指定的空间用于存储数据)
基本语法:char(L)
L:代表字符数(中文和英文字母一样),L长度为 0~255
2. varchar:变长字符(指定长度之后,系统会根据实际存储的数据来计算长度,分配合适的长度(数据没有超出长度))
基本语法:varchar(L)
L的理论值为 0~65535
因为varchar要记录数据长度(系统根据数据长度自动分配空间),所以每个varchar数据产生后,系统都会在数据后面产生1~2个字节的额外开销:是用来保存数据所占用的空间长度,如果数据本身小于127个字符:额外开销1个字节;如果大于127个,就开销2个字节
char和varchar的区别:
1.char一定会使用指定的空间,varchar是根据数据来定空间
2.char的数据查询效率比varchar高:varchar需要通过后面的记录数计算
3.如果数据定长,使用char类型,如果不确定,使用varchar
3. text:存储普通的字符文本
text分为:tinytext,text,mediumtext,longtext
注:
1. 在选择对应的存储的时候不用刻意选择text类型,系统会自动根据存储的长度来选择合适的文本类型
2.在选择字符存储的时候,如果数据超过255个字符,那么一定选择text存储
blob:存储二进制文本(图片,文件),一般不会用blob存储文件本身,通常使用链接指向对应的文件本身(节省空间)
4. enum
枚举类型:在数据插入之前,先设定几个项,这几个项就是可能最终出现的数据结果
基本语法:enum(数据值1,数据值2......)
系统提供了1~2个字节来存储枚举:通过计算enum中列举的具体值来选择实际的存储空间:如果数据值列表在255个以内,那么一个字节就够,如果超过255小于65535,系统采用2个字节保存
enum可以规范数据,能保证插入数据在规定范围内
实际枚举存储的是数值,在进行数据插入时可以插入对应的数字
枚举的意义:
- 规范数据本身
- 节省存储空间
5. set
集合类型:是一种将多个数据选项可以同时保存的数据类型,本质是将制定的项按照对应的二进制位来进行控制:1表示该选项被选中,0表示未被选中
基本语法:set('值1','值2','值3'......)
系统为set提供多个字节进行保存,但是系统会自动计算来选择具体的存储单元
注:
- set和enum相同,存储到数据字段中的依然是数字而不是真实的字符串
- 系统将对应的数据选项(设计)按照顺序进行编排,从第一个开始占位,每一个都对应一个二进制
- 数据在存储的时候如果被选中,对应的值为1,否则为0
- 系统在进行存储的时候会自动将对应的二进制颠倒,转化为对应的十进制存储
以数值方式查看字段:
select 字段名 + 0 from 表名
set意义:
- 规范数据
- 节省存储空间
enum和set区别:
enum:单选框
set:多选框