1.什么情况下会用到表连接查询
当一个表不能完整的查找到我们所需要的数据时,需要用到表连接查询
2.表的连接查询有几种
内连接查询:
隐式内连接:使用where条件消除无用的数据
显示内连接:使用join作为消除无用的数据
外连接查询:
左外连接:使用关键字left join 来关联两个表,他会查询左表的说有数据和右表的交集部分
右外连接:使用关键字right join 来关联两个表,他会查询右表的说有数据和左表的交集部分
子查询:用一条SQL语句的结果作为另外一条语句的条件
3.什么是子查询,子查询的结果有几种情况,分别怎么使用
子查询是:用一条SQL语句的结果作为另外一条语句的条件
有几种情况:
单行单列的,直接使用算数运算符使用
多行单列的,使用运算符in来判断
多行多列的,可以把查询出来的表作为一个虚拟表参与查询
4.什么是事务,什么是提交,什么是回滚
事务:如果一个包含多个步骤的业务操作,被事物管理,那么这些操作要么同时成功,要么同时失败。
提交:当确认数据正确无误时,提交数据,他会把数据持久化的保存在硬盘中。
回滚:当事务中的SQL语句出现错误的时候,使用回滚语句,可以回滚到事务开启时的状态。
5.mysql有几个隔离级别
隔离级别:
(1)read uncommitted:读未提交
产生的问题:脏读、不可重复读、幻读
(2)read committed:读已提交 (Oracle)
产生的问题:不可重复读、幻读
(3)repeatable read:可重复读 (MySQL默认)
产生的问题:幻读
(4)serializable:串行化
可以解决所有的问题
6.数据库并发访问问题都有哪些
(1)脏读:一个事务,读取到另一个事务中没有提交的数据
(2) 不可重复读(虚读):在同一个事务中,两次读取到的数据不一样。
(3) 幻读:一个事务操作(DML)数据表中所有记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改。 |