SQL创建数据表的约束
程序员文章站
2024-03-21 10:43:10
...
1.什么是约束
约束是在表上强制执行的数据校验规则.
约束主要用于保证数据库的完整性。
当表中数据有相互依赖性时,可以保护相关的数据不被删除.
2.约束的概述
列级约束
--列级约束,建表的时候写在列的后面
create table dept(dept_id int primary key,
name varchar(50) not null
);
--插入数据
insert into dept values(1,"人事部"),(2,"研发部"),(3,"市场部"),(4,"培训部");
表级约束
--表级约束:在所有列写完之后给出约束
create table employee(id int,
name varchar(50),
dept_id int,
CONSTRAINT ek PRIMARY KEY(id),
CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(dept_id)
);
--在员工表里面插入数据
insert into employee values(1,"张三",1);
--总结:有主键约束不能不写主键,不能重复
--有外键约束的时候,外键列的值不能写参考的表里面没有的值
--被参考的表是不能随意修改更新删除的,参考的表可以删除更新修改
--如果要删除修改被参考的表,需要先把外键删除掉
--在实际开发中,一般不会手动设置外键
--写在列级约束上的外键可以成功但是没有有什么用
添加约束
--添加列级约束
alter table 表名 modify column 字段名 字段类型 新约束;
--添加表级约束
alter table 表名 add [CONSTRAINT 约束名] 约束类型(字段名)
--添加外键约束
alter table 表名 add CONSTRAINT 约束名 FOREIGN KEY(当前表的外键字段) REFERENCES 参考表(参考表的主键 )
删除约束
--1.删除非空约束
alter table 表名 modify column 列名 数据类型 约束;
--2.删除主键
alter table 表名 drop primary key;