• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
闫乐柠
博客园    首页    新随笔    联系   管理    订阅  订阅
MySQL事务+关联查询、连接查询(连接)

事务的ACID特性:

 原子性(Atomicity) :要么执行要么不执行

 一致性(Consistency):事务前后保持一致

 隔离性(Isolation) :某个事务的操作对其他事务不可见的

 持久性(Durability):当事务提交完成后,其影响应该保留下来,不能撤销

用法:

  开启事务: start transaction;或者 begin;

  保存原点:savepoint p1;

      (读档: 时间点只能向前返回,不能向后)

       rollback to p1; 回滚到p1位置

  提交事务:commit;

  提交/回滚:commit / rollback

回滚的限制:

  1.  truncate清空的表rollback无法回滚
  2.  对于修改表结构的语句无法回滚
  3.  回滚不支持DDL语句,

 DDL语句:数据库定义语言(部分DDL语句会造成隐式提交)

 

数据库的隔离级别:脏读,不可重复读,幻读

权限与安全: 

访问: GRANT USER '访问的用户名'@'IP地址' IDENTIFIED BY '123'

    GRANT SELECT ON  *.*  TO admin@localhost

 

  关联查询、连接查询

连接类型:

  外连接:OUTER JOIN

  内连接:INNER JOIN(保存共同字段)

  右连接:RIGHT JOIN

  左连接:LEFT JOIN

        自连接:当table1和table2本质上是同一张表,只是用取别名的方式虚拟成两张表以代表不同的意义说明

  全外连接:FULL JOIN(mysql不支持,可以用 left join union right join代替)

 

笛卡尔积 :

      将两(或多)个表的所有行进行组合,连接后的行数为两(或多)个表的乘积数.

   (缺少关联条件 或 者关联条件不准确 时出现)

 

关联条件

连接的约束条件:where、on、using

where:适用于所有的关联查询

on:只能和join一起使用,只能写关联条件。可以在where中和其他条件一起写,但是分开可读性更好

using:只能和join一起使用。并且要求两个关联字段在关联表中的名称一致,而且只能表示关联字段值相等

SELECT 字段1,字段2 FROM 表1 INNER JOIN 表2 USING(eid);

内连接:

分类:显式的和隐式的,返回连接表中符合连接条件和查询条件的数据行

# 隐身:
SELECT 字段名 from 表1,表2 where 条件
# 显式
SELECT [cols_list] from 表1 INNER JOIN 表2 ON [关联条件] where 条件
SELECT [cols_list] from 表1 CROSS JOIN 表2 ON [关联条件] where 条件
SELECT [cols_list] from 表1 JOIN 表2 ON [关联条件] where 条件

外连接:(左右,全外)

左外连接(LEFT OUTER JOIN)

    返回左表中的所有行,如果左在右没有匹配到行,则结果在右表中返回空值

右外连接(RIGHT OUTER JOIN)

   返回右表中的所有行,如果右在左没有匹配到行,则结果在左表中返回空值

 

union:将两个查询结果直接拼接成一个大结果(两边格式要相同-长度、字段)

 

 

 

 

 

 

 

 

 

 

 

posted on 2020-10-21 19:26  闫乐柠  阅读(223)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3