当前位置: 首页 > news >正文

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

        继续我的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;
-- 多表查询
-- 笛卡尔积
SELECTtb_goods.id,tb_order.id,tb_goods.title,tb_goods.price 
FROMtb_goodsCROSS JOIN tb_order;-- 连接查询--内连接
-- 隐式内连接     相当于查询两个集合的交集
-- select 字段列表 from 表1,表2…… where 条件;
SELECTtb_goods.id,tb_order.id,tb_goods.title,tb_goods.price 
FROMtb_goodsCROSS JOIN tb_order 
WHEREtb_goods.id = tb_order.id;-- 显示内连接
-- select 字段列表 from 表1 [INNER] join 表2 on 条件
SELECT* 
FROMtb_goods aINNER 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 = '李四';

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 系留无人机在技术上有哪些优势或创新点
  • 华为高教校园网络解决方案 方案规划
  • Elasticsearch 基础
  • 关于线性代数(考研)
  • 挑战房市预测领头羊:KNN vs. 决策树 vs. 线性回归
  • 全栈嵌入式C++、STM32、Modbus、FreeRTOS和MQTT协议:工业物联网(IIoT)可视化系统设计思路(附部分代码解析)
  • 太美了!智能汽车触摸屏中控让驾驶员和乘客目不转睛
  • Oracle 解锁会话
  • 【Python】基础学习技能提升代码样例3:JSON文本处理
  • 计算机基础-IO
  • 【vluhub】elasticsearch漏洞
  • Android 基带版本号显示不正确,显示了多个一样的基带版本号
  • 【MySQL进阶之路 | 高级篇】事务的ACID特性
  • 【视频讲解】后端增删改查接口有什么用?
  • 最新风车IM即时聊天源码及完整视频教程2024年7月版
  • 2019年如何成为全栈工程师?
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • DOM的那些事
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Linux后台研发超实用命令总结
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Map集合、散列表、红黑树介绍
  • mysql_config not found
  • SpringBoot 实战 (三) | 配置文件详解
  • TCP拥塞控制
  • ucore操作系统实验笔记 - 重新理解中断
  • Vue 重置组件到初始状态
  • 闭包,sync使用细节
  • 基于HAProxy的高性能缓存服务器nuster
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 聊聊flink的TableFactory
  • 前端
  • 前端性能优化--懒加载和预加载
  • 全栈开发——Linux
  • 让你的分享飞起来——极光推出社会化分享组件
  • 用jquery写贪吃蛇
  • const的用法,特别是用在函数前面与后面的区别
  • Hibernate主键生成策略及选择
  • RDS-Mysql 物理备份恢复到本地数据库上
  • (20050108)又读《平凡的世界》
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (初研) Sentence-embedding fine-tune notebook
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (力扣题库)跳跃游戏II(c++)
  • (四)React组件、useState、组件样式
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .htaccess配置重写url引擎
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net6Api后台+uniapp导出Excel
  • @Autowired和@Resource的区别