MySQL—事务、多表查询

地平线天工开物AI开发平台实战:从量化训练到模型部署的完整指南 本文提供了地平线天工开物(OpenExplorer)AI开发平台的实战指南,详细解析了从量化训练到模型部署的完整流程。文章重点对比了量化感知训练(QAT)与训练后量化(PTQ)两条核心路径的优劣与适用场景,并分享了图像分类模型PTQ部署的实战经验与常见问题调试技巧,旨在帮助开发者高效地将AI模型部署到地平线AI芯片上。 阅读详情

1. 事务控制语言(Transaction Control Language,TCL)

事务是访问并可能更新数据库中各种数据项的一个程序执行单元(unit),在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。事务应该具有4个属性:原子性(atomicity)、一致性(consistency )、隔离性(isolation)、持续性(durabbility),这4个属性通常称为ACID特性。

默认事务的提交方式

set autocommit=false:设置事务提交方式为手动提交

set autocommit=true:设置事务提交方式为自动提交

事务就是对数据库的多不操作,要么一起成功,要么一起失败。

commit:手动提交事务

rollback:回滚事务

savepoint poin2:保存还原点

rollbock to point2:回滚到point2还原点


设定事务提交方式为手动提交:

mysql> set autocommit=false;
Query OK, 0 rows affected (0.00 sec)

向表中插入数据:

mysql> insert into emp
    -> (name,gender,hiredate,salary,job,comm)
    -> values
    -> ("小强","m","2016-2-05",12000,"项目经理",700);
Query OK, 1 row affected (0.00 sec)

查询:


mysql> select * from emp;
+----+--------+--------+------------+----------+--------------+---------+
| id | name   | gender | hiredate   | salary   | job          | comm    |
+----+--------+--------+------------+----------+--------------+---------+
|  1 | 张三   | m      | 2016-02-12 |  5000.00 | 老师         |  200.00 |
|  2 | 李四   | m      | 2016-02-12 |  8000.00 | 设计师       |  500.00 |
|  4 | 王五   | f      | 2016-01-25 |  1000.00 | 总监         | 1000.00 |
|  5 | 小强   | m      | 2016-02-05 | 12000.00 | 项目经理     |  700.00 |
+----+--------+--------+------------+----------+--------------+---------+
4 rows in set (0.00 sec)

发现事务并没有提交,但是小强这个员工的信息已经在数据库中了,其实并没有在,只是存在于内存中。如果这是打开另一个mysql客户端去查询会发现并没有小强这个员工的信息。


多表查询

在mydb下再建一个dept表,查询其信息:

mysql> select * from dept;
+----+-----------+--------------------+
| id | name      | descr              |
+----+-----------+--------------------+
|  1 | 开发部    | 负责平台开发       |
|  2 | 教学部    | 负责授课           |
+----+-----------+--------------------+
2 rows in set (0.00 sec)

查看员工表

mysql> select * from emp;
+----+--------+--------+------------+----------+--------------+---------+
| id | name   | gender | hiredate   | salary   | job          | comm    |
+----+--------+--------+------------+----------+--------------+---------+
|  1 | 张三   | m      | 2016-02-12 |  5000.00 | 老师         |  200.00 |
|  2 | 李四   | m      | 2016-02-12 |  8000.00 | 设计师       |  500.00 |
|  4 | 王五   | f      | 2016-01-25 |  1000.00 | 总监         | 1000.00 |
|  5 | 小强   | m      | 2016-02-05 | 12000.00 | 项目经理     |  700.00 |
+----+--------+--------+------------+----------+--------------+---------+
4 rows in set (0.00 sec)



如果想要让这两个表有关系,比如说每个员工都有所属的部门,所以可以在emp表中添加一个dep_id列(属性),并将这个dep_id设为外键,表示这个员工所属哪个部门。

添加dep_id列:

mysql> alter table emp add column dep_id int;
Query OK, 4 rows affected (0.02 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> desc emp;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | int(11)      | NO   | PRI | NULL    | auto_increment |
| name     | varchar(100) | YES  |     | NULL    |                |
| gender   | char(1)      | YES  |     | NULL    |                |
| hiredate | date         | YES  |     | NULL    |                |
| salary   | float(10,2)  | YES  |     | NULL    |                |
| job      | varchar(100) | YES  |     | NULL    |                |
| comm     | float(7,2)   | YES  |     | NULL    |                |
| dep_id   | int(11)      | YES  |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)

将dep_id设为外键:

