1.什么情况下会用到表连接查询
当我们需要查询的数据在不同的表中,就可以用到多表查询
2.表的连接查询有几种
内连接:
隐式内连接,格式是select 字段列表 from 多个表中间用逗号隔开 where 连接条件和其他条件。
显式内连接,格式是select 字段列表 from 表1join 表2 on 连接条件和其他条件。显示连接可读性更好。
外连接:
内连接存在一种缺点,只能查询到两表的交集部分,而对于不满足连接条件的数据是查不到的。然后就能可以用外连接解决这个问题,
外连接分为左外连接和右外连接。
左外连接格式是:select 字段列表 from 表1 left join 表2 on 连接条件和其他条件。
右外连接格式是:select 字段列表 from 表1 right join 表2 on 连接条件和其他条件。
3.什么是子查询,子查询的结果有几种情况,分别怎么使用
子查询是在一个查询中嵌套一个循环,这个嵌套的循环就是子查询,子查询结果是以下几种情况,
单行单列,作为条件存在。
多行单列,作为条件存在。
多行多列,作为虚拟表存在。
4.什么是事务,什么是提交,什么是回滚
事物是如果一个包含多个步骤的业务操作,被事物管理,这些操作要么同时成功,要么同时失败。
提交指的是被事务管理的操作执行完毕且没有出现异常时持久化这些操作结果。
回滚指的是被事务管理的操作执行过程中出现了异常,将操作结果回滚到事务开启时的状态。
5.mysql有几个隔离级别,默认隔离级别是什么?
1. read uncommitted:读未提交
* 产生的问题:脏读、不可重复读、幻读
2. read committed:读已提交 (Oracle)
* 产生的问题:不可重复读、幻读
3. repeatable read:可重复读 (MySQL默认)
* 产生的问题:幻读
4. serializable:串行化
* 可以解决所有的问题,但是效率最低 |