什么叫多表查询?
多表查询就是结合多张表进行查询;
创建两张表;顺便作一个复习
首先创建一张部门表dept
然后创建一张职员表emp
通过insert into
向表中添加记录后最终得到的效果
先了解一下什么是笛卡尔积?
笛卡尔是一个著名的数学家;假设有两个集合A和B;取这两个集合的所有组合情况就叫笛卡尔积
内连接查询分为隐式内连接查询
和显示内连接查询
隐式内连接
由于出现无用的数据;那么可以通过where条件对无用的数据进行删除
一般比较规范的格式
显式内连接语法:select 字段列表 from 表名1 join 表名2 on 条件
那么什么时候使用内连接查询?
需要从哪些表中查询数据;条件是什么;查询哪些字段
用外连接查询的目的是为显示有的为null的记录;就例如
查询所有员工信息,如果员工有部门,则查询部门名称,没有部门就不显示部门名称,而不是不显示没有部门的该名员工
左外连接
语法::select 字段列表 from 表1 left join 表2 on 条件
查询的是左表所有数据以及其交集部分
右外连接
语法:select 字段列表 from 表1 right join 表2 on 条件
查询的右表所有数据以及其交集部分
什么叫子查询?
也就是说查询中可以嵌套查询语句;这就成为子查询
举个例子;想要查询工资最高的员工信息;那么首先要用聚合函数先找出最高的工资;然后再用条件查询信息
但是用了子查询后可以写成这样
子查询的不同情况
in
来判断何为事务?
一个包含多个步骤的业务操作被一个事务管理;那么这些操作要么同时成功;要么同时失败
事务如何操作?
开启事务:start transaction
;回滚:rollback
;提交:cummit
;
要注意的是mysql数据库中事务默认是自动提交的;也就是没有开启事务是执行一条DML语句就会自动提交一次事务
而oracle数据库是默认是手动提交的;也就是需要先开启事务然后再提交
另外可以都事务的默认提交方式进行修改(1代表自动;0代表手动)
查看事务的默认提交方式:select @@autocommit;
修改默认提交方式:set @@autocommit = 0
;