MySQL第一阶段:多表查询、事务

news2024/12/27 16:00:49

        继续我的MySQL之旅,继续上篇的DDL、DML、DQL、以及一些约束,该到了多表查询和事务的学习总结,以及相关的案例实现,为未来的复习以及深入的理解做好知识储备。

目录

多表查询

连接查询

内连接

外连接

子查询

事务 

事务简介

事务操作

事务四大特征


多表查询

多表查询分为连接查询和子查询

连接查询

连接查询分为内连接与外连接

内连接

MySQL里把inner join 称为等值连接,就是需要指定出来等值的连接条件inner  join划分在一起

  • 必须有等值条件;
  • 内连接可能会丢失信息;(内连接是从结果表中删除与其他被连接表中没有匹配行的所有行)
  • 重点:内连接,只会查询出来匹配行。
// 第一种只包含where    隐式内连接
select 字段列表 from 表1,表2... where 条件;
// 第二种:join…on
SELECT * FROM table1 a JOIN table2 b on a.id=b.id;
// 显式内连接  inner join ……on
SELECT * FROM table1 a inner join table2 b on a.id=b.id;
-- 多表查询
-- 笛卡尔积
SELECT
	tb_goods.id,
	tb_order.id,
	tb_goods.title,
	tb_goods.price 
FROM
	tb_goods
	CROSS JOIN tb_order;-- 连接查询--内连接
-- 隐式内连接     相当于查询两个集合的交集
-- select 字段列表 from 表1,表2…… where 条件;
SELECT
	tb_goods.id,
	tb_order.id,
	tb_goods.title,
	tb_goods.price 
FROM
	tb_goods
	CROSS JOIN tb_order 
WHERE
	tb_goods.id = tb_order.id;-- 显示内连接
-- select 字段列表 from 表1 [INNER] join 表2 on 条件
SELECT
	* 
FROM
	tb_goods a
	INNER JOIN tb_order b ON a.id = b.id;

外连接

1. 左外连接 left inner join

左边为主表,左边所有数据都显示,右边显示相关联,剩余的显示不关联的 null

-- 外连接
-- 左外连接
select * from tb_goods a left join tb_order b on a.id = b.id;

右外连接,right inner join

右边为主表右边所有数据都显示,左边显示相关联,剩余的显示不关联的 null


-- 右外连接
SELECT * from tb_goods a right join tb_order b on a.id = b.id;

子查询

        概念 :

                查询中嵌套查询,称嵌套查询为子查询

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

                单行单列、多行单列、多行多列几类

        实质:

                查询之中嵌套着一个查询,这个嵌套进去的查询

事务 

数据库中的一种特性

事务简介

数据库的事务是一种机制、一个操作序列,包含了一组数据库操作命令

事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败

事务是一个不可分割的工作逻辑单元

python 中事务的提交不是自动的,MySQL 的事务是自动提交的

事务操作

一共三个操作

-- 开启事务
start transaction;
// 或者   begin
-- 提交事务
commit;
-- 回滚事务
rollback;

事务四大特征

A C I D四大特性

原子性(Atomicity):事务是不可分割的最小操作单位,要么同时成功,要么同时失败

一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态

隔离性(lsolation):多个事务之间,操作的可见性,多个事件的独立性

持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

-- 1.查询事务的默认提交方式,默认值为1自动提交,手动为0
select @@autocommit;
-- 2.修改事务的提交方式为手动提交,则执行下方修改代码后不会提交,即是不存在永久改变
set @@autocommit = 0;
-- 3.李四金额-500
update account set money = money - 500 where name = '李四';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1947641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

加油卡APP系统开发,线上发展优势分析

在当下社会中,汽车加油已经必不可少了,不管有什么出行计划,都需要提前给汽车加油或者中途加油。随着技术的发展,加油卡APP受到了有车一族的欢迎,大众可以在手机上给汽车加油,还能够享受诸多的优惠活动&…

python-阶乘和(赛氪OJ)

题目描述 求Sn​1!2!3!4!5!⋯n!的值,其中 𝑛n 是一个数字。输入格式: 输入一个整数 n。输出格式: 输出对应的 Sn​。 样例输入输出样例输入 5样例输出 153数据范围 对于 100% 的数据,保证1≤n≤20。来源/分类&#xff…

如何使用Python和Selenium解决reCAPTCHA

CAPTCHA已成为我们日常在线活动中重要的防御线。无论是登录账户、提交表单还是进行在线支付,CAPTCHA都在幕后保护我们的安全。然而,CAPTCHA有时可能会成为自动化的绊脚石,阻碍自动化测试、数据收集和效率提升。那么,如何以合法合理的方式绕过这些复杂的CAPTCHA挑战呢?在本文中…

导航不是GPS吗,有人用北斗吗?

在现代生活中,提到导航,人们脑海中最先浮现的往往是GPS。然而,近年来,中国自主研发的北斗导航系统(BeiDou Navigation Satellite System, BDS)正在迅速崛起,逐步占据全球导航市场的一席之地&…

2023年全国赛C题《 电容电感测量装置》设计报告

