mysql-约束

数据库约束说明

非空约束:保证列中所有数据不能有null值 NOT NULL

唯一约束:保证列中所有数据各不相同 UNIQUE

主键约束:主键是一行数据的唯一标识,要求非空且唯一 PRIMARY KEY

检查约束:保证列中的值满足某一条件 CHECK

默认约束:保存数据时,未指定值则采用默认值 DEFAULT

外键约束:外键用来让两个表的数据之间建立连接,保证数据的一致性和完整性 FOREIGN KEY

示例

员工表(emp)

idenamejoindatesalarybonus
1张三1999-11-1366005000
演示主键约束:非空且唯一
-- 正确示例
insert into emp(id, ename, joindate, salary, bonus) values(1, '张三', '1999-11-13', 6600, 5000);

-- 错误示例
insert into emp(id, ename, joindate, salary, bonus) values(null, '张三', '1999-11-13', 6600, 5000);
insert into emp(id, ename, joindate, salary, bonus) values(1, '张三', '1999-11-13', 6600, 5000);
insert into emp(id, ename, joindate, salary, bonus) values(2, '李四', '1999-11-13', 6600, 5000);
非空约束
-- 错误示例,ename为null
insert into emp(id, ename, joindate, salary, bonus) values(3, null, '1999-11-13', 6600, 5000);
唯一约束
-- 错误示例,ename重复
insert into emp(id, ename, joindate, salary, bonus) values(3, '张三', '1999-11-13', 6600, 5000);
默认约束
-- 正确示例,bonus未指定值,采用默认值0
insert into emp(id, ename, joindate, salary) values(3, '李华', '1999-11-13', 6600);
自增长
-- 正确示例,id自增长
insert into emp(ename, joindate, salary, bonus) values('李四', '1999-11-13', 6600, 5000);

外键约束

部门表(dept)
iddep_nameaddr
1研发部广州
2销售部深圳
员工表(emp)
idnameagedep_id
1张三201
2李四201
3王五201
4赵六202
5李华222
6周七182
-- 示例代码
-- 添加两个部门
insert into dept(dep_name, addr) values ('研发部', '广州'), ('销售部', '深圳');

-- 添加员工,dep_id 表示员工所在的部门
insert into emp (name, age, dep_id) values
('张三', 20, 1),
('李四', 20, 1),
('王五', 20, 1),
('赵六', 20, 2),
('李华', 22, 2),
('周七', 18, 2);
删除外键

如果需要删除外键约束,可以使用以下的语法:

-- 删除外键
alter table 表名 drop foreign key 外键名;

例如,在示例中我们可以执行以下命令删除emp表中dep_id列的外键约束:

alter table emp drop foreign key fk_emp_dept;

请注意,外键约束的删除可能需要数据库管理员或具有相应权限的用户执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值