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 ...
随机推荐
- elasticsearch组件
elasticsearch组件 Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以前所未有的速度和规模,去探索你的数据. 它被用作全文检索.结构化搜索.分析以及这三个功能的组合 E ...
- Linux下hadoop和spark的基础环境配置准备
我使用了4台虚拟机centos7来搭建环境, 2个主结点(一般是一个,但为了体验zookeeper,万一其中一个master挂掉呢,另外一个会自动启动接管), 2个从结点 注意:下面的配置主要以主节点 ...
- 当前工程中typescritpt依赖包与依赖包中依赖包类型不一致如何解决
在开发中,遇到文件中引入webpack,但是webpack.ICompiler不一致的情况 //import webpack from 'webpack'; import webpackHot fro ...
- CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1.npm install -g increase-memory-limit 2.increase-memory-limit 3.重启解决
- Luogu7912
初中同学问我咋做,所以就写了一份题解. 先摆复杂度:均摊 \(O(n)\). 考虑,如果我们每次操作的复杂度都与输出量同阶,而输出量总量 \(O(n)\),则复杂度得到均摊. 于是我们现在要设计一个算 ...
- java第七周学习情况
这个星期 主要是在搞学校在暑期安排的实验报告b 怎么说来着 才知道这个消息几天 这是对学习不上心的体现啊 题目也有点多 慢慢做呗 而Java这边还是看些相关知识呗 说实话 已经学不太懂了 不过没关系 ...
- Centos 升级到指定内核
1. 准备阶段 下载安装包到进行升级服务器 wget -c https://acs-ecp.oss-cn-hangzhou.aliyuncs.com/rpm/kernel-4.19.1-rpm.tar ...
- Hbase 报错hbase Could not start zk requested port of 2181
windows下面 解决: 1. conf/hbase-env.cmd set HBASE_MANAGES_ZK=false 2. 先启动Hbase start-Hbase.cmd 再启动 zoo ...
- 手把手教你用Burpsuite+夜神模拟器抓安卓(Android 7)http+https包
(1)进入正题,bp证书下载(下载证书至电脑):打开bp,配置好代理,浏览器访问http://127.0.0.1:8080 下载证书,记住保存路径,注意别修改证书后缀(der)!!! (2)准备一个L ...
- 攻防世界Web进阶篇——NewsCenter
题目有一个搜索框,下面是搜索结果,最先考虑是sql注入 遇到sql注入,一般先用单引号,1,2尝试.先尝试构造输入为:sd' union select 1,2 #和sd' union select 1 ...