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

     

     

     

  • 相关阅读:
    HDU 1561 The more, The Better 经典树形DP
    hdu Anniversary party 树形DP,点带有值。求MAX
    hdu 3466 Proud Merchants 01背包变形
    一个简单的网站首页制作
    linux系统下who&who am i与whoami的区别,以及与select * from dba_users的区别
    linux系统下who&who am i与whoami的区别,以及与select * from dba_users的区别
    如何通过SecureCRTPortable.exe 软件远程连接某个计算机(或者虚拟机)中的某个数据库
    如何通过SecureCRTPortable.exe 软件远程连接某个计算机(或者虚拟机)中的某个数据库
    主键自增长
    主键自增长
  • 原文地址:https://www.cnblogs.com/yanlening/p/13854105.html
Copyright © 2020-2023  润新知