约束
**概念:**对表中的数据进行限定,保证数据的正确性、有效性、完整性。
分类:
主键约束:primary key
主键非空且唯一
一张表只能有一个字段为主键
主键就是表中一条记录的唯一标识
在创建表时添加添加主键约束
CREATE TABLE person( ID INT PRIMARY KEY, NAME VARCHAR(10) NOT NULL );
主键的删除
ALTER TABLE person DROP PRIMARY KEY;
创建表后添加主键
ALTER TABLE person MODIFY ID INT PRIMARY KEY; -- 方法1 ALTER TABLE person ADD PRIMARY KEY(ID);-- 方法2
**自动增长:**一般配合主键,如ID等自动增长,使用关键字auto_increment。每次插入记录,该字段如果赋值为NULL,那么就可以自动增长,但是也可以指定指定的值。
在创建表的时候使用自动增长
CREATE TABLE person( ID INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10) NOT NULL );
创建表之后删除自动增长
ALTER TABLE person MODIFY ID INT;
创建表后添加自动增长
ALTER TABLE person MODIFY ID INT AUTO_INCREMENT;
非空约束:not null,表示值不能为空
在创建表的时候添加约束,表示这个字段为非空
CREATE TABLE person( ID INT, NAME VARCHAR(10) NOT NULL );
在建表后添加删除非空约束,其实就是修改列,modify或者change
ALTER TABLE person MODIFY NAME VARCHAR(10); ALTER TABLE person MODIFY NAME VARCHAR(15) NOT NULL;
唯一约束:unique,表示值是唯一的,比如ID等
在创建表时添加唯一约束
CREATE TABLE person( ID INT UNIQUE, NAME VARCHAR(10) NOT NULL );
**注意:**在MySQL中,有唯一约束的列是可以有多个NULL值的。
创建表后添加删除唯一约束
ALTER TABLE person MODIFY NAME VARCHAR(10) UNIQUE; -- 创建表后加入唯一约束 ALTER TABLE person DROP INDEX ID; -- 删除唯一约束
外键约束:foreign key,让表和表之间产生关系,保证数据的正确性
在创建表时可以添加约束,语法:
create table 表名( ... 外键列, constraint 外键名 foreign key (外键字段)references 主表名称(主表列名称) )
删除外键
ALTER TABLE 表名称 DROP FOREIGN KEY 外键名称;
添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段)REFERENCES 主表名(主表列名称)
级联操作
添加级联操作
语法:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FORRIGN KEY (外键字段名) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE;
级联更新:ON UPDATE CASCADE;
级联删除:ON DELETE CASCADE;