作用:限制如何给字段赋值
约束条件:
Null 允许为空,默认设置,not null不允许为空;注:" "或"null"不为空
key 索引类型
Default 设置默认值,缺省为null
Extra 额外设置
索引:
索引优缺点:
优点:通过创建唯一索引,保证数据唯一性;加快数据的检索速度
缺点:当对数据进行增,删,改,索引要动态维护,减慢写的速度;索引要占用物理空间
查看是否有索引字段:DESC 表名; #查看"key"列
查看索引详细:SHOW INDEX FROM 表名; #column_name:字段 key_name:索引名,索引名默认和字段同名
索引的类型:
INDEX:普通索引
建表时设置:
CREATE TABLE 表名(
……
INDEX(字段名1),INDEX(字段名2),INDEX(字段名n) #设置完字段后设置
);
已有表设置:CREATE INDEX 索引名 on 表名(字段名);
删除索引:DROP INDEX 索引名 on 表名;
UNIQUE:唯一索引
建表时设置:
CREATE TABLE 表名(
……
UNIQUE(字段名1),UNIQUE(字段名2),UNIQUE(字段名n)
);
已有表设置: CREATE UNIQUE INDEX 索引名 ON 表名
删除索引:DROP INDEX 索引名 ON 表名;
注:若字段为not null并且是unique标志会变为PRI
FULLTEXT
PRIMARY KEY:主键
建表时设置:
CREATE TAVLE 表名(
……
PRIMARY KEY(字段名) #也可以直接写在字段后,多个字段表示复合主键
);
已有表设置:
ALTER TABLE 表名
ADD
PRIMARY KEY(字段名); #受数据影响,多个字段名表示复合主键
删除主键:
ALTER TABLE 表名
DROP
PRIMARY KEY; #复合主键必须同时删除
注:复合主键的多个数据不能完全一样;主键常和AUTO_INCREMENT连用,实现自增,从最大值开始加1
FOREIGN KEY:外键
使用外键的条件
- 表的存储引擎必须是innodb
- 字段类型要一致
- 被参照字段必须要是索引类型的一种(primarykey)
外键的作用:给表中字段赋值时,字段的值只能在另外一张表的字段值里选择
注:用desc查看时显示MUI标志,要用"show create table 表名;"查看建表过程
建表时设置
无符号: UNSIGNED