• [sql] 同库表(结构)的备份和sql聚合&navicat使用


    同库表的备份-赋值表结构和数据SQL语句

    参考

    有时候我们处理某个表时,需要先备份下这个表到当前这个库,然后再执行sql. 站在sql角度,就无需在mysqldump或者诸如导出sql的方式来备份了. 同库表的备份更简单

    1.复制表结构及数据到新表

    CREATE TABLE 新表 SELECT * FROM 旧表
    

    2.只复制表结构到新表

    CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
    即:让WHERE条件不成立.
    
    方法二:(由tianshibao提供)
    
    CREATE TABLE 新表 LIKE 旧表
    

    3.复制旧表的数据到新表(假设两个表结构一样)

    INSERT INTO 新表 SELECT * FROM 旧表
    

    4.复制旧表的数据到新表(假设两个表结构不一样)

    INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表
    

    sql的autocommit

    参考
    执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。

    mysql> set autocommit=0;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql>  show variables like "autocommit";
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | autocommit    | OFF   |
    +---------------+-------+
    
    

    使用navicat需要特别注意两点

    • 有一点特别需要注意, 我发现如果navicat登录后首句执行的不是set autocommit = 0; 则会自动autocommit,即使你第二句设置了auto,对于这个会话也不生效了.
    • 第二点是autocommit是针对会话的.

    navicat快捷键

    4.ctrl+r           运行查询窗口的sql语句
    5.ctrl+shift+r   只运行选中的sql语句
    

    正确使用navicat的姿势

    SET autocommit = 0;
    
    CREATE DATABASE maotai;
    
    DROP DATABASE maotai;
    ROLLBACK; #如果我后悔了即可
    COMMIT;   #已确认sql没问题
    
    
    

    一般执行sql我都用navicat来搞,一方面便于核实结果复制给对方反馈,执行起来也顺手一些,因为写sql会有自动提示. ,在一方面他执行时候有快捷键

    mysql的事务

    事务时怎么回事呢?

    张三给李四转账500元。那么在数据库中应该是以下操作:
    
    1,先查询张三的账户余额是否足够
    
    2,张三的账户上减去500元
    
    3,李四的账户上加上500元
    
    以上三个步骤就可以放在一个事务中执行提交,要么全部执行要么全部不执行,如果一切都OK就commit提交永久性更改数据;如果出错则rollback回滚到更改前的状态。利用事务处理就不会出现张三的钱少了李四的账户却没有增加500元或者张三的钱没有减去李四的账户却加了500元。
    
    
    

    MyISAM与InnoDB引擎的区别

    InnoDB支持事务,MyISAM不支持
    InnoDB支持外键,MyISAM不支持
    

    sql聚合函数

    - 用sql语句做数据汇聚,查出status 和 对应的总数, 按照状态码总数来排序
    select status,sum(count) from log group by status;
    
    
  • 相关阅读:
    ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二)
    ASPxGridView之MasterDetail
    ASPxGridView子项动态邦定
    锐浪报表不能访问grf文件
    如何把string解析为int?[C#]
    今天你多态了吗?
    接口继承的声明问题 [C#, BCL]
    如何判断字符串是否为空串?[C#]
    尝鲜微软新桌面主题——Energy Blue
    JSON数据之使用Fastjson进行解析(一)
  • 原文地址:https://www.cnblogs.com/iiiiiher/p/8462933.html
Copyright © 2020-2023  润新知