MySQL数据库基础知识

举报
Ara~追着风跑 发表于 2022/05/13 16:42:53 2022/05/13
【摘要】 数据库1.约束1.1约束的概念和分类约束的概念约束是作业于表中列上的规则,用于限制加入表的数据约束的存在保证了数据库中数据的正确性,有效性和完整性约束的分类约束名称描述关键字非空约束保证列中所有数据不能有null值NOT NULL (not null)唯一约束保证列中所有数据各不相同UNIQUE (unique)主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY prim...

数据库

1.约束

  • 1.1约束的概念和分类

    1. 约束的概念

      • 约束是作业于表中列上的规则,用于限制加入表的数据

      • 约束的存在保证了数据库中数据的正确性,有效性和完整性

    2. 约束的分类

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

      注:后面关键字建议使用大写,MySql不支持检查约束

    3. 非空约束 唯一约束 主键约束 默认约束 外键约束

2.数据库设计

  1. 软件的研发步骤

  2. 数据库设计概念 

    • 数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型

    • 建立数据库中的表结构以及表与表之间的关联关系的过程

    • 表关系有一对一,一对多,多对多

  3. 数据库设计的步骤

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

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

    3. 物理设计(根据数据库自身的特点把逻辑设计转换为物理设计)

    4. 维护设计1.对新的需求进行建表;2.表优化

  4. 表关系

    一对多 多对多 一对一
    一对多如:部门表和员工表,一个部门对应多个员工,一个员工对应一个部门 多对多如:订单和商品,一个商品对应多个订单,一个订单对应多个商品 一对一如:用户与用户详情,一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能
    实现方式:在多的一方建立外键,指向一的一方的主键 实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键 实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为唯一(UNIQUE)

3.多表查询

  1. 多表查询:从多张表查询数据

    • 连接查询

      • 内连接:相当于查询AB交集数据

        • 隐式内连接:SELECT 字段列表 FROM 表一,表二... WHERE 条件;

        • 显示内连接:SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;

      • 外连接:

        • 左外连接:相当于查询A表所有数据和交集部分数据

          • SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;

        • 右外连接:相当于查询B表所有数据和交集部分数据

          • SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;

        • 如图:

    • 子查询

      1. 查询中嵌套查询,称嵌套查询为子查询

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

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

4.事务

  • 事物简介

    • 数据库的事务是一种机制,一个操作序列,包含了一组数据库操作命令

    • 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败。

    • 事物是一个不可分割的逻辑单元

    • 开启事务 提交事务 回滚事务
      START TRANSACTION; COMIT ROLLBACK
      或 BEGIN;
    • MySQL事务默认自动提交

      • 查看事务的默认提交方式 SELECT @@autocommit;

      • 修改事务提交方式:1自动提交0手动提交 set @@autocommit = 0;

  • 事务四大特征

    原子性 一致性 隔离性 持久性
    事务是不可分割的最小操作单位,要么同时成功,要么同时失败 事务完成时,必须所有的数据都保证一致状态 多个事务之间,操作的可见性 事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。