zoukankan      html  css  js  c++  java
  • 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:将两个查询结果直接拼接成一个大结果(两边格式要相同-长度、字段)

     

     

     

  • 相关阅读:
    Oct 21st-
    ContextLoaderListener 解析
    HTTPS 证书制作及使用
    Spring MVC 源码分析
    思考
    《深入理解java虚拟机》 第七章虚拟机类加载机制
    《深入理解java虚拟机》第六章 类文件结构
    《深入理解java虚拟机》第三章 垃圾收集器与内存分配策略
    《深入理解java虚拟机》第二章 Java内存区域与内存溢出异常
    SSM-1第一章 认识SSM框架和Redis
  • 原文地址:https://www.cnblogs.com/yanlening/p/13854105.html
Copyright © 2011-2022 走看看