likes
comments
collection
share

MySQL常用语句

作者站长头像
站长
· 阅读数 12
  1. SQL执行语句顺序:select –>where –> group by–> having–>order by

  2. UNION【ALL】:

  3. 使用 UNION可以实现将多个查询结果集合并为一个结果集。

    1. ALL:表示在结果几种不去除重复的记录
    2. 没有指定ALL:去除合并后结果集中重复的记录
    3. 所有查询语句中列的个数和列的顺序必须相同。
    4. 所有查询语句中对应列的数据类型必须兼容。
    5. ORDER BY语句要放在最后一个查询语句的后边。
  4. 时间处理:

    1. YEAR/MONTH函数等
    2. date_format()函数:date_format(date, "%Y-%m")="202108"
    3. day(last_day(xxxx))  当前月份中有多少天:
    4. last_day()函数:返回月份中的最后一天。
  5. 模糊匹配:

    1. like _ 单个

    2. like %多个

    3. 正则:regexp

    4. instr(M,S) M 模板串,S子串; 返回结果:<= 0不存在,> 0存在

    5. like模糊匹配多个

      1. like %xxx%xxx%
      2. like %xxx% and like %yyy%
  6. 联结:

    1. 内联结:inner join。取两列的交集。

    2. 外联结:

      1. left join:左连接,以左边表的列为主,取两列的交集,对于不在右边列存在的名称取null。
      2. right join:右连接,以右边表的列为主,取两列的交集,对于不在左边列存在的名称取null。
  7. 统计(count函数)

    1. count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL
    2. count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL
    3. count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计。
  8. 数据更新或插入(replace )

    1. 通过主键 / 唯一索引,先删除源数据(若存在),再插入数据(格式与insert into相似)
    2. replace into:有就覆盖,没有就插入
  9. timestampdiff函数

    1. TIMESTAMPDIFF(interval, time_start, time_end)可计算time_start-time_end的时间差,单位以指定的interval为准,常用可选:
      1. SECOND 秒
      2. MINUTE 分钟(返回秒数差除以60的整数部分)
      3. HOUR 小时(返回秒数差除以3600的整数部分)
      4. DAY 天数(返回秒数差除以3600*24的整数部分)
      5. MONTH 月数
      6. YEAR 年数
  10. 删除数据:

    1. 根据条件删除:DELETE FROM tb_name [WHERE options] [ [ ORDER BY fields ] LIMIT n ]
    2. TRUNCATE tb_name:全部删除(表清空,包含自增计数器重置)
  11. 添加列

    1. alter table 表名 add column 列名 类型 【first|after 字段名】;
  12. 修改列的类型或约束

    1. alter table 表名 modify column 列名 新类型 【新约束】;
  13. 修改列名

    1. alter table 表名 change column 旧列名 新列名 类型;
  14. 删除列

    1. alter table 表名 drop column 列名;
  15. 修改表名

    1. alter table 表名 rename 【to】 新表名;
  16. 将某一列放到第一列

    1. alter table 表名 modify column 列名 类型 first;
  17. 删除表

    1. drop table【if exists】 表名;
  18. 复制表结构

    1. create table 表名 like 旧表;
  19. 复制表的结构+数据

    1. create table 表名
    2. select 查询列表 from 旧表【where 筛选】;
  20. 四舍五入(ROUND)

    1.ROUND(X),返回参数 X 最近似的整数

    2.ROUND(X,D),返回 X ,其值保留到小数点后 D 位,第 D 位的保留方式为四舍五入