MySQL#3(约束,数据库设计,多表查询,事务)

目录

一.约束

二.数据库设计

1.数据库设计的概念

2.数据库设计的步骤

3.表关系

三.多表查询

        1.内连接和外连接

        2.子查询

四.事务

1.简介

2.事务语法

3.事务四大特征


一.约束

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

2.约束的分类

约束名称                                        描述                                                                关键字
非空约束                保证列中所有数据不能有null值                                           NOT NULL
唯一约束                   保证列中所有数据各不相同                                                UNIQUE
主键约束        主键是一行数据的唯一标识,要求非空且唯一                        PRIMARY KEY
检查约束                   保证列中的值满足某一条件                                                CHECK
默认约束           保存数据时,未指定值则采用默认值                                        DEFAULT
外键约束  外键用来让两个表的数据之建立链接,保证数据的一致性和完整性  FOREIGN KEY
注意: MySQL不支持检查约束

外键约束演示: 

二.数据库设计

1.数据库设计的概念

数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型
建立数据库中的表结构以及表与表之间的关联关系的过程

2.数据库设计的步骤

(1)需求分析(数据是什么?数据具有哪些属性?数据与属性的特点是什么)

(2)逻辑分析(通过ER图对数据库进行逻辑建模,不需要考虑我们所选用的数据库管理系统)

(3)物理设计 (根据数据库自身的特点把逻辑设计转换为物理设计)
(4)维护设计 (1.对新的需求进行建表;2.表优化)

3.表关系

一对一:

如: 人 和 身份证

实现方式: 在任意一方建立外键,关联对方主键,并设置外键唯一

一对多(多对一):

如: 部门 和 员工

一个部门对应多个员工, 一个员工对应一个部门

实现方式: 在多的一方建立外键关联一的一方主键

多对多:

如: 商品 和 买家

一个商品对应多个买家, 一个买家对应多个商品

实现方式: 建立第三张中间表中间表至少包含2个外键,分别关联双方主键

三.多表查询

笛卡尔积:取A,B集合所有组合情况
多表查询:从多张表查询数据
1.连接查询
(1)内连接: 相当于查询AB交集数据
(2)外连接:左外连接:相当于查询A表所有数据和交集部分数据右外连接:相当于查询B表所有                    数据和交集部分数据
2.子查询

        1.内连接和外连接

内连接

内连接查询语法:

隐式内连接

SELECT 字段列表 FROM 表1, 表2 ... WHERE 条件;

显式内连接

SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;

外连接
外连接查询语法
左外连接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件:
右外连接
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;
左外连接:相当于查询A表所有数据和交集部分数据
右外连接:相当于查询B表所有数据和交集部分数据

        2.子查询

子查询

子查询概念: 查询中嵌套查询,称嵌套查询为子查询

1.子查询根据查询结果不同,作用不同

单行单列:  作为条件值,使用 =! = >< 等进行条件判断
SELECT 字段列表 FROM 表 WHERE字段名 = (子查询);
多行单列:  作为条件值,使用 in 等关键字进行条件判断

SELECT 字段列表 FROM 表 WHERE 字段名 in (子查询);
多行多列:  作为虚拟表
SELECT 字段列表 FROM (子查询) WHERE 条件;

四.事务

1.简介

(1)数据库的事务 (Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令

(2)事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败
(3)事务是一个不可分割的工作逻辑单元

2.事务语法

开启事务(开启事务后数据的变化是临时的变化,只在当前查询中可以看到)

START TRANSACTION;

或者 BEGIN;

提交事务(提交事务后临时数据的变化会变成永久的数据变化)

COMMIT;
回滚事务(撤回临时数据的变化的操作)
ROLLBACK;

3.事务四大特征

(1)原子性(Atomicity): 事务是不可分割的最小操作单位,要么同时成功,要么同时失败

(2)一致性(Consistency): 事务完成时,必须使所有的数据都保持一致状态
(3)隔离性 (lsolation): 多个事务之间,操作的可见性
(4)持久性 (Durability): 事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值