1.3 数据类型——枚举(enum)
1、从集合中选择一个数据(单选)
1 | mysql> create table t8( |
2、MySQL的枚举类型是通过整数来管理的,第一个值是1,第二个值是2,以此类推。
1 | mysql> select sex+0 from t8; |
1 | mysql> select sex+0 from t8; |
3、既然枚举在数据库内部存储的是整数,那么可以直接插入数字
1 | mysql> insert into t8 values ('rose',3); # 可以直接插入数字 |
枚举的优点:
1、 运行速度快(数字比字符串运算速度快)
2、 限制数据,保证数据完整性
3、 节省空间
1 | 思考:已知枚举占用2个字节,请问最多有多少个枚举值? |
1.4 数据类型——集合(set)
从集合中选择一些数据(多选)
1 | mysql> create table t9( |
每个集合的元素都分配一个固定的数字,分配的方式从左往右按2的0、1、2、…次方
1 | 思考:已知集合占用8个字节,最多可以表示几个选项? |
1.5 数据类型——日期类型
数据类型 | 描述 |
---|---|
datetime | 日期时间,占用8个字节 |
date | 日期 占用3个字节 |
time | 时间 占用3个字节 |
timestamp | 时间戳,占用4个字节 |
year | 年份 占用1个字节 |
1、datetime 格式:年-月-日 小时:分钟:秒
1 | mysql> create table t10( |
2、date 日期格式
1 | mysql> create table t11( |
3、timestamp:时间戳
timestamp类型和 datetime类型在表现上是一样的。他们的区别:
datetime是从1到9999,而timestamp从1970年~2038年,2038年01月19日11:14:07秒以后就超出timestamp范围了。
1 | mysql> create table t12( |
4、year
因为只占用1个字节,最多只能表示255个年份,范围是1901-2155之间的年份
1 | mysql> create table t13( |
5、time 表示时间或时间间隔,范围是-838:59:59~838:59:59
1 | mysql> create table t14( |
多学一招:time支持以天的方式插入
1 | mysql> insert into t14 values ('10 10:10:10'); |