MySQL 常用语句


MySQL 常用语句

sql-join
mysql常用sql语句总结

修改替换字段中的某一个值

update dictionary set content=REPLACE(content, '谭', '谈');
update recipes set item_image=REPLACE(item_image,'http://app-file.botu.com:9000','http://app-file.botu.com:9000/BOTU')
where id in (select rec.id from (select id from recipes r where  binary r.item_image not like '%BOTU%') rec);

清空表数据

truncate table dictionary; -- 清空自增主键
delete from dictionary;    -- 不清空自增主键

NULL查询

select * from tmp where name is not null;
select * from tmp where name is null;

根据表结构生成实体对应字段

SELECT
    CONCAT_WS(
        '',
        '/**
         *',
         COLUMN_COMMENT,
         '
         */
         @TableField("',column_name,'")
         @JSONField(name = "',column_name,'")
         private ',
        CASE DATA_TYPE
    WHEN 'varchar' THEN
        'String '
    WHEN 'bigint' THEN
        'Long '
    WHEN 'longtext' THEN
        'String '
    WHEN 'datetime' THEN
        'Date '
    WHEN 'int' THEN
        'Integer '
    WHEN 'decimal' THEN
        'BigDecimal '
    WHEN 'double' THEN
        'Double '
    WHEN 'timestamp' THEN
        'Timestamp '
    WHEN 'longblob' THEN
        'Byte[] '
    WHEN 'tinyint' THEN
        'Integer '
    WHEN 'text' THEN
        'String '
    WHEN 'char' THEN
        'Char '
    WHEN 'date' THEN
        'Date '
    WHEN 'float' THEN
        'Float '
    WHEN 'varbinary' THEN
        'Byte[] '
    WHEN 'mediumtext' THEN
        'String '
    WHEN 'enum' THEN
        'String '
    WHEN 'blob' THEN
        'Byte[] '
    WHEN 'set' THEN
        'String '
    WHEN 'time' THEN
        'Time '
    WHEN 'smallint' THEN
        'Integer '
    WHEN 'tinytext' THEN
        'String '
    WHEN 'binary' THEN
        'Byte[] '
    WHEN 'bit' THEN
        'Boolean '
    END,
    column_name,
    ';'
    )
FROM
    information_schema.`COLUMNS`
WHERE
    TABLE_SCHEMA = 'life_health'
AND TABLE_NAME = 'health_exp'; 

表操作

增加与修改列

Alter table 表名 add 列名称 列类型 列参数; [加的列在表的最后]
例: alter table m1 add birth date not null default '0000-00-00';

Alter table 表名 add 列名称 列类型 列参数 after 某列; [把新列加在某列后]
例: alter table m1 add gender char(1) not null default '' after username;

Alter table 表名 add 列名称 列类型 列参数 first; [把新列加在最前面]
例: alter table m1 add pid int not null default 0 first;

删除列

Alter table 表名 drop 列名;

修改列类型

Alter table 表名 modify 列名 新类型 新参数; (不能修改列名);
例:alter table m1 modify gender char(4) not null default '';

修改列名及列类型

Alter table 表名 change 旧列名 新列名 新类型 新参数;
例:alter table m1 change id uid int unsigned;

改表名

rename table regist3 to reg3;

删除表

DROP TABLE IF EXISTS `dictionary`;

常用查询

SELECT * FROM sensitive_word_condition a WHERE a.count < 11 ORDER BY a.count DESC LIMIT 1;

MySQL 5.7查询一段时间内最后一条数据

mysql 升级到5.7之后,存储引擎做了一些优化,之前我们使用的 先order by 再 group by 的方式取最后一条数据的查询,会出现取的不是最后一条记录的问题

为了实现原有查询逻辑,请在子查询后面,加上limit 9223372036854775807
其中,9223372036854775807为bigint的最大值

SELECT
    *
FROM
    (
        SELECT
            e.*,
            DATE_FORMAT(`update_date`, '%Y-%m-%d') AS edt
        FROM
            health_exp e
        WHERE
            update_date BETWEEN '2018-02-01'
        AND '2018-02-06 23:23:59'
        AND user_id = '2baef230bad144e89296c2c51fa2b680'
        ORDER BY
            update_date DESC
        LIMIT 9223372036854775807
    ) t
GROUP BY
    t.edt;

文章作者: 小张哥
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小张哥 !
评论
 上一篇
Spring Cloud Eureka 注册中心 Spring Cloud Eureka 注册中心
什么是Spring CloudSpring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Sprin
2019-03-17
下一篇 
Vertica 分析函数 Vertica 分析函数
分析函数作为 SQL 言语的一种扩展已经被纳入了美国国家标准化组织SQL 委员会的SQL 规范说明书中。所以不同数据库厂商支持的分析函数其语法结构和函数名称也基本一致。这里仅介绍Vertica的的分析函数语法和函数作用,应用函数相关例子略。
2019-03-14
  目录