语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);(其中FK_ID是外键的名称)


mysql> alter table emp add foreign key(dep_id) references dept(id);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0


查看emp表:

mysql> select * from emp;
+----+--------+--------+------------+----------+--------------+---------+--------+
| id | name   | gender | hiredate   | salary   | job          | comm    | dep_id |
+----+--------+--------+------------+----------+--------------+---------+--------+
|  1 | 张三   | m      | 2016-02-12 |  5000.00 | 老师         |  200.00 |   NULL |
|  2 | 李四   | m      | 2016-02-12 |  8000.00 | 设计师       |  500.00 |   NULL |
|  4 | 王五   | f      | 2016-01-25 |  1000.00 | 总监         | 1000.00 |   NULL |
|  5 | 小强   | m      | 2016-02-05 | 12000.00 | 项目经理     |  700.00 |   NULL |
+----+--------+--------+------------+----------+--------------+---------+--------+
4 rows in set (0.00 sec)

修改emp表中的dep_id数据:

mysql> update emp set dep_id=2 where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> update emp set dep_id=1 where id=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> update emp set dep_id=1 where id=3;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0

mysql> update emp set dep_id=1 where id=5;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

查看表中数据:

mysql> select * from emp;
+----+--------+--------+------------+----------+--------------+---------+--------+
| id | name   | gender | hiredate   | salary   | job          | comm    | dep_id |
+----+--------+--------+------------+----------+--------------+---------+--------+
|  1 | 张三   | m      | 2016-02-12 |  5000.00 | 老师         |  200.00 |      2 |
|  2 | 李四   | m      | 2016-02-12 |  8000.00 | 设计师       |  500.00 |      1 |
|  4 | 王五   | f      | 2016-01-25 |  1000.00 | 总监         | 1000.00 |      1 |
|  5 | 小强   | m      | 2016-02-05 | 12000.00 | 项目经理     |  700.00 |      1 |
+----+--------+--------+------------+----------+--------------+---------+--------+
4 rows in set (0.00 sec)

查询出工资最高的员工:

mysql> select name,salary from emp
    -> where salary=
    -> (select max(salary) from emp);
+--------+----------+
| name   | salary   |
+--------+----------+
| 小强   | 12000.00 |
+--------+----------+
1 row in set (0.00 sec)

查询出每个部门的平均月薪并按照工资降序进行排序:

mysql> select dep_id,avg(salary) from emp group by dep_id order by avg(salary) desc;
+--------+-------------+
| dep_id | avg(salary) |
+--------+-------------+
|      1 | 7000.000000 |
|      2 | 5000.000000 |
+--------+-------------+
2 rows in set (0.00 sec)



查询月薪比平均薪水高的员工:

mysql> select name,salary from emp
    -> where salary>
    -> (select avg(salary) from emp);
+--------+----------+
| name   | salary   |
+--------+----------+
| 李四   |  8000.00 |
| 小强   | 12000.00 |
+--------+----------+
2 rows in set (0.00 sec)



详解大模型微调数据集构建方法(持续更新) 本文详细介绍了大模型微调数据集构建方法,希望能对学习大模型的同学们有所帮助。 文章目录 1. 前言 2. 微调数据集构建方法 2.1 方法一 2.2 方法二 2.3 方法三 2.4 方法四 2.5 方法五 阅读详情

相关推荐

PaddleOCR多进程GPU推理实战:200万图片高效处理方案

本文详细介绍了PaddleOCR多进程GPU推理在高效处理200万张图片OCR任务中的实战方案。通过优化GPU利用率、多进程并发和关键参数调优,实现了从单进程3000张/小时到8进程3万张/小时的性能飞跃,为大规模OCR处理提供了可靠解决方案。

prometheus9mon的博客 261

MySQL多表、事务

多表查询 多表查询的分类 笛卡尔积 有两个集合A,B .取这两个集合的所有组成情况。 要完成多表查询,需要消除无用的数据–通过条件过滤掉没用的数据。 内连接 1.隐式内连接:使用where条件消除无用数据 2.显式内连接: select 字段列表 from 表名1 [inner] join 表名2 on 条件 总结内连接查询步骤: 1) 确定查询哪些表 2) 确定表连接的条件 3) 确定查询的条件 4) 确定查询的字段 ...

代码不会敲的博客 608

跨域问题 - 其他 method 都没有跨域问题,只有delete有跨域的问题

