SQL基础

数据模型

  • 层次模型
  • 网状模型
  • 关系模型

数据类型

名称 类型 说明
INT 整型 4字节整数类型,范围约+/-21亿
BIGINT 长整型 8字节整数类型,范围约+/-922亿
REAL 浮点型 4字节浮点数,范围约+/-10^38
DOUBLE 浮点型 8字节浮点数,范围约+/-10^308
DECIMAL(M,N) 高精度小数 指定精度的小数(M:整数位数,N小数位数)
CHAR(N) 定长字符串 存储指定长度的字符串(N长度)
VARCHAR(N) 变长字符串 可变长度的字符串(最大N长度)
BOOLEAN 布尔类型 True或者False
DATE 日期类型 日期,例如,2018-06-22
TIME 时间类型 时间,例如,12:20:59
DATETIME 日期和时间类型 日期+时间,例如,2018-06-22 12:20:59

关系模型

主键

  • 不使用任何业务相关的字段作为主键
  • 常用自增整数类型(ID)作为主键
  • 可以使用多个列作为联合主键,但联合主键并不常用

外键

  • 关系数据库通过外键可以实现一对多、多对多和一对一的关系
  • 外键既可以通过数据库来约束,也可以不设置约束,仅依靠应用程序的逻辑来保证

索引

  • 原理是让数据库系统不必扫描整个表,而是直接定位到符合条件的记录,提高查询速度
  • 索引的效率取决于索引列的值是否散列,即该列的值如果越互不相同,那么索引效率越高
  • 索引的优点是提高了查询效率.缺点是在插入、更新和删除记录时,需要同时修改索引,拖慢速度
  • 通过创建唯一索引,可以保证某一列的值具有唯一性

事务ACID

  • A:Atomic,原子性,将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行
  • C:Consistent,一致性,事务完成后,所有数据的状态都是一致的,即A账户只要减去了100,B账户则必定加上了100
  • I:Isolation,隔离性,如果有多个事务并发执行,每个事务作出的修改必须与其他事务隔离
  • D:Duration,持久性,即事务完成后,对数据库数据的修改被持久化存储

事务隔离级别

隔离级别 说明 脏读 不可重复读 幻读
读未提交 事务会读到其它未提交事务的数据(脏读) yes yes yes
读提交 事务可以读取另一个已提交的事务 - yes yes
可重复读 事务中,第一次读取不到,但可以成功更新,之后就可以读到(幻读) - - yes
序列化 事务按照次序依次执行 - - -

posted @ 2021-02-24 14:46  coding在路上~  阅读(75)  评论(0编辑  收藏  举报