测量原理 参考下面网站的方案 bookmark 参考LCR测试仪,基本工作原理为给DUT加上正弦激励信号,然后测得该DUT两端的电压和流过DUT的电流,即可通过计算得到DUT的性质和参数。 对于一个理想电容,电流相位应该超前电容两端电压90。…

Java结合uniapp实现验证码(附Demo)

目录 前言1. Java2. uniapp 前言 对于Java的知识点推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 本次的Demo主要以图片验证码的方式输入和接…

抖音矩阵管理系统功能说明:一站式掌握

在当下这个信息爆炸的时代,抖音作为短视频领域的佼佼者,其用户规模持续扩大,影响力日益增强。对于内容创作者和营销人员来说,如何高效管理抖音账号,实现内容的多平台分发和精准触达,成为了亟待解决的问题。…

【JAVA多线程】线程的状态控制

目录 1.JDK中的线程状态 2.基础操作 2.1关闭 2.2中断 2.3.等待、唤醒 2.4.阻塞、唤醒 1.JDK中的线程状态 在JDK的线程体系中线程一共6种状态: NEW(新建): 当线程对象创建后,但尚未启动时,线程处于新建状态。RUN…

代码随想录算法训练营day8 | 344.反转字符串、541.反转字符串 II、卡码网:54.替换数字

文章目录 344.反转字符串思路 541.反转字符串 II思路 卡码网:54.替换数字思路复习:字符串 vs 数组 总结 今天是字符串专题的第一天,主要是一些基础的题目 344.反转字符串 建议: 本题是字符串基础题目,就是考察 revers…

链式法则和自动求导

向量链式法则 说明: 1.第一个式子, y是标量,u是标量,x是n维向量 2.第二个式子,y是标量,u是k维向量,x是n维向量,所以y对u求导是k维的行向量,u对x求导是k行n列的矩阵&…

Node 版本控制工具 NVM 的安装和使用(Windows)

遇到了一个项目,前端的node版本很低,需要我去降低node版本才能下载依赖运行,我当然不是傻乎乎的降版本了,而是使用node版本控制工具 NVM。 NVM(Node Version Manager) nvm 是一个命令行工具,用于…

【OSS对象存储】Springboot集成阿里云OSS + 私有化部署Minio

【OSS对象存储】Springboot集成阿里云OSS 私有化部署Minio 一、摘要二、POM依赖三、配置文件四、表结构设计五、代码实现5.1 代码包结构5.2 API封装5.3 增删改查 六、扩展6.1 Minio配置https访问 一、摘要 掌握阿里云OSS、私有化部署Minio两种对象存储的使用方式运用工厂策略…

STM32-寄存器ADC配置指南

目录 输入方式: 模拟看门狗功能: ADC中断 配置一个Demo 设置时钟 自校准 通道选择 采样时间选择 转换模式选择 断续模式 启动转换 软件触发 外部触发 转换结束 关于DMA 模拟看门狗 ​编辑ADC数据位置​编辑 在STM32F中,ADC可…

FM与AM的特点

1.是什么? FM(调频):通过改变载波频率来传递信息AM(调幅):通过改变载波的振幅来传递信息 2.分别有什么特点? 抗干扰能力: FM:由于FM信号的传输不依赖于载波的…

c++初阶知识——string类详解

目录 前言: 1.标准库中的string类 1.1 auto和范围for auto 范围for 1.2 string类常用接口说明 1.string类对象的常见构造 1.3 string类对象的访问及遍历操作 1.4. string类对象的修改操作 1.5 string类非成员函数 2.string类的模拟实现 2.1 经典的string…

【CI/CD】docker + Nginx自动化构建部署

CI/CD是什么 CI/CD 是持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery)的缩写,它们是现代软件开发中用于自动化软件交付过程的实践。 1、…

自动驾驶系列—智能巡航辅助功能中的路口通行功能介绍

自动驾驶系列—智能巡航辅助功能中的车道中央保持功能介绍 自动驾驶系列—智能巡航辅助功能中的车道变换功能介绍 自动驾驶系列—智能巡航辅助功能中的横向避让功能介绍 自动驾驶系列—智能巡航辅助功能中的路口通行功能介绍 文章目录 2. 功能定义3. 功能原理4. 传感器架构5. 实…

【Redis进阶】集群

1. 集群分片算法 1.1 集群概述 首先对于"集群"这个概念是存在不同理解的: 广义的"集群":表示由多台主机构成的分布式系统,称为"集群"狭义的"集群":指的是redis提供的一种集群模式&…

牛客JS题(二)直角三角形

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; repeat格式化字符串 题干&#xff1a; 我的答案 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"></head><body><div classtriangle><…

C++树形结构(1 基础)

目录 一.基础&#xff1a; 1.概念&#xff1a; 2.定义&#xff1a; Ⅰ.树的相关基础术语&#xff1a; Ⅱ.树的层次&#xff1a; 3.树的性质&#xff1a; 二.存储思路&#xff1a; 1.结构体存储&#xff1a; 2.数组存储&#xff1a; 三.树的遍历模板&#xff1a; 四.信…