1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束

MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束

时间:2024-06-04 17:22:09

相关推荐

MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束

/* MySQL进阶13常见六大约束: 1.not null 非空2.default :默认值,用于保证该字段的默认值 ; 比如年龄:1900-10-103.primary key : 主键,用于保证该字段的值具有唯一性,并且非空4.unique : 唯一约束,保证该字段的值可以为空,具有唯一性5.check : 检查约束[mysql不支持,不报错,没有实际效果]6.foreign key : 外键约束; 用于限制两个表的关系, 用于保证该字段的值必须来自于主表的关联列的值;在从表中添加外键约束,用于引用主表中的某列的值;比如: 学生表的专业编号,员工表的部门编号,员工表的工种编号;添加约束的时机:1.创建表时2.修改表时----------约束的添加分类:列级约束 : 六大约束语法上都支持,但外键没有效果!! 表级约束 : 除了非空,默认, 其他的都支持!语法 : constraint 约束名 约束类型(字段名)主键和唯一:都可以组合!#二. 修改表的时候添加列级约束alter table 表名 modify column 字段名 字段类型 新类型;添加表级约束alter table 表名 add [constraint 约束名] 约束类型(字段名) [外键的引用];#********添加表名# alter table 表名 add column 字段名 字段类型;*/CREATE TABLE 表名(字段名 字段类型 列级约束,字段名 字段类型,表级约束);#一: 创建表时添加约束CREATE DATABASE students; #1.添加列级约束USE students;CREATE TABLE stuinfo(id INT PRIMARY KEY, #主键stuName VARCHAR(20) NOT NULL, #非空gender CHAR(1) CHECK(gender IN ('男','女')), #检查约束seat INT UNIQUE, #唯一age INT DEFAULT 18 , #默认约束majorId INT REFERENCES major(id) #设置为外键);DESC stuinfo;CREATE TABLE major(id INT PRIMARY KEY,majorName VARCHAR(20));#2 添加表级约束DROP TABLE IF EXISTS stuinfo;CREATE TABLE stuinfo(id INT , #主键stuName VARCHAR(20), #非空gender CHAR(1), #检查约束seat INT, #唯一age INT , #默认约束majorid INT,CONSTRAINT pk PRIMARY KEY(id), #设置主键CONSTRAINT uq UNIQUE(seat), #唯一键CONSTRAINT ck CHECK(gender ='男' OR gender ='女'), #检查CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id) #外键);SHOW INDEX FROM stuinfo;#组合写法,更常用! 主键和唯一:都可以组合!DROP TABLE IF EXISTS stuinfo;CREATE TABLE stuinfo(id INT , #主键stuName VARCHAR(20), #非空gender CHAR(1), #检查约束seat INT, #唯一age INT , #默认约束majorid INT,PRIMARY KEY(id,stuName), #设置主键UNIQUE(seat), #唯一键CHECK(gender ='男' OR gender ='女'), #检查CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id) #外键);#二. 修改表的时候添加约束DROP TABLE IF EXISTS stuinfo;CREATE TABLE stuinfo(id INT , stuName VARCHAR(20),gender CHAR(1), seat INT, age INT , majorid INT);DESC stuinfo;#1.添加非空约束ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL;#2 添加默认约束ALTER TABLE stuinfo MODIFY COLUMN age INT DEFAULT 18;#3添加主键: 1)列级约束ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;#2) 表级约束ALTER TABLE stuinfo ADD PRIMARY KEY(id);#4.添加唯一#1.列级约束ALTER TABLE stuinfo MODIFY COLUMN seat INT UNIQUE;#2) 表级约束ALTER TABLE stuinfo ADD UNIQUE(id);#5.添加外键ALTER TABLE stuinfo ADD FOREIGN KEY(majorid) REFERENCES major(id);ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id);#三 .删除约束#1.删除非空约束ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NULL;#2 删除默认约束ALTER TABLE stuinfo MODIFY COLUMN age INT;#3删除主键ALTER TABLE stuinfo DROP PRIMARY KEY;#4删除唯一ALTER TABLE stuinfo DROP INDEX seat;#5.删除外键ALTER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major;DESC stuinfo;

MySQL进阶13--常见六大约束: 非空/默认/主键/唯一约束/检查约束/外键约束--表级约束 / 列级约束...

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