加入收藏 | 设为首页 | 会员中心 | 我要投稿 衢州站长网 (https://www.0570zz.cn/)- 行业智能、建站、智能推荐、决策智能、CDN!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL教程之MySQL一些中重要命令

发布时间:2022-08-10 10:34:29 所属栏目:MySql教程 来源:互联网
导读:前言: 最近在面试的过程中,深感对MySQL一些重要命令的缺失。借着这个机会,补补这块的知识。不让自己只会增删查改,懂一些高级的东西 limit 用法 order by 用法 in 和 between的用法 join的用法 (一)limit用法 我们看下面的代码: 1 select id, name fro
  前言:
    最近在面试的过程中,深感对MySQL一些重要命令的缺失。借着这个机会,补补这块的知识。不让自己只会增删查改,懂一些高级的东西
 
  limit 用法
  order by 用法
  in 和 between的用法
  join的用法
   
 
  (一)limit用法
  我们看下面的代码:
 
   1 select id, name from table limit 5, 10
 
  一个简单的limit命令,limit m, n 代表从m+1个开始取n行数据,输出
 
  上面也就是从第六行开始,输出10行。也就是输出6-15行
 
  假设我们有如下表:
 
 
 
  数据大概为100W条数据。
 
   
 
  执行如下命令:
 
  1 select * from BookIndex limit 10, 10;
 
 
   
 
  用了0s,并且没有用索引。
 
  在执行如下命令:
 
  1 select * from BookIndex limit 1000000, 10;
 
 
  同样十条数据,却用了0.31秒。同样是全盘扫描。
 
  下面我用索引优化:
 
 
 
  用了0.17秒。 0.31/0.17  大概快了两倍左右吧。
 
  下面再次优化:
 
 
 
  0.00s,可以说快的不知一点两点的。
 
  记得用limit一定要用索引,并且如果m(偏移量)过大,先用where筛选一波数据出来在处理。
 
   
 
  (二)order by用法
 
 
  oder by 很是简单,而且是默认用了range索引。
 
  默认升序,可以加上desc变为降序。
 
   
 
  (三)in 和 between的用法
  我们可以从explain看出,不管是in还是between都是用了索引。
 
  而且between有一个强大的功能,和limit进行比较的时候。当偏移量较大,但取的数据量较小的时候,用between最为合适
 
  看一下的实验
 
 
 
   
 
 
 
  直接0.00s搞定,一点都不含糊。
 
   
 
  (四)join的用法
  JOIN: 如果表中有至少一个匹配,则返回行
  LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  FULL JOIN: 只要其中一个表中存在匹配,就返回行
  "Persons" 表:
 
  Id_P LastName FirstName Address City
  1 Adams John Oxford Street London
  2 Bush George Fifth Avenue New York
  3 Carter Thomas Changan Street Beijing
  "Orders" 表:
 
  Id_O OrderNo Id_P
  1 77895 3
  2 44678 3
  3 22456 1
  4 24562 1
  5 34764 65
   
 
  inner join:
 
   
 
  LastName FirstName OrderNo
  Adams John 22456
  Adams John 24562
  Carter Thomas 77895
  Carter Thomas 44678

(编辑:衢州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读