mysql select 关键字_MYSQL—— 基础入门,select 查询涉及到的关键字组合详解(进阶篇)...

SELECT查询组合使用的关键字很多,首先将最简单常用的关键字进行区分及使用,后续再继续补充............

以下所有的关键字组合使用,主要以两个表students与students_score为主,进行练习,

127b22e0ddc9ffa4cb6b14d645cf6f0c.png    

8df0c8337b42672d804c418d622a45fd.png

(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做的分组查询,运行结果显示如下:

4c88bf28a17923cf3f35c63dd3ffc180.png

(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”

cc060d01a908a109cc2c2874d88dbe7b.png

(5)in: 允许在where字句中规定多个值

select * FROM students where id in(2,3,5,6); #取出ID为2,3,5,6的所有信息

37a10ed8d3bb1da8c84124922ff53f3f.png

(6)between....and......:取出某一区间的值

select * from students where id between 4 and 6;

9901f7cbe7fbbf9afa7e209f888da53a.png

in  与between....and......的区别:in后面跟的是集合,between后面跟的是一个区间

(7)not:不在什么中

select * from students where id not in(1,2,3,4);

faef079a779001949ef8b06f669e1045.png

(8)distinct:去掉重复的数值

select distinct tel from students; #拉出tel列去重数据,拉出tel列电话号码不重的数据

5a4ca1b8de28959be655377ad2b1f3fc.png

(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);

62cf3769f2f97f44bfb71ea0cf1e5b11.png   

da689e43fd66b9443fbd71620919283c.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值