MySQL多表查询与事务的操作

目录

1、表连接查询

1.1 多表查询的概念

1.2 内连接:

1.3 外连接:

2、子查询

3、事务


1、表连接查询

1.1 多表查询的概念

所需要的查询结果在多张不同的表中,因此需要用到多表查询。

多表查询分为:内连接外连接

内连接包含:隐式内连接显式内连接

外连接包含:左外连接右外连接

笛卡尔积:

-- 需求 : 查询所有的员⼯和所有的部门
select * from emp,dept;
-- 设置过滤条件 Column 'id' in where clause is ambiguous
select * from emp, dept where id = 5 ;

1.2 内连接:

-- 隐式内连接:看不到 JOIN 关键字,条件用 WHERE 指定

SELECT 字段名 FROM 左表 , 右表 WHERE 条件 ;
select * from emp, dept where emp. `dept_id` = dept. `id` ;

-- 显式内连接:使用 INNER JOIN ... ON 语句,可以省略 INNER

SELECT 字段名 FROM 左表 [ INNER ] JOIN 右表 ON 条件 ;
select * from emp e inner join dept d on e. `dept_id` = d. `id` ;

1.3 外连接:

-- 左外连接:使用 LEFT OUTER JOIN ... ON, OUTER 可以省略

SELECT 字段名 FROM 左表 LEFT [ OUTER ] JOIN 右表 ON 条件
select * from dept d left join emp e on d. `id` = e. `dept_id` ;

 -- 右外连接:使用 RIGHT OUTER JOIN ... ON, OUTER 可以省略

SELECT 字段名 FROM 左表 RIGHT [ OUTER ] JOIN 右表 ON 条件
select * from dept right join emp on dept. `id` = emp. `dept_id` ;

2、子查询

子查询的概念:

1. 一个查询的结果作为另一个查询的条件

2. 有查询的嵌套,内部的查询称为子查询

3. 子查询要使用括号

-- 子查询结果为单行单列

SELECT 查询字段 FROMWHERE 字段 = (子查询);

-- 子查询结果为多行单列

SELECT 查询字段 FROM WHERE 字段 IN (子查询);

-- 子查询结果为多行多列

SELECT 查询字段 FROM (子查询) 表别名 WHERE 条件;

3、事务

 MySQL中可以有两种方式对事务进行操作:

1. 手动提交事务

2. 自动提交事务

回滚点:

事务的四大特性ACID:

事务的隔离级别:

MySQL数据库的四种隔离级别:

-- 查询全局事务隔离级别

select @@transaction_isolation;

# MySQL 5.x 版本 隔离级别变量名为 tx_isolation
set global transaction isolation level 级别字符串 ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值