MySQL查询和事务
数据库关联查询
内连接查询(inner join)
SELECT * FROM tb1 INNER JOIN tb2 ON 条件
左表查询(左关联查询)(left join)
查询两个表共有的数据,和左表所有的数据,左表有右表没有的部分用null代替
SELECT * FROM tb1 LEFT JOIN tb2 ON 条件
右表查询(右关联查询)(right join)
查询两个表共有的数据,和右表表所有的数据,右表有左表没有的部分用null代替
SELECT * FROM tb1 RIGHT JOIN tb2 ON 条件
多表(三表)关联查询
1、内关联查询
select * from major inner join major_course inner join course where
major.id = major_course.major_id and major_course.course_id = course.id
and major.id= 1;
2、关联子查询
SELECT
name
FROM
major
WHERE
id IN (
SELECT
mc.major_id
FROM
course AS c
LEFT JOIN major_course AS mc ON c.id = mc.course_id
WHERE
c.id = 1
);
事务
创建新的数据库名为bank
create database bank;
在bank数据库中创建新的表名为user
create table user(
id int primary key,
name varchar(20),
money int);
往user表中添加数据
insert into user values(1,'a',1000);
查看是否添加成功
select * from user;
回滚(就是撤销sql语句执行的效果)
rollback;
验证sql的语句执行的效果是否撤销
select * from user;
如果想要让回滚有效的话需要关闭事务(关闭mysql的自动提交)
set @@autocommit=0;
select @@autocommit;
验证回滚:
a再插入一条数据
insert into user values(2,'b',1000);
b查看此时的user表
select * from user;
c回滚
rollback;
d查看
select * from user;
e
重复上述操作
f由于关闭了自动提交功能,现在手动提交
commit;
g再回滚查看表(显然回滚失效了)
【总结】
事务:
——自动提交:@@autocommit=1;
——手动提交:commit;
——回滚:rollback;
事务是以两种方式存在的:一是手动开启事务,二是默认(自动)开启事务
手动开启事务给我们提供了一个修改的机会,如果操作失败的话可以通过回滚,实现修改,如果操作成功可以手动提交(commit)增加数据的安全性
3、事务的四大特征
A 原子性:事务是最小的单位,不可以再进行分割了
C 一致性:事务要求同一事务中的sql语句,必须保证同时成功或者同时失败
I 隔离性:事务1与事务2之间具有隔离性(后面详解)
D 持久性:事务一旦结束(commit),就不可以返回(rollback)
4、事务的隔离性
(1)read uncommitted 读未提交的
(2)read committed 读已提交的
(3)repeatable read 可以重复读
(4)serializable 串行化
MySQL查询和事务的更多相关文章
- MySQL的ALTER变更、正则查询、分组查询、排序查询以及事务查询的概
MySQL的表和字段信息的变更 ALTER TABLE table-name DROP column-name; #删除某个字段 ALTER TABLE table-name ADD column-n ...
- MySQL多表查询、事务、DCL:内含mysql如果忘记密码解决方案
MySQL多表查询.事务.DCL 多表查询 * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE dept( id ...
- MySql多表查询_事务_DCL(资料三)
今日内容 1. 多表查询 2. 事务 3. DCL 多表查询: * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE ...
- 【mysql】关于事务的隔离级别
一.锁的种类 MySQL中锁的种类很多,有常见的表锁和行锁,也有新加入的Metadata Lock等等,表锁是对一整张表加锁,虽然可分为读锁和写锁,但毕竟是锁住整张表,会导致并发能力下降,一般是做dd ...
- MySQL数据库的事务管理
当前在开发ERP系统,使用到的数据库为Mysql.下面介绍下如何开启事务,以及事务隔离的机制 : 1. 检查当前数据库使用的存储引擎. show engines; 2. 修改前my.ini中的文件如下 ...
- MySQL存储过程之事务管理
原文链接:http://hideto.iteye.com/blog/195275 MySQL存储过程之事务管理 ACID:Atomic.Consistent.Isolated.Durable 存储程序 ...
- mysql中不同事务隔离级别下数据的显示效果--转载
事务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查询语句因为崩溃或其他原因而无法执行,那么所有的语句就都 ...
- 浅谈mysql中不同事务隔离级别下数据的显示效果
事务的概念 事 务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查 询语句因为崩溃或其他原因而无法执行,那 ...
- Mysql 查询缓存总结
Mysql 查询缓存总结 MySQL查询缓存解释 缓存完整的SELECT查询结果,也就是查询缓存.保存查询返回的完整结果.当查询命中该缓存,mysql会立刻返回结果,跳过了解析.优化和执行阶段, 查询 ...
- 事务,Oracle,MySQL及Spring事务隔离级别
一.什么是事务: 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 二.事务特性(4种): 原子性 (atomicity):强调事务的不可分割:一致性 (consiste ...
随机推荐
- NSQ(6)-nsq相关策略
1:nsq的流量控制 RDY 消息中间件的实现无非两种套路,一种让客户端pull,典型的比如kafka便是如此,而另一种则是push,也就是让客户端不需要做任何操作,只需要做好conn便可以源源不断收 ...
- openwrt通过gre回源
创建 ip tunnel add GRE网卡名 mode gre local 本地LAN IP remote SERVER LAN IP ttl 255 ip link set GRE网卡名 up ...
- windos下激活python虚拟环境
1.从终端中找到解释器的目录 2.cd到Scripts,输入激活命令activate 这样就表示激活成功了
- How to Avoid Trivial Solutions in Physics-Informed Neural Networks
未发表(2021) 本文也是关注采样点的一篇工作.主要从PINN的性能与采样点数量的关系方面入手考虑.提出了一个新的惩罚项,并对采样策略提出了一点看法. 本文的工作相对比较直观,简单,效果可能并不是很 ...
- 渲染杂谈:early-z、z-culling、hi-z、z-perpass到底是什么?
之前一直被这几个和深度缓存(z-buffer)相关的概念搞得神魂颠倒.今天在翻阅<Real-Time Rendering>时碰巧碰巧看到了这部分的讲解.硬着头皮看了看,姑且算是讲几个概念分 ...
- go环境搭建及tjfoc-gm安装
go环境搭建及tjfoc-gm安装 一.环境配置 1 首先进入usr/local文件夹,下载go语言环境配置压缩包 wget https://dl.google.com/go/go1.19.3.lin ...
- Kubernetes基础配置管理
一.ConfigMap创建 1-1.基于目录创建ConfigMap 首先创建一个configmap/conf存储目录,分别建立.conf文件 mkdir /configmap/conf #创建.con ...
- Day 11 11.1 Xpath解析
xpath解析 xpath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势,在网页分析上使re退居二线. ...
- 2019-2020-1 20199318《Linux内核原理与分析》第十一周作业
<Linux内核原理与分析> 第十一周作业 一.预备知识 什么是ShellShock? Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全 ...
- linux查看是实体机还是虚拟机
1.判断虚拟机三种方式 1.dmesg|grep -i hypervisor [root@localhost ~]# dmesg|grep -i hypervisor [ 0.000000] Hype ...