做网站大概要花多少钱,简易网站开发时长,山东已经宣布封城的城市2022年,wordpress 获得参数继续我的MySQL之旅#xff0c;继续上篇的DDL、DML、DQL、以及一些约束#xff0c;该到了多表查询和事务的学习总结#xff0c;以及相关的案例实现#xff0c;为未来的复习以及深入的理解做好知识储备。
目录
多表查询
连接查询
内连接
外连接 子查询
事务
事务简介… 继续我的MySQL之旅继续上篇的DDL、DML、DQL、以及一些约束该到了多表查询和事务的学习总结以及相关的案例实现为未来的复习以及深入的理解做好知识储备。
目录
多表查询
连接查询
内连接
外连接 子查询
事务
事务简介
事务操作
事务四大特征 多表查询
多表查询分为连接查询和子查询
连接查询
连接查询分为内连接与外连接
内连接
MySQL里把inner join 称为等值连接就是需要指定出来等值的连接条件inner join划分在一起
必须有等值条件内连接可能会丢失信息内连接是从结果表中删除与其他被连接表中没有匹配行的所有行重点内连接只会查询出来匹配行。
// 第一种只包含where 隐式内连接
select 字段列表 from 表1,表2... where 条件;
// 第二种join…on
SELECT * FROM table1 a JOIN table2 b on a.idb.id;
// 显式内连接 inner join ……on
SELECT * FROM table1 a inner join table2 b on a.idb.id;
-- 多表查询
-- 笛卡尔积
SELECTtb_goods.id,tb_order.id,tb_goods.title,tb_goods.price
FROMtb_goodsCROSS JOIN tb_order;-- 连接查询--内连接
-- 隐式内连接 相当于查询两个集合的交集
-- select 字段列表 from 表1表2…… where 条件
SELECTtb_goods.id,tb_order.id,tb_goods.title,tb_goods.price
FROMtb_goodsCROSS JOIN tb_order
WHEREtb_goods.id tb_order.id;-- 显示内连接
-- select 字段列表 from 表1 [INNER] join 表2 on 条件
SELECT*
FROMtb_goods aINNER JOIN tb_order b ON a.id b.id; 外连接 1. 左外连接 left inner join
左边为主表左边所有数据都显示右边显示相关联剩余的显示不关联的 null
-- 外连接
-- 左外连接
select * from tb_goods a left join tb_order b on a.id b.id;右外连接right inner join
右边为主表右边所有数据都显示左边显示相关联剩余的显示不关联的 null -- 右外连接
SELECT * from tb_goods a right join tb_order b on a.id b.id;子查询 概念 查询中嵌套查询称嵌套查询为子查询 子查询根据查询结果不同作用不同 单行单列、多行单列、多行多列几类 实质 查询之中嵌套着一个查询这个嵌套进去的查询
事务
数据库中的一种特性
事务简介
数据库的事务是一种机制、一个操作序列包含了一组数据库操作命令
事务把所有的命令作为一个整体一起向系统提交或撤销操作请求即这一组数据库命令要么同时成功要么同时失败
事务是一个不可分割的工作逻辑单元
python 中事务的提交不是自动的MySQL 的事务是自动提交的
事务操作
一共三个操作
-- 开启事务
start transaction;
// 或者 begin
-- 提交事务
commit;
-- 回滚事务
rollback;
事务四大特征
A C I D四大特性
原子性(Atomicity)事务是不可分割的最小操作单位要么同时成功要么同时失败
一致性(Consistency)事务完成时必须使所有的数据都保持一致状态
隔离性(lsolation)多个事务之间操作的可见性多个事件的独立性
持久性(Durability)事务一旦提交或回滚它对数据库中的数据的改变就是永久的
-- 1.查询事务的默认提交方式默认值为1自动提交手动为0
select autocommit;
-- 2.修改事务的提交方式为手动提交则执行下方修改代码后不会提交即是不存在永久改变
set autocommit 0;
-- 3.李四金额-500
update account set money money - 500 where name 李四;