有无符号声明
unsigned 无符号(给数值类型使用,表示为正数,不写可以表示正负数都可以)
字符串长度声明
字段类型后面加括号限制宽度 :在字符类型后面加限制表示字符串的长度
char(5).
varchar(7)
数值型长度声明
int(4) 没有意义,默认无符号的 int 为 int (11),有符号的 int (10)
int(4) unsigned zerofill 只有当给 int 类型设置有前导零时,设置 int 的宽度才有意义
是否为空声明
not null 不能为空,在操作数据库时如果输入该字段的数据为 NULL ,就会报错
默认值声明
default 设置默认值
主键声明
primary key 主键不能为空,且唯一 [ 一般和自动递增一起配合使用 ]
表中每一行都应该有可以唯一标识自己的一列,用于记录两条记录不能重复,任意两行都不具有相同的主键值
应该总是定义主键 虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理
要求:
- 记录一旦插入到表中,主键最好不要再修改
- 不允许 NULL
- 不在主键列中使用可能会更改的值
- 自增整数类型:数据库会在插入数据时自动为每一条记录分配一个自增整数,这样我们就完全不用担心主键 重复,也不用自己预先生成主键
- 可以使用多个列作为联合主键,但联合主键并不常用。使用多列作为主键时,所有列值的组合必须是唯一的
递增声明
auto_increment 定义列为自增属性,一般用于主键,数值会自动加 1
索引是否唯一声明
unique 唯一索引(数据不能重复:用户名)可以增加查询速度,但是会降低插入和更新速度
MySQL 的运算符
-
算术运算符: +、 -、 *、 /、 %
-
比较运算符: =、 >、 <、 >=、 <=、!=
-
数据库特有的比较: in、not in、is null、is not null、like、between、and
-
逻辑运算符: and、or、not
-
like: 支持特殊符号%和_
其中%表示任意数量的任意字符,_表示任意一位字符