失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 主键约束 主键自增约束 唯一约束 非空约束 外键约束

主键约束 主键自增约束 唯一约束 非空约束 外键约束

时间:2019-09-20 18:22:50

相关推荐

主键约束 主键自增约束 唯一约束 非空约束 外键约束

1. 约束的概念和分类

约束:对表中的数据进行限定,保证数据的正确性、有效性、完整性!

约束分类:

2. 主键约束

-- 创建学生表将学号设置为主键CREATE TABLE student(id INT PRIMARY KEY,NAME VARCHAR(30),age INT);-- 添加数据INSERT INTO student VALUES(1,'杨过',26);INSERT INTO student VALUES(2,'小龙女',30);-- 删除主键ALTER TABLE student DROP PRIMARY KEY;INSERT INTO student VALUES(1,'尹志平',30);-- 建表后添加主键DELETE FROM student WHERE NAME = '尹志平';ALTER TABLE student MODIFY id INT PRIMARY KEY;

3. 主键自增约束

-- 删除原先学生表DROP TABLE student;-- 新建学生表,学号设置为主键自增CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20),age INT);-- 添加数据INSERT INTO student VALUES (NULL,'杨康',35),(NULL,'穆念慈',26);-- 删除自增约束,主键还在ALTER TABLE student MODIFY id INT;DESC studentINSERT INTO student VALUES (3,'杨过',15);-- 建表后单独添加自增约束ALTER TABLE student MODIFY id INT AUTO_INCREMENT;

4. 唯一约束

-- 删除原先学生表DROP TABLE student;-- 新建学生表,学号设置为主键自增,姓名设置唯一约束CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20) UNIQUE,age INT);DESC student;-- 添加数据INSERT INTO student VALUES (NULL,'张三',23);INSERT INTO student VALUES (NULL,'李四',24);-- 删除唯一约束ALTER TABLE student DROP INDEX NAME;-- 建表后单独添加唯一约束ALTER TABLE student MODIFY NAME VARCHAR(20) UNIQUE;

5. 非空约束

-- 删除原先学生表DROP TABLE student;-- 新建学生表,学号设置为主键自增,姓名设置唯一约束,年龄设置为非空约束CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20) UNIQUE,age INT NOT NULL);DESC student;-- 添加数据INSERT INTO student VALUES (NULL,'张三',23);-- 删除非空约束ALTER TABLE student MODIFY age INT;-- 建表后单独添加非空约束ALTER TABLE student MODIFY age INT NOT NULL;

6. 外键约束

让表和表之间产生关系,从而保证数据的准确性!

USE liulu-- 创建user用户表CREATE TABLE USER(id INT PRIMARY KEY AUTO_INCREMENT, -- idNAME VARCHAR(20) NOT NULL -- 姓名);-- 添加用户数据INSERT INTO USER VALUES (NULL,'张三'),(NULL,'李四');-- 创建orderlist订单表CREATE TABLE orderlist(id INT PRIMARY KEY AUTO_INCREMENT, -- idnumber VARCHAR(20) NOT NULL,-- 订单编号uid INT,-- 外键列CONSTRAINT ou_fk1 FOREIGN KEY (uid) REFERENCES USER(id));-- 添加订单数据INSERT INTO orderlist VALUES (NULL,'hm001',1),(NULL,'hm002',1),(NULL,'hm003',2),(NULL,'hm004',2);-- 添加一个订单,但是没有真实用户。添加失败INSERT INTO orderlist VALUES (NULL,'hm005',3);-- 删除李四用户。删除失败DELETE FROM USER WHERE NAME='李四';-- 删除外键约束ALTER TABLE orderlist DROP FOREIGN KEY ou_fk1;-- 建表后单独添加外键约束ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN KEY (uid) REFERENCES USER(id);

7. 级联更新和级联删除

-- 外键联级更新和删除-- 删除外键约束ALTER TABLE orderlist DROP FOREIGN KEY ou_fk1;-- 添加外键约束,同时添加级联更新和级联删除ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN KEY (uid) REFERENCES USER(id)ON UPDATE CASCADE ON DELETE CASCADE;-- 将李四这个用户的id修改为3,订单表中的uid也自动修改UPDATE USER SET id=3 WHERE id=2;-- 将李四这个用户删除,订单表中的该用户所属的订单也自动删除DELETE FROM USER WHERE id=3;

如有错误欢迎留言评论,7月9日 羽露风

如果觉得《主键约束 主键自增约束 唯一约束 非空约束 外键约束》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。