美文网首页
温故知新-MYSQL-一些查询技巧

温故知新-MYSQL-一些查询技巧

作者: gao922699 | 来源:发表于2022-07-28 09:06 被阅读0次

查询表里的重复值:

SELECT 
    first_name, COUNT(first_name),
    last_name,  COUNT(last_name),
    email,      COUNT(email)
    FROM contacts 
    GROUP BY first_name , last_name , email
    HAVING  COUNT(first_name) > 1
    AND COUNT(last_name) > 1
    AND COUNT(email) > 1;

查询两个表里的差异值:

SELECT id,title FROM (
    SELECT id, title FROM t1
    UNION ALL
    SELECT id,title FROM t2) AS tbl
    GROUP BY id, title 
    HAVING count(*) = 1
    ORDER BY id;

UUID()和自增INT主键的对比

优点

使用UUID作为主键具有以下优点:

  • UUID值在表,数据库甚至在服务器上都是唯一的,允许您从不同数据库合并行或跨服务器分发数据库。

  • UUID值不会公开有关数据的信息,因此它们在URL中使用更安全。例如,如果ID10的客户通过URL: http://www.example.com/customers/10/ 访问他的帐户,那么很容易猜到有一个客户11,12等,这可能是攻击的目标。

  • 可以在避免往返数据库服务器的任何地方生成UUID值。它也简化了应用程序中的逻辑。 例如,要将数据插入到父表和子表中,必须首先插入父表,获取生成的id,然后将数据插入到子表中。通过使用UUID,可以生成父表的主键值,并在事务中同时在父表和子表中插入行。

缺点

除了优势之外,UUID值也有一些缺点:

  • 存储UUID值(16字节)比整数(4字节)或甚至大整数(8字节)占用更多的存储空间。

  • 调试似乎更加困难,想像一下WHERE id ='9d6212cf-72fc-11e7-bdf0-f0def1e6646c'WHERE id = 10那个舒服一点?

  • 使用UUID值可能会导致性能问题,因为它们的大小和没有被排序。

复制表数据

老表数据复制到新表

CREATE TABLE new_table 
SELECT col1, col2, col3 
FROM
    existing_tableWHERE
    conditions;

正则查询

REGEXP/NOT REGEXP

SELECT 
    column_list
    FROM
    table_name
    WHERE
    string_column REGEXP pattern;

获取第N个最高纪录

SELECT * FROM table_name ORDER BY column_name DESC LIMIT n - 1, 1;

NULL值替换

SELECT customername, 
       IFNULL(state,"N/A") state, 
       countryFROM customersORDER BY country;

相关文章

  • 温故知新-MYSQL-一些查询技巧

    查询表里的重复值: 查询两个表里的差异值: UUID()和自增INT主键的对比 优点 使用UUID作为主键[htt...

  • 温故知新-MYSQL-一些查询技巧(二)

    通过出生年月查询平均年龄 case when 语法查询分类信息 根据时间(日期)分组查询 存储的为时分秒,要按照天分组

  • MYSQL-索引

    MYSQL-索引 概述 用来加快查询的技术很多,其中最重要的是索引。通常索引能够快速提高查询速度。如果不适用索引,...

  • MySql-多表查询

    多表查询分为以下几种: 合并结果集: UNION UNION ALL 连接查询 ...

  • mysql-查询2

    分组查询 group by group by 属性名 [having 条件表达式][ with rollup] “...

  • mysql-查询3

    1.limit限制查询结果条数 1)不指定起始位置 limit 记录数 记录数超过查询结果则显示所有的记录,不会报...

  • mysql-查询1

    1.基本查询语句 select 属性列表 from 表名和视图列表 [where 条件表达式1] [group b...

  • mysql-查询优化

    ref : http://coolshell.cn/articles/1846.html 为查询缓存优化你的查询大...

  • mysql-子表查询

    子查询是将一个查询语句嵌套在另一个查询语句之中。 子查询的结果可为外层查询提供一个范围 子查询中可以包含:IN、N...

  • MYSQL-子查询

    子查询是一个查询语句嵌套在另一个查询语句中。内层查询语句的结果,可以为外层查询语句提供查询条件。 子查询关键字:i...

网友评论

      本文标题:温故知新-MYSQL-一些查询技巧

      本文链接:https://www.haomeiwen.com/subject/bnpoirtx.html