MySQL中like,limit,union及union all查询

2023-01-19 15:15:29

sql 语句中 like 的用法

%:表示包含零个或多个字符的任意字符串

  • like'Mc%' :将搜索以字母 Mc 开头的所有字符串,如 McBadden
  • like'%inger' :将搜索以字母 inger 结尾的所有字符串,如 RingerStringer
  • like'%en%' :将搜索在任何位置包含字母 en 的所有字符串,如 Bennet、Green、McBadden

_ :表示任意单个字符

  • like'_heryl' 将搜索以字母 heryl 结尾的所有二十六个字母的名称,如 Cheryl、Sheryl

* :表示多个字符

  • c*c 代表 cc,cBc,cbc,cabdfec 等多个字符

?:代表单个字符

  • b?b 代表 brb,bFb

sql 语句中的 limit 用法

limit 有一个参数值时

-- limit 只有一个参数值,会将表中的前三条数据查询出来
select * from product limit 3;

limit 有两个参数值时

-- 第一个参数表示从第几行数据开始查,第二个参数表示查几条数据
-- limit 3,2 表示从第四行数据开始,取两条数据 
select * from product limit 3, 2;

unionunion all

union 用于把多个 select 语句的结果组合到一个结果集合中

select  column,......from table1
union 或者 union all
select  column,...... from table2

unionunion all 区别

  • 当使用 union 时,mysql 会把结果集中重复的记录过滤掉
  • 使用 union allmysql 会把所有的记录返回,且效率高于 union

union 子句中使用 order by

子句中使用 ORDER BY,即将 SELECT 子句的结果先排序,然后再把这些子句查询的结果进行组合。在子句中使用 ORDER BY,由于优先级问题,需要将整个子句加圆括号(),且必须与 LIMIT 结合使用

(SELECT aid,title FROM article ORDER BY aid DESC LIMIT 10) 

UNION ALL

(SELECT bid,title FROM blog ORDER BY bid DESC LIMIT 10)

union 整句中使用 order by

如果想使用 ORDER BYLIMIT 来对全部 UNION 结果进行分类或限制,则应对单个 SELECT 语句加圆括号,并把 ORDER BYLIMIT 放到最后一个的后面

(SELECT aid,title FROM article) 

UNION ALL

(SELECT bid,title FROM blog) ORDER BY aid DESC

uniion 使用 limit

UNION 中使用 LIMIT 用于限制返回的记录条数,如果对 SELECT 子句做限制,需要对 SELECT 添加圆括号

(SELECT aid,title FROM article LIMIT 2) 

UNION ALL

(SELECT bid,title FROM blog LIMIT 2)

当需要对整个 UNION 的结果进行 LIMIT 限制时,建议将各个 SELECT 语句用圆括号括起来

(SELECT aid,title FROM article) 

UNION ALL

(SELECT bid,title FROM blog)

LIMIT 2

自增主键与 UUID 主键或雪花 id 的区别

UUID 主键或雪花 id

优点

  • 能确保唯一,绝对不会重复
  • 可以在 Java 应用层中生成,提高数据库的吞吐量
  • 安全性较高

缺点

  • 它占用的存储空间比自增主键要大一倍
  • 在大数据量的查询,插入时,比起自增主键,它会大大降低效率

自增主键

优点

  • 存储空间很小
  • 性能较好
  • 适合大量数据中的插入和更新操作

缺点

  • 安全性较低,因为是有规律的,能被非法获取
  • 如果数据量特别大,可能会超出自增长的取值范围

区别

  • 当查询,插入数据量是上百万时,自增主键的效率远远大于 uuid 主键
  • 在存储上面,自增主键所占的存储空间是 uuid 主键的一半

二者使用场景

  • 项目是分布式的,并且数据量达到千万级别可更高时,对速度和存储有要求时,可以用自增长主键
  • 项目是单机的,并且数据量比较大(百万级)时,用自增长主键的,此时最好能考虑下安全性,做些安全措施
  • 项目是单机版,并且数据量没那么大,对速度和存储要求不高时,用 UUID 主键
  • 作者:桐花思雨
  • 原文链接:https://blog.csdn.net/weixin_38192427/article/details/115304824
    更新时间:2023-01-19 15:15:29