跨域的配置等一切正常,GETPOSTPUTOPTIONS都可以正常访问, 唯独有一个DELETE有跨域的问题, 经过排查发现这个DELETE请求有body, 经过一系列排查, 发现头部有一个不太正常的值是为了避免浏览器的影响, 直接在 postman 中新建一个请求, 竟然也有跨域的问题, 后来把的值改成了请求就可以正常调用了.

galoiszhou的博客 527

MySQL 多表连接查询练习 (四)

测试用数据来源于Oracle数据库中的测试数据MySQL数据库表:  employees员工表,departments部门表, locations地址表库表测试试数据#----表连接查询练习 SELECT * FROM departments; select * from departments select * from locations #--1.显示所有职员的姓名及其所在部门的名称和工资...

vcfriend的专栏 5020

Loki 分布式日志中心服务

分布式日志中心 Loki + Promtail + Grafana

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 2353

PGM-Explainer实验总结

PGM-Explainer建立了一个概率图模型,为GNN提供实例级解释。 论文标题:PGM-Explainer: Probabilistic Graphical Model Explanations for Graph Neural Networks 论文地址:2010.05788.pdf (arxiv.org) PGM-Explainer实验 实验目的 研究PGM-Explainer的有效性 实验方案 合成数据集的节点分类 与其他解释器做对比实验 使用六个合成数据集。 每个输入图都是一个

笔记|思路|总结 1万+

MySQL的信息查询以及关系运算符

Mysql查询语句 创建employee表 mysql> create table employee(id int primary key,     -> name varchar(200),     -> dept varchar(200),     -> salary int,     -> edlevel int,     -> hiredate date); Query O

zhuyanli521的专栏 1428

YOLOv13优化Faster_Block:卷积(Partial Convolution)、多层感知机(MLP)结构和残差连接

Faster_Block 代表了现代深度学习中效率与性能平衡的一个典型案例。它通过部分卷积技术巧妙地减少了计算开销,同时通过精心设计的架构保持了强大的特征学习能力。这种设计思想对于移动端部署、实时应用和大规模模型训练都具有重要意义。 未来的发展方向可能包括更智能的动态分割策略、与新兴硬件的深度适配,以及与其他先进技术(如自注意力机制、神经架构搜索等)的结合。Faster_Block 的成功展示了在深度学习领域,创新往往来自于对问题本质的深刻理解和巧妙的工程实现。

FJN110的博客 427

一句sql 在所有部门中选择平均工资最高的部门所有员工

<br />曾经考过的一道题,考了几次几次不会,今天遇到了高人,请教了下,记下来。<br />要求: 在一张表emp如下,选择所有部门中平均工资最高的部门的所有员工的信息。<br />emp表结构如下:<br /> <br />no  name  salary  empno   title  <br /> 1  张一  1000     1     MANAGE  <br /> 2  张二  800      1     employe <br /> 3  张三  700      1     employ

subuser的专栏 7656

基于YOLOv10的微小目标检测,多头检测器提升小目标检测精度

引入多头检测器助力YOLOv10,暴力提升小目标检测性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2568

生成模型实战 | 基于Transformer生成音乐

本文介绍了基于Transformer架构的音乐生成方法,将音乐视为一系列事件序列进行处理。与将音乐表示为多维图像的MuseGAN不同,该方法使用类似GPT的仅解码器模型,基于先前事件预测下一个音乐事件。模型使用MIDI格式的钢琴音乐数据,通过分词处理将音符转换为note-on、note-off、time-shift和velocity四种事件类型,共388个独特词元,映射为索引序列后输入网络。训练完成后,可通过调整温度参数控制生成音乐的新颖性,从而创作出风格类似训练数据且连贯逼真的音乐作品。

盼小辉丶的博客 5811

MySQL 多表查询、事务

事务是一组操作的集合,这组操作必须全部成功或者全部失败。比如银行转账的步骤:A账户扣钱,B账户加钱 这两步操作必须全部成功或者失败,不能单独某一步成功或失败。

2201_75347713的博客 993

大聪明教你学Java | Seata 2.5 从下载到运行:全流程编译部署教程

Seata 2.5 版本带来了不少特性优化,但实际部署时却发现一个尴尬问题:全网找不到一篇完整覆盖「Git 源码下载→本地编译→环境配置→启动验证」的实操教程。作为一名踩遍无数坑才成功跑通的开发者,我深知这个过程的煎熬:Git 拉取源码后编译失败、依赖版本冲突、配置文件参数混乱、启动时端口占用或连接报错… 每一个坑都能耗费数小时排查。为了让后续开发者少走弯路,我将自己从0到1的完整实操经验整理成文,跟着步骤走即可成功运行 Seata 2.5.

