MySQL多表查询与事务的操作

2023-11-14

目录

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 级别字符串 ;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL多表查询与事务的操作 的相关文章

随机推荐

  • 「自动化」聊起来简单,做起来难

    第4期 自动化 聊起来简单 做起来难 在上一期 如何找到现有研发体系的 内耗问题 中 我们聊了评估现有研发体系 正确的找到 体系内耗问题 是改变研发体系的第一步 本期我们继续聊下一个关键点就是研发体系中引入自动化 看看下面两位嘉宾朋友是如何
  • 如何理解Zookeeper的顺序一致性

    2017饿了么做异地多活 我的团队承担Zookeeper的异地多活改造 在此期间我听到2种不同的关于一致性的说法 一种说法是Zookeeper是最终一致性 因为由于多副本 以及保证大多数成功的Zab协议 当一个客户端进程写入一个新值 另外一
  • OpenCV代码提取:erode函数的实现

    Morphological Operations A set of operations that process images based on shapes Morphological operations apply a struct
  • 备战电赛,该如何学习

    距2023年电赛 全称 全国大学生电子设计竞赛 只有二个月的时间了 今年是国赛通道 作为A类级竞赛 很多电子类专业的学生 以及非电子类专业的学生都想去参加 但是它的门槛有很高 很多大一的学生参加电赛只是为了获得体验感 当然你也可以抱学长的大
  • leetcode刷题(10.15总结)

    1 2的幂 题目描述 https leetcode cn problems power of two class Solution def isPowerOfTwo self n int gt bool return n gt 0 and
  • 部署elasticsearch集群

    创建es集群 编写一个docker compose yaml文件 内容如下 version 2 2 services es01 image elasticsearch 7 12 1 container name es01 environme
  • Android Studio中BitmapDrawable的使用2-1

    1 Drawable Android Studio中的Drawable叫做可绘制资源 指的是可以在屏幕上绘制的图形 Drawable资源分为BitmapDrawable 可绘制的位图文件 NinePatchDrawable 可绘制的九宫格文
  • 牛客网mysql刷题记录

    牛客网mysql刷题记录 SQL26 计算25岁以上和以下的用户数量 if expression A B select if age lt 25 or age is null 25岁以下 25岁及以上 as age cut count u
  • 云计算基础——期末大作业

    1 例举出目前云服务提供商最常用的云计算安全架 并说明其安全策略和安全机制 1 云计算安全框架中的模块组成及功能架构必须有图例说明 配以文字说明 2 云计算安全策略的一般应用的原则和针对性的问题 举例一个案例进行具体论述 3 云计算的安全机
  • 使用Python,OpenCV进行图像平移转换

    使用Python OpenCV进行图像平移转换 1 效果图 2 原理 3 源码 参考 这篇博客将介绍如何使用Python OpenCV对图像进行平移转换 平移是图像沿x轴和y轴的移动 使用平移 可以将图像上下左右移动 以及上述任意组合 要使
  • ESP8266引脚参考详解

    ESP8266引脚参考详解 ESP8266 ESP12 E芯片自带17个GPIO管脚 并不是所有的gpio在所有的ESP8266开发板中都是公开的 有些gpio不推荐使用 有些gpio有非常具体的功能 通过本指南 您将学习如何正确使用ESP
  • RxJava之PublishSubject、BehaviorSubject、ReplaySubject和AsyncSubject

    public class T2 subject 是一个神奇的对象 它可以是一个Observable同时也可以是一个Observer 它作为连接这两个世界的一座桥梁 一个主题可以订阅一个Observable 就像一个观察者 并且它可以发射新的
  • SpringBoot整合WebSocket实现后端向前端发送消息

    目录 一 什么是 websocket 接口 二 适用场景 三 示例代码 3 1 添加pom xml依赖 3 2 创建WebSokcet配置类 3 3 创建测试发送消息接口 3 4 测试webSocket http www jsons cn
  • C++三种计时方法pcl::console::TicToc

    目录 一 clock 二 gettimeofday 三 pcl console TicToc time Windows 10 VM Ware 16 Ubuntu 20 04 Ubuntu环境下测试了两种测量代码运行时间的函数 二者精度接近
  • bash: ip: command not found

    问题 想进入docker容器中ip addr查看ip地址 提示bash ip command not found 解决 bash ip command not found的主要原因是 当前环境下载Centos基础镜像只包含简单的操作系统 相
  • Android之 弹框总结

    一 简介 1 1 弹框即浮与页面之上的窗口 如键盘弹框 吐司弹框 确认弹框 下拉选择框 应用悬浮框等 1 2 弹框控件也很多 比如常用的Spinner Dialog Toast PopWindow等 以及新增的SnackBar Dialog
  • 如何使用Python中的异常处理机制来捕获和处理除零错误

    定义一个除法函数 用于演示异常处理 def divide x y try result x y except ZeroDivisionError print 错误 除数不能为零 else print 结果为 result finally p
  • 软件测试拿了几个20K offer,分享一波面经

    1 你的测试职业发展是什么 测试经验越多 测试能力越高 所以我的职业发展是需要时间积累的 一步步向着高级测试工程师奔去 而且我也有初步的职业规划 前3年积累测试经验 按如何做好测试工程师的要点去要求自己 不断更新自己改正自己 做好测试任务
  • llama/llama2论文解读

    llama 摘要 llama在约1 4T的token上 训练出参数量7B到65B的模型 其模型规模如下 在仅使用开源数据集的情况下 llama 13B在多数benchmarks上与GPT 3效果相当 llama 65B也与最好的模型 Chi
  • MySQL多表查询与事务的操作

    目录 1 表连接查询 1 1 多表查询的概念 1 2 内连接 1 3 外连接 2 子查询 3 事务 1 表连接查询 1 1 多表查询的概念 所需要的查询结果在多张不同的表中 因此需要用到多表查询 多表查询分为 内连接和外连接 内连接包含 隐