数据库关联查询

内连接查询(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查询和事务的更多相关文章

  1. MySQL的ALTER变更、正则查询、分组查询、排序查询以及事务查询的概

    MySQL的表和字段信息的变更 ALTER TABLE table-name DROP column-name; #删除某个字段 ALTER TABLE table-name ADD column-n ...

  2. MySQL多表查询、事务、DCL:内含mysql如果忘记密码解决方案

    MySQL多表查询.事务.DCL 多表查询 * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE dept( id ...

  3. MySql多表查询_事务_DCL(资料三)

    今日内容 1. 多表查询 2. 事务 3. DCL 多表查询: * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE ...

  4. 【mysql】关于事务的隔离级别

    一.锁的种类 MySQL中锁的种类很多,有常见的表锁和行锁,也有新加入的Metadata Lock等等,表锁是对一整张表加锁,虽然可分为读锁和写锁,但毕竟是锁住整张表,会导致并发能力下降,一般是做dd ...

  5. MySQL数据库的事务管理

    当前在开发ERP系统,使用到的数据库为Mysql.下面介绍下如何开启事务,以及事务隔离的机制 : 1. 检查当前数据库使用的存储引擎. show engines; 2. 修改前my.ini中的文件如下 ...

  6. MySQL存储过程之事务管理

    原文链接:http://hideto.iteye.com/blog/195275 MySQL存储过程之事务管理 ACID:Atomic.Consistent.Isolated.Durable 存储程序 ...

  7. mysql中不同事务隔离级别下数据的显示效果--转载

    事务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查询语句因为崩溃或其他原因而无法执行,那么所有的语句就都 ...

  8. 浅谈mysql中不同事务隔离级别下数据的显示效果

    事务的概念 事 务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查 询语句因为崩溃或其他原因而无法执行,那 ...

  9. Mysql 查询缓存总结

    Mysql 查询缓存总结 MySQL查询缓存解释 缓存完整的SELECT查询结果,也就是查询缓存.保存查询返回的完整结果.当查询命中该缓存,mysql会立刻返回结果,跳过了解析.优化和执行阶段, 查询 ...

  10. 事务,Oracle,MySQL及Spring事务隔离级别

    一.什么是事务: 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 二.事务特性(4种): 原子性 (atomicity):强调事务的不可分割:一致性 (consiste ...

随机推荐

  1. NSQ(6)-nsq相关策略

    1:nsq的流量控制 RDY 消息中间件的实现无非两种套路,一种让客户端pull,典型的比如kafka便是如此,而另一种则是push,也就是让客户端不需要做任何操作,只需要做好conn便可以源源不断收 ...

  2. openwrt通过gre回源

    创建  ip tunnel add GRE网卡名 mode gre local 本地LAN IP remote SERVER LAN IP ttl 255  ip link set GRE网卡名 up ...

  3. windos下激活python虚拟环境

    1.从终端中找到解释器的目录 2.cd到Scripts,输入激活命令activate  这样就表示激活成功了

  4. How to Avoid Trivial Solutions in Physics-Informed Neural Networks

    未发表(2021) 本文也是关注采样点的一篇工作.主要从PINN的性能与采样点数量的关系方面入手考虑.提出了一个新的惩罚项,并对采样策略提出了一点看法. 本文的工作相对比较直观,简单,效果可能并不是很 ...

  5. 渲染杂谈:early-z、z-culling、hi-z、z-perpass到底是什么?

    之前一直被这几个和深度缓存(z-buffer)相关的概念搞得神魂颠倒.今天在翻阅<Real-Time Rendering>时碰巧碰巧看到了这部分的讲解.硬着头皮看了看,姑且算是讲几个概念分 ...

  6. go环境搭建及tjfoc-gm安装

    go环境搭建及tjfoc-gm安装 一.环境配置 1 首先进入usr/local文件夹,下载go语言环境配置压缩包 wget https://dl.google.com/go/go1.19.3.lin ...

  7. Kubernetes基础配置管理

    一.ConfigMap创建 1-1.基于目录创建ConfigMap 首先创建一个configmap/conf存储目录,分别建立.conf文件 mkdir /configmap/conf #创建.con ...

  8. Day 11 11.1 Xpath解析

    xpath解析 xpath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势,在网页分析上使re退居二线. ...

  9. 2019-2020-1 20199318《Linux内核原理与分析》第十一周作业

    <Linux内核原理与分析> 第十一周作业 一.预备知识 什么是ShellShock? Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全 ...

  10. linux查看是实体机还是虚拟机

    1.判断虚拟机三种方式 1.dmesg|grep -i hypervisor [root@localhost ~]# dmesg|grep -i hypervisor [ 0.000000] Hype ...