不肯过江东丶 2071

MySQL多表查询与事务

MySQL多表查询,内连接,外连接,子查询,MySQL事务问题

qwelllll的博客 1666

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MySQL多表查询和事务

MySQL多表查询和事务项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:CREATE TABLE student_course ( id INT AUTO_INCREMENT COMMENT '主键' PRIMARY KEY, studentid INT NOT NULL COMMENT '学生ID', courseid INT NOT NULL COMMENT '课程ID

weixin_49668551的博客 1392

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MySQL--多表查询和事务

概述:指从多张表中查询数据笛卡尔积:笛卡尔乘积是指在数学中,两个集合 A 集合 和 B 集合的所有组合情况。(在多表查询时,需要消除无效的笛卡尔积)多表查询分类连接查询内连接:相当于查询 A、B 交集部分数据外连接:左外连接:查询左表所有数据,以及两张表交集部分数据右外连接:查询右表所有数据,以及两张表交集部分数据自连接:当前表与自身的连接查询,自连接必须使用表别名子查询。

PluMage11的博客 1090

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MySQL的多表查询与事务

关于MySQL的多表查询和事务的笔记

上山的月的博客 1034

MySQL 多表查询与事务知识总结

数据库多表关系与查询是数据库设计的核心内容。多表关系分为一对多、多对多和一对一三种,通过外键或中间表实现关联。多表查询需要消除笛卡尔积无效数据,主要采用连接查询(内连接、外连接、自连接)和子查询(标量、列、行、表子查询)两种方式。事务管理通过ACID特性保证数据一致性,包含原子性、一致性、隔离性和持久性。并发事务可能产生脏读、不可重复读和幻读问题,可通过设置不同隔离级别(读未提交、读已提交、可重复读、串行化)来解决。

2302_80003889的博客 1306

MySQL数据库基础——多表查询、事务

各个表结构之间存在的联系分为三种:一对多、多对多、一对一。

weixin_63461613的博客 1033

MySQL 多表查询 事务 索引

多表查询 简介 内连接查询 join on 外连接查询 left join、right join 子连接查询 标量子查询 列子查询 (in、not in) 行子查询 表子查询 合并子查询 UNION 力扣1789案例 多表查询案例 事务 事务介绍 操作 start transaction、commit、rollback 事务四大特性(面试题) 索引 索引介绍 索引原理 索引语法 index

weixin_43739821的博客 500

MySQL基础 — 多表查询以及事务管理

问:select * from emp , dept 最终结果为什么是102条?​ emp 记录17条,dept 记录6条,17*6=102​ 其实就是员工表emp所有的记录(17) 与 部门表dept所有记录(6) 的所有组合情况,这种现象称为笛卡尔积,在这些组合情况中有许多记录是无用的,我们需要消除笛卡尔积笛卡尔积左边集合与右边集合所有情况怎么消除笛卡尔积?​ 多表连接时添加条件即可​事务。

weixin_51351637的博客 1350

MySQL基础篇(3)—多表查询、事务

概述:指从多张表中查询数据笛卡尔积:笛卡尔乘积是指在数学中,两个集合A集合 和 B集合的所有组合情况。(在多表查询时,需要消除无效的笛卡尔积)多表查询分类。

weixin_61843013的博客 1900

MySQL多表查询&事务

MySQL多表查询&事务 多表查询 事务 DCL 多表查询: * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept (...

云祁QI 1058

多表查询、事务(MySQL笔记第三期)

在项目开发中,进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在各种联系,基本上分为三种:一对一、一对多(多对一)、多对多。一对一:比如用户和用户详情的关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率;多表查询分类:连接查询(内连接、外连接[左外连接、右外连接]、自链接)、子查询。联合查询,即把多次查询的结果合并起来,形成一个新的查询结果集。

2403_87139271的博客 1370

MySQL 函数、约束、多表查询与事务详解

在 MySQL 数据库中,函数、约束、多表查询和事务是非常重要的概念,它们可以帮助我们更好地管理和操作数据。本文将详细介绍这些概念,并通过代码演示来帮助你更好地理解。

A_cot的博客 2705
上一篇: MySQL—基本操作
下一篇: JDBC—Connection、Statement、ResultSet
Wang_AI
博客等级 码龄12年 988粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值