首页 > 技术文章 > 【归纳】MySQL基础复习

lokvahkoor 原文

基础知识

  • MySQL是一个关系型数据库管理系统(RDBMS)
    • RDBMS(Relational Database Management System)的特点:
      • 数据以表格的形式出现
      • 每行为各种记录名称
      • 每列为记录名称所对应的数据域
      • 许多的行和列组成一张表单
      • 若干的表单组成database
  • 数据库中的一些术语:
    • 元组:元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性
      • 在二维表里,元组也称为行
    • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性
    • 主键:主键是唯一的。一个数据表中只能包含一个主键
    • 外键:在一个表中存在另外一个表的主键叫做外键
    • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录
    • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引

数据类型

  • MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型
  • 具体类型及描述信息见:MySQL 数据类型

索引

常见要点Q&A

  • 索引
    • 索引是对数据库中一或多个列值的排序,用来加快数据检索速度
    • 索引缺点:
      • 插入 删除 修改 维护速度下降
      • 占用物理和数据空间
  • 事务
    • 事务(Transaction)是并发控制的基本单位。事务就是一系列的操作,这些操作要么都执行,要么都不执行
    • 事务的四个特征:
      • Atomic(原子性):事务中的一系列的操作要么都完成,要么全部失败
      • Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏
      • Isolation(隔离性):隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行 相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据
      • Durability(持久性):在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚
  • 视图的作用,视图可以更改么?
    • 视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询;不包含任何列或数据。使用视图可以简化复杂的sql操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同的方式利用它们
    • 视图不能被索引,也不能有关联的触发器或默认值,如果视图本身内有order by 则对视图再次order by将被覆盖
    • 创建视图:create view XXX as XXXXXXXXXXXXXX
    • 对于某些视图比如未使用联结子查询分组聚集函数Distinct Union等,是可以对其更新的,对视图的更新将对基表进行更新;但是视图主要用于简化检索,保护数据,并不用于更新,而且大部分视图都不可以更新

推荐阅读