毕设-2-约束

文章介绍了数据库中的约束概念,如主键、外键和默认约束,强调了它们在确保数据完整性和一致性中的作用。此外,讨论了数据库设计的步骤,包括一对一、一对多和多对多表关系的实现。还提到了多表查询的方法,如连接查询,以及事务处理的重要性,包括其四大特性:原子性、一致性、隔离性和持久性。
摘要由CSDN通过智能技术生成

约束

概念

约束是作用于列上的规则,限制加入表的数据
在这里插入图片描述
原版:

create table emp (
id int,
ename varchar(50),
joindate date,
salary double(7,2),
bonus double(7,2)
);

约束实例:
在这里插入图片描述
默认约束不给值时 才能生效 是0
id int primary key auto_increment,—员工id,主键且自增长(当列是数字类型 唯一约束)
若是后期修改,表一定要重新删除后再创建
在这里插入图片描述
外键约束
外键是用来让两个表的数据之间建立链接,保证数据的一致性和完整性。
在这里插入图片描述

CONSTRAINT fk_emp_dept FOREIGN key(dep_id) REFERENCES dept(id)
删除完记录后 才能删除主表中元素 (由于外键的约束)
删除外键:
alter table 表名 drop foreign key 外键名称;

建表之后才进行添加外键 :
alter table 表名 add constraint 外键名称 foreign key (从表列名)references 主表名(主表列名);

数据库设计

简介

软件开发步骤:需求分析-设计-编码-测试-安装
设计:软件结构设计(功能 模块)
数据库设计(表 字段 表关系)
接口设计(功能 具体)
过程设计(整个过程)

表关系
一对一(用于表的拆分 常用的元素和不常用的元素)
一对多:
在多的一方建立外键,指向一的一方的主键

多对多:

建立第三张中间表,中间表至少包含两个外键,分别关联两方主键。
在这里插入图片描述
在这里插入图片描述
-------------创建两个表及中间表--------------
增加外键:
alter table tb_order_goods add CONSTRAINT fk_order_id foreign key(order_id) REFERENCES tb_order(id);
alter table tb_order_goods add CONSTRAINT fk_goods_id foreign key(goods_id) REFERENCES tb_goods(id);
在这里插入图片描述

一对一:
一对一关系用于表的拆分,将一个实体中经常使用的字段放在一张表,不经常使用的字段放在另一张表。

实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为唯一。

多表查询

select * from emp;
– 多表查询
select * from emp , dept;
– 笛卡尔积 : 有 A ,B两个集合 取 A,B所有的组合情况

连接查询– 查询emp 和 dept 的数据 ,emp.dep_id = dept.did
select * from emp , dept where emp.dep_id = dept.did;

事务

是一种机制,一个操作序列,包含了一组数据库操作命令。
这一组数据库命令要么同时成功,要么同时失败。
事务是一个不可分割的工作逻辑单元。
出异常 进行回滚事务

– 开启事务
BEGIN;
– 转账操作
– 1. 查询李四账户金额是否大于500

– 2. 李四账户 -500
UPDATE account set money = money - 500 where name = ‘李四’;

– 出现异常了…
– 3. 张三账户 +500
UPDATE account set money = money + 500 where name = ‘张三’;

– 提交事务
COMMIT;

– 回滚事务
ROLLBACK;

事物的四大特征:原子性 一致性 隔离性 持久性

– 查看事务的默认提交方式
SELECT @@autocommit;
– 1 自动提交 0 手动提交
– 修改事务提交方式
set @@autocommit = 0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值