#约束
/*
概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性。
分类:
1.主键约束:primary key
2.非空约束:not null
3.唯一约束:UNIQUE
4.外键约束:foreign key
*/
-- ----------------------------------------
# 非空约束:not null ,值不能为null
#1.创建表时候添加约束
CREATE TABLE STU(
id INT,
Name VARCHAR(20) NOT NULL -- name 为非空
);
#2.创建表之后,添加非空约束
ALTER TABLE STU MODIFY NAME VARCHAR(20) NOT NULL;
#3.删除name的非空约束
ALTER TABLE STU MODIFY NAME VARCHAR(20);
# 删除表 DROP TABLE 表名称
-- ----------------------------------------
#唯一约束:UNIQUE ,值不能重复
#:注意:MYSQL 里面的null值是可以重复的
CREATE TABLE STU(
id INT,
Name VARCHAR(20) UNIQUE -- UNIQUE 唯一约束
);
#:删除唯一约束
ALTER TABLE STU DROP INDEX Name;
-- ----------------------------------------
#主键约束:primary key ,非空且唯一
#:注意:一张表只能有一个字段为主键
#:创建表时,添加主键约束
CREATE TABLE STU(
id INT primary key,
Name VARCHAR(20) -- UNIQUE 唯一约束
);
#:删除主键约束
ALTER TABLE STU DROP primary key
#:创建表后,添加主键约束
ALTER TABLE STU MODIFY id int primary key;
#:主键自动增长 AUTO_INCREMENT,
#:创建表时,添加主键约束,自动增长
CREATE TABLE STU(
id INT primary key AUTO_INCRMENT,
Name VARCHAR(20) UNIQUE -- UNIQUE 唯一约束
);
#:删除自动增长
ALTER TABLE STU MODIFY id INT;
#:添加自动增长
ALTER TABLE STU MODIFY id INT AUTO_INCRMENT;
-- ----------------------------------------
#外键约束:foreign key,让表于表产生关系,从而保证数据的正确性
#1.在创建时,可以添加外键
/*
#1:
语法:
CREATE TABLE 表名(
....
外键列
constr 外键列 foreign key (外键列名称) reference 主表名称(主表列名称)
);
#2:
删除外键
ALTER TABLE (表名) DROP FOREIGN KEY 外键名称;
#3:
创建表之后,添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称)
*/