mysql命令总结

1、sql命令: 用于清空某表的数据,且让自增的id重新从0开始:

在navicat右键数据库名---》命令列界面输入:truncate table 表名  ;

2、truncate,drop,delete的区别:

相同点

  1. truncate和不带where语句的delete以及drop语句都可以删除表内数据。
  2. truncate和drop是数据库定义语言(DDL),执行后事务自动提交生效。

不同点:

  1. truncate和delete只删除表的数据不会删除表的结构,drop则会删除表的结构。
  2. delete是数据库操作语言(DML),执行后需要提交事务才会生效。
  3. delete不影响表的高水线,通俗来说就是表的主键id不受影响,如12345删除后再插入就是从6开始。
  4. truncate会将高水线复位,也就是主键id会重新从头开始。
  5. drop会释放整个表的空间。
  6. 速度方面:drop>truncate>delete
  7. 安全性方面:谨慎使用truncate和drop,因为自动提交,很恐怖哦,删了就没咯,当然,要是删除表就用drop,删除部分字段的话就用delete,要是值只删除数据不动结构,那就是使用truncate加上reuse stroage(再利用存储)。
  8. 另外,如果存在外键约束引用的表,要用不带where的delete语句。

3.清空某一列数据

update tablename set colunm =null;

4.mysql表锁死

MySQL如果频繁的修改一个表的数据,那么这么表会被锁死。造成假死现象。

比如用Navicat等连接工具操作,Navicat会直接未响应,只能强制关闭软件,但是重启后依然无效。

解决办法:

首先执行:show full processlist;  //列出当前的操作process,一般会看到很多waiting的process,说明已经有卡住的proces了,我们要杀死这些process!!

再执行:

kill processid;  //processid表示process的id,比如kill 3301,就会将id为3301的process杀死。

使用 kill 将所有的 id 杀死。然后重启MySQL,解决.

5.新增表字段(含注释)

示例:给city表新增城市经纬度字段

 -- ----------------------------
-- Add column for `city`
-- ----------------------------
ALTER TABLE `city` ADD `longitude` VARCHAR(255) NULL COMMENT '城市经度'
,ADD `latitude` VARCHAR(255) NULL COMMENT '城市纬度';
-- ----------------------------
-- Records of city
-- ----------------------------

6.MySQL统计同一字段不同值数量并根据另一字段分组 

SELECT
        count(*) AS fam2 
    FROM
        (
        SELECT
            sum( CASE rufm.role WHEN 'MEMBER' THEN 1 ELSE 0 END ) AS num 
        FROM
            report_user_family_member rufm 
        WHERE
            rufm.source_data_delete_flag = 0 
            and rufm.user_join_date < '2019-11-31 23 : 59 : 59'
        GROUP BY
            rufm.family_account_no 
        ) t1 
    WHERE
        t1.num = 1 

附:windows安装sql5.7:https://www.jianshu.com/p/a41d45890ab2 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值