JavaWeb之数据库(2)

一、约束

(1)概念:

  • 是作用于表中列上的规则,用于限制加入表的数据
  • 约束的存在保证了数据库中数据的正确性、有效性和完整性

(2)约束的分类
在这里插入图片描述
注:MySQL不支持检查约束

  • 外键约束:
    在这里插入图片描述

二、数据库设计

(1)数据库设计简介
  1. 软件研发步骤

在这里插入图片描述
2. 数据库设计概念

  • 根据业务系统的具体需求,结合所用的DBMS,为这个业务系统构造出最优的数据存储模型
  • 建立数据库中的表结构以及表之间的关联关系的过程
  1. 数据库设计步骤
  • 需求分析(数据是什么,哪些属性,数据与属性的特点)
  • 逻辑分析(ER图对数据库进行逻辑建模)
  • 物理设计(根据数据库自身的特点把逻辑设计转换为物理设计)
  • 维护设计(1.对新需求建表 2.表优化)
(2)表关系
  1. 一对一
  • 用户与用户详情
  • 用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另外一张表
  • 实现方式:在任意一方加入外键,关联另一方的主键,并设置外键为唯一
  1. 一对多(多对一)
  • 部门和员工
  • 在多的一方建立外键关联一的一方主键
  1. 多对多
  • 商品和订单
  • 借助于第三张中间表,中间表至少包含两个外键,分别关联两方主键

三、多表查询

  1. 简介
    在这里插入图片描述
-- 多表查询
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;
  1. 内连接
    在这里插入图片描述
-- 隐式内连接
select * from emp, dept where emp.dep_id = dept.did;

-- 查询emp的name,gender,dept表的dname
select emp.name,emp.gender, dept.dname from emp,dept where emp.dep_id = dept.did;

-- 给表起别名
select t1.name,t1.gender, t2.dname from emp t1,dept t2 where t1.dep_id = t2.did;

-- 显示内连接
select * from emp inner join dept on emp.dep_id = dept.did;
  1. 外连接
    在这里插入图片描述
-- 左外连接
-- 查询emp表所有数据和对应的部门信息
select * from emp left join dept on emp.dep_id = dept.did;

-- 右外连接
-- 查询dept表所有数据和对应的员工信息
select * from emp right join dept on emp.dep_id = dept.did;
  1. 子查询
  • 查询中嵌套查询,称嵌套查询为子查询
  • 子查询根据查询结果不同,作用不同:单行单列、多行单列、多行多列
    在这里插入图片描述

四、事务

1.简介

  • 一种机制,一个操作序列,包含了一组数据库操作命令
  • 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这组数据库命令要么同时成功,要么同时失败
  • 事务是一个不可分割的工作逻辑单元

2.事务的四大特征

  • 原子性A:事务是不可分割的最小操作单位,要么同时成功,要么同时失败;
  • 一致性C:事务完成时,必须使所有的数据保持一致状态
  • 隔离性I:多个事务之间,操作的可见性
  • 持久性D:事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值