Mysql中的列类型:
数字类型:
1个字节=8比特,但数字里有一个比特用于符号占位
M表示总有效位数,D表示小数点后有效位数
字符串类型:
\0表示一个字符串结束
固定长度字符串,长度最大为225个字符
长度可变的字符串,长度最大为65535个字符
长度可变的字符串,长度最大到4G个字符
定长字符串可能会浪费空间,但效率较高
变长字符串不会浪费空间,但效率稍慢
面试题:CHAR(8)和VARCHAR(8)的区别
CHAR(8)输入“abc”实际存储为
“abc ”即“abc\0\0\0\0\0”
VARCHAR(8)输入“abc”实际储存为
“abc ”即“abc\0”
时间类型:
支持的范围是1000-01-01 ~ 9999-12-31
支持的范围是00:00:00 ~ 23:59:59
支持的范围是1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
列上的约束:
Constraint:约束,列上的值往往是有限制的,如:
性别:只能取男或女
政治面貌:只能取党员、团员、群众
高考成绩:FLOADT(4,1) 取值有规则
电话、手机号码:有格式要求
用户名:必须唯一
登录密码:密码不能为空字符串且长度不能少于N位
员工所在部门:可取值必须在部门表中存在过
主键约束: 列名 类型 PRIMARY KEY
声明为“主键”的列上不能出现NULL值,且不能重复,如学生编号、商品编号。
表中所有的记录行会自动按照主键列上的值进行排序。
一个表至多只能有一个主键列。
唯一约束: 列名 类型 UNIQUE
声明为“唯一”的列上不能出现重复值,但可以出现多个NULL值。
非空约束: 列名 类型 NOT NULL
声明为“非空”约束的列上不能出现NULL,但可以重复
检查约束对于Mysql不支持
默认值约束 列名 类型 Default 值
声明为“默认值”约束的列上没有值的将会默认采用默认设置的值