MySQL - 多表查询和事务
2018-06-25 本文已影响40人
sunboximeng
表的嵌套与查询的嵌套。
select * from 表名1,表名2;
就执行了表的嵌套运算,结果的总行数就是两个表的行数的乘积。但是只有一部分组合有意义,筛选办法:内连接和外链接。
内连接:
- 连接条件写在where里面
语法:select 字段列表 from 表名1,表名2 where 条件(表名1某字段 = 表名2某字段)
在from里面给表起别名,select里面是给列起别名。空格隔开即可。
表的连接也写在from里面 - 连接条件写在on里面
语法:select 字段列表 from 表名1 join 表名2 on 条件(表名1某字段 = 表名2某字段)
外连接
- 语法比内连接只多一个关键字
- left 表示保留左表的所有数据,right 表示保留右边。
- 语法:
select 字段列表 from 表1 left join 表2 on 条件;
子查询
- 典型应用:查询聚合函数MAX对应的行数据。
- 子查询的结果不同,嵌套的位置也不同。
- 结果是一个值:放在 where 的比较运算里面
- 结果是一列:放在 where 的 in(集合)里面
- 结果是一个表 :放在from里面
事务
把基本操作封装成一个整体,这些基操要么全部成功,要么全部失败,以解决并发访问的问题。
事务的四大特征:
- 原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败。
- 持久性:当事务提交或回滚后,数据库会持久化的保存数据。
- 一致性:事务操作前后,数据总量不变
- 隔离性:多个事务之间。相互独立。分为不同的隔离级别。
(格尺一元)