MYSQL—— 基础入门,select 查询涉及到的关键字组合详解(进阶篇)
SELECT查询组合使用的关键字很多,首先将最简单常用的关键字进行区分及使用,后续再继续补充............
以下所有的关键字组合使用,主要以两个表students与students_score为主,进行练习,
(1)join:主要分为以下几种
join:
inner join(内连接或等值连接):取出两个表中存在连接匹配的记录表
right join(右连接):取得右表的全部记录,已右表为准
left join(左连接): 与right join相反
说明:1、mysql不支持Full join
2、已左连接为主,如果左表中的数据右表中也存在,则以左表为主显示数据, 2、已右连接为主,如果右表中的数据,左表中无,则以null填充
1) select sc.name,sc.math_score,s.name from students_score sc INNER JOIN students s on s.id = sc.id ;
2)select sc.name,sc.math_score,s.name from students_score sc JOIN students s on s.id = sc.id ;
3)select sc.name,sc.math_score,s.name from students_score sc left JOIN students s on s.id = sc.id ;
4)select sc.name,sc.math_score,s.name from students_score sc right JOIN students s on s.id = sc.id ;
5)(select sc.name from students_score sc right JOIN students s on s.id = sc.id) union (select s.name from students s left JOIN students_score sc on s.id = sc.id ); #
(2)limit: 强制select语句返回指定的记录数,支持1个或者2个数字(必为正整数)参数
SELECT * FROM students LIMIT 3,3; #第一个数字代表着从第几个开始(如:3,代表着从3开始,但是不包含3),第二个数字代表着显示几个
SELECT * FROM students LIMIT 1; #返回一条记录
示例:select id,tel from students where tel = '18392868125' limit 1; #拉出一条tel为18392868125的数据
(3)group by: 分组功能
SELECT sex as '性别',avg(age) as '平均年龄' FROM students group by sex ORDER BY age desc; #根据性别显示平均年龄,并且按降序排列
对表students做的分组查询,运行结果显示如下:
(4)order by:排序
通过某些字段进行排序,order by后面跟上排序字段,可以跟多个字段,每个字段之间用逗号隔开,如果语句中有where子句,则order by必须放在where后,order by默认的排序是升序(ASC),降序使用(DESC)
select id,math_score from students_score ORDER BY math_score desc; #降序排列,默认升序,如需添加升序则用关键字“ASC”
(5)in: 允许在where字句中规定多个值
select * FROM students where id in(2,3,5,6); #取出ID为2,3,5,6的所有信息
(6)between....and......:取出某一区间的值
select * from students where id between 4 and 6;
in 与 between....and......的区别:in后面跟的是集合,between后面跟的是一个区间
(7)not: 不在什么中
select * from students where id not in(1,2,3,4);
(8)distinct :去掉重复的数值
select distinct tel from students; #拉出tel列去重数据,拉出tel列电话号码不重的数据
(9)union,连接两个表的查询结果
union all: union:会去掉重复的行。union all不去掉重复的行
(select id,math_score from students_score) UNION (select id,english_score from students_score);
(select id,math_score from students_score) UNION all (select id,english_score from students_score);
1.作者:Syw 2.出处:http://www.cnblogs.com/syw20170419/ 3.本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 4.如果文中有什么错误,欢迎指出。以免更多的人被误导。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?