MySQL多表查询

本文详细介绍了MySQL中的多表查询,包括内连接、外连接和子查询,并讲解了数据库事务的概念,强调了事务的原子性、一致性、隔离性和持久性特点,以及不同隔离级别的效果。
摘要由CSDN通过智能技术生成

多表查询分类:

多表查询分类三种
1)内连接
    隐式内连接---看不到join关键字,使用where条件
内连接之隐式内连接 :select 字段列表 from 表名名1,表名名2 where  连接条件 ;
    显示内连接---inner join 关键字
    select 字段列表 from 表名名1 inner join 表名名2   on 连接条件;
2)外连接
    左外连接:将左边表数据以及满足两种表条件的数据全部展示;
    语法:select 字段列表 from 表名1  left outer join 表名2  on 连接条件   
    outer可以省略
    右外连接
3)子查询:select 语句嵌套select语句,
      常用where条件使用比较运算符
      或者使用in集合语句
      或者使用一条select语句的结果作为一个"虚表"和其他表查询

 数据库事务:

 事务:就是当前整个业务操作同时要执行多个sql或者多张表的sql的时候,使用事务
     将业务整体管理起来,要么这个多个sql同时执行成功,要么同时执行失败
     -- 原子性:使用事务管理的业务操作(执行多个sql),要么同时执行成功,要么同时失败
     -- 一致性:在事务管理的业务操作过程中,执行之前和执行之后它的数量总量不变
     -- 隔离性:业务和业务之间是独立,业务又需要被事务管理,事务和事务之间是独立的,相互之间不影响,分离开来!
     -- 持久性:针对增删改操作,只要提交事务,即使关机了,数据永久保存!
     事务的隔离级别四种:分别从小到大,安全性(从低到高),执行效率(从高到低)

 read uncommitted;  读未提交, 会导致最严重的问题 "脏读"(一个事务读到另一个没有提交事务)
 read committed ;   读已提交,可以有效防止脏读,但是会现在一个问题"不可重复读"(在提交事务之前和事务,数据不一致!)
 repeatable read ;  可重复读(mysql默认隔离级别) , 可以有效防止脏读以及不可重复读,会出现"幻读"
 serializable ; 串行话  级别最高,安全性最高,效率低!

 

-- 部门表
CREATE TABLE dept (
  id INT PRIMARY KEY PRIMARY KEY,
  -- 部门id
  dname VARCHAR (50),
  -- 部门名称
  loc VARCHAR (50) -- 部门所在地
) ;

-- 添加4个部门
INSERT INTO dept (id, dname, loc) 
VALUES
  (10, '教研部', '北京'),
  (20, '学工部', '上海'),
  (30, '销售部', '广州'),
  (40, '财务部', '深圳') ;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值