sql

连接

  • 默认不写(连接) 就是内连接
  • inner , outer都可以省

[Inner] Join

15 有10条无效。

6个员工 3个部门, 5个员工有部门,1个新来的 还没部门。

6 * 3 = 18

全外连接?

内连接:又称等值连接

  • 默认不写Join 就是内连接,不写时条件有where
  • inner join时,条件限制用on , inner可以省略

外连接:保留了没有关联的那些行

  • 左外连接:保留左边没有关联到右边的行,左表中条件判断字段为null的行保留
  • 右外连接:类比左的
  • outter可以省略

并发一致性问题:

脏读:读取未提交的修改。

不可重复读:1个事务2次读的结果不一致,中间有其他事务修改了。

幻影读:事务1读取某个范围的数据,事务2插入了数据,事务1再读不一致。

主要原因:破坏了事务的隔离性。

解决方法:通过并发控制(封锁),但是封锁需要用户自己控制

dbms提供了事务的隔离级别,让用户处理并发一致性问题。

Read Uncommitted(读取未提交内容)

Read Committed(读取提交内容):一个事务只能看见已提交事务的更改。

Repeatable Read(可重读)

Serializable(可串行化) :最高的隔离级别,强制事务排序。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!