MySQL 常用操作

Author Avatar
yyq 2020-04-24 14:23:22
  • 二维码

    常用mysql命令记录,免得找啊找还是找不到

    

    NO1: 批量替换字段内的部分值

    UPDATE table1 SET aaa=REPLACE(aaa, 'mmm','nnn');

    说明:将表table1 内的字段aaa包含的'mmm'替换为'nnn';


    NO2:去除某个字段重复的数据

    DELETE FROM table1 WHERE id NOT IN (SELECT id FROM (SELECT MIN(id) AS id FROM table1 GROUP BY uip) AS b );

    说明:额,删除表table1内主键id 字段为uip内重复的数据;


    NO3:新建存储过程,定时在零点清空副表所有数据,执行命令如下:

    a:  USE mysql   (操作的数据库)

        DELIMITER &&   (以&&为结束符)

        CREATE PROCEDURE del()  (创建函数)

        BEGIN

        DELETE FROM table1;(数据操作 清空表)

        END &&

        DELIMITER ;  (还原结束符)


    b:  CREATE EVENT IF NOT EXISTS event_del 

        ON SCHEDULE EVERY 5 MINUTE    (每五分执行一次,此处可自行设置)

        ON COMPLETION PRESERVE

        DO CALL del();


    c:开启计时器(此处可在数据库配置文件my.cnf中添加event_scheduler=ON。否则mysql重启事件又会回到原来的状态了)

       临时开启执行命令为:

       SET GLOBAL event_scheduler=ON;


    NO4:查询时间戳 

        当日零点:UNIX_TIMESTAMP(CURDATE())

        昨日零点:UNIX_TIMESTAMP(CURDATE()) - 86400


    NO5:删除表内某一字段重复数据(删除表名为tab_name内字段为xxx的重复数据)

        DELETE FROM tab_name

        WHERE id NOT IN (

        SELECT temp.min_id FROM (

        SELECT MIN(id) min_id FROM tab_name

        GROUP BY xxx

        )AS temp

        );

        SELECT * FROM tab_name;


    NO6:清空数据库内表中所有数据,以数据库'testtab'为例:

        select CONCAT('truncate TABLE ',table_schema,'.',TABLE_NAME, ';') from INFORMATION_SCHEMA.TABLES where  table_schema in ('testtab');

        执行后将生成如下形式语句:truncate table testtab.xxx;将所有语句拷贝到命令输入处执行即可


    NO7:删除数据库内所有表,以数据库'testtab'为例:

        drop database if exits testtab;

        create database testtab;


    NO8:设置表ID自动起始值

        ALTER TABLE table_name AUTO_INCREMENT=1

上一篇 返回列表 下一篇

发表评论

Tips:评论内容请文明用语