开发应用

SQL之多表查询

2021-12-11  本文已影响0人  每天起床都想摆

多表查询

MySQL不支持full join ,可以使用union连接两条查询语句,实现全连接(查询并集)

例如:select * from stu1 union select * from stu2;

概念

笛卡尔积 取A,B集合所有组合情况
多表查询 从多张表中查询数据:连接查询&子查询

@$HDA_Y@L9YG`TCC}ZZJEQG.png

内连接

基本语法

-- 隐式内连接
select 字段列表 from 表名1,表名2... where 条件;

-- 显式内连接
select 字段列表 from 表1 [inner] join 表2 on 条件;> 

为应对不同表中字段名相同的情况,在字段名前加上表名作为前缀进行引用,例如emp.id,stu.id

当表名过长时,通常给表名取别名以简化书写

例如

 select t1.id,t2.id  from emp t1,stu t2 where t1.id = t2.id

外连接

基本语法

--左外连接
select 字段列表 from 表1 left [outer] join 表2 on 条件;

--右外连接
select 字段列表 from 表1 right [outer] join 表2 on 条件;

子查询

概念 查询中嵌套查询,称嵌套查询为子查询(查询语句的条件是一条可以得出结果的查询语句)

子查询根据查询结果不同 ,作用不同

事务

概念

操作

一个事务的操作包括了 开启事务--->(出现异常)回滚事务--->提交事务

基本语法

-- 开启事务
start transaction;
或者
begin;

-- 回滚事务
rollback;

-- 提交事务
commit;

roolback和commit不能同时运行,二者同时运行时,并不能理想的进入回滚的内循环,而会回滚一次后直接执行commit

commit会让数据被持久化的更改,即在其他窗口页面查询时数据也会呈现更改后的结果

roolback会阻止发生异常的事务继续执行,回滚到事务初始的状态

事务的提交方式

--查看事务的默认提交方式

select @@autocommit;

-- 1    自动提交            0   手动提交
 
修改事务提交方式

set @@autocommit = 0;

事务的四大特征(A-C-I-D)

上一篇下一篇

猜你喜欢

热点阅读