1.数据库索引
索引:索引是对数据库表中一列或多列的值进行排序的一种结构
索引分类:主键索引(PRIMAY KEY)、唯一索引(UNIQUE)、常规索引(INDEX)、全文索引(FULLTEXT)
常规索引 CREATE INDEX 索引名 ON 表名 (字段名)
唯一索引 CREATE UNIQUE INDEX 索引名 ON 表名 (字段名)
2.数据库约束
约束:数据库约束时防止非法记录的规则
约束分类:
主键约束(Primay Key Coustraint):唯一性,非空性,一个表只能有主键,创建主键时会自动创建主键索引
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (字段名)
唯一约束(Unique Counstraint):唯一性,可以空,但只能有一个空,一张表可以有多个唯一约束,创建唯一约束时会自动创建唯一索引
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段)
检查约束(Check Counstraint):对该列数据的范围、格式的限制(如:年龄、性别等)
ALTER TABLE 表名 CHECK (字段 约束)
默认约束(Default Counstraint):该数据的默认值
ALTER TABLE 表名 ALTER 字段名 SET DEFAULT '默认值'
外键约束(Foreign Key Counstraint):需要建立两表间的关系并引用主表的列
ALTER TABLE 表名1 ADD CONSTRAINT 外键名 FOREING KEY (表1字段) REFENCES 表名2(表2字段)
3.disable与enable约束
控制约束的约束,控制表的约束时禁止还是激活状态
disable:禁止状态,相当于该列没有约束,使用disable默认为Novalidate
enable:激活状态,默认新创建的约束状态是激活状态,使用enable默认为Validate
|
Validate |
Novalidate |
||
已有记录 |
新增/删除记录 |
已有记录 |
新增/删除记录 |
|
Enable |
Yes(表示需要受到约束条件限制) |
Yes |
No |
Yes |
Disable |
Yes |
No |
No |
No |