实用sql查询语句详解2:高级查询

上篇文章《实用sql查询语句详解1:给列取别名、查询部分行、多列排序》介绍了简单查询语句,这节课给大家讲解基本条件查询、集合函数、分组查询、子查询、并集和交集

基本条件查询

比较运算符:>,>=,<,<=,=,!=

between a and b,in(a,b,c),not exists,is null,like ‘%_’,or,and, any,all等

between…and 和not between and

把某一字段中内容在特定范围内的记录查询出来。

例如查询成绩在60到80分的学生信息:

SELECT StudentID, Score FROM SCore WHERE Score BETWEEN 60 AND 80

in(a,b,c)

把某一字段中内容与所列出的查询内容列表匹配的记录查询出来

SELECT SName AS 学员姓名,SAddress As 地址 FROM Students WHERE SAddress IN ('北京','广州','上海')

模糊查询 like

通配符有%、_、[ ]、[^]

%:后面可以跟零个或多个字符

_:匹配任意单个字符

[ ]:查询一定范围内的单个字符,包括两端数据

[^]:表示不在一定范围内的单个字符,包括两端数据

例:查询姓熊的员工并且名字只有两个字的员工信息

实用sql查询语句详解2:高级查询

例:查询年龄在23-27周岁的员工信息

实用sql查询语句详解2:高级查询

集合函数 -sum,count,max,min,avg

SELECT AVG(SCore) AS 平均成绩, MAX (Score) AS 最高分,MIN (Score) AS 最低分 From Score WHERE Score >=60

分组查询—GROUP BY

group by 字段名 having 组过滤条件

SELECT CourseID, AVG(Score) AS 课程平均成绩
FROM Score
GROUP BY CourseID

分组查询多列分组

SELECT StudentID AS 学员编号,CourseID AS 内部测试, AVG(Score) AS 内部测试平均成绩
FROM Score
GROUP BY StudentID,CourseID

分组查询—HAVING

SELECT StudentID AS 学员编号,CourseID AS 内部测试, AVG(Score) AS 内部测试平均成绩
FROM Score
GROUP BY StudentID,CourseID
HAVING COUNT(Score)>1

分组查询对比

  1. WHERE子句从数据源中去掉不符合其搜索条件的数据
  2. GROUP BY子句搜集数据行到各个组中,统计函数为各个组计算统计值
  3. HAVING子句去掉不符合其组搜索条件的各组数据行
SELECT       部门编号, COUNT(*)
FROM          员工信息表
WHERE       工资 >= 2000
GROUP BY 部门编号
HAVING       COUNT(*) > 1

逻辑运算符(NOT、AND、OR)

NOT:取反;
AND:逻辑与;
OR:逻辑或;

例:利用AND查询Employee表中的年龄小于30岁的所有女员工 的信息;

实用sql查询语句详解2:高级查询

例;利用NOT查询年龄不小于30岁的所有女员工的信息

实用sql查询语句详解2:高级查询

例:利用组合查询年龄不大于40的男员工信息或年龄大于30的女员工信息;

实用sql查询语句详解2:高级查询

子查询

SELECT * FROM BOOKS B WHERE B.PRICE IN (SELECT MAX(PRICE) FROM  BOOKS);

并集(Union)和交集(Intersect)

(SELECT * FROM BOOKS B, BORROW C
WHERE B.BNO=C.BNO AND B.BNAME = '计算方法'
INTERSECT
SELECT * FROM BOOKS B, BORROW C
WHERE B.BNO=C.BNO AND B.BNAME != '计算方法习题集')
ORDER BY C.CNO DESC;

本文来自投稿,不代表125jz立场,如若转载,请注明出处:http://www.125jz.com/1090.html

(0)
江山如画的头像江山如画管理团队
上一篇 2018年2月5日 上午9:36
下一篇 2018年2月5日 下午3:17

99%的人还看了以下文章

  • 10秒倒计时、考试结束倒计时功能实现代码-JS

    注册成功或登录后网页会有倒计时,如5秒后跳转到哪个页面的功能。 在做一些在线测试,网上考试系统时,会用到倒计时功能。 如网上考试系统里,会有时间提示离考试结束还有多长时间,临近考试结束剩10分钟,还可以弹窗提示考生。 JavaScript实现倒计时功能代码 <!DOCTYPE html> <html> <head> &lt…

    2020年11月1日
    2.6K0
  • Windows10+IIS+PHP7+MySQL5.7环境搭建

    IIS配置 本次搭建使用的系统是Windows7,Windows8,10与此类似。 开启IIS 开始–>控制面板–>程序和功能,点击左边栏的开启或关闭Windows功能,如图: 选择Internet信息服务并选择里面的CGI。打开浏览器,输入localhost或127.0.0.1,可以正常打开网页则说明开启成功。 新建站点…

    2021年8月14日 编程开发
    9630
  • PHP获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法

    php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime。

    2023年3月8日
    8160
  • jsp写mysql数据库出现中文乱码

    今天用jsp做个图片书管理系统,向mysql数据库中存中文的时候显示乱码,如图书名: web???? 修改页面是http://localhost:8080/library/book?action=bookModifyQuery&ID=14 根据中文乱码的处理方法: 表单method方式为post或get中文乱码的解决方法 jsp:include包含h…

    2020年8月22日
    1.6K0
  • Python编程入门:英文词频统计

    text = “Got tho on super sale. Love it! Cuts my drying time in half Reckon I have had this about a year now,\ at least 7 months. Works great, I use it 5 days a week, blows hot air,…

    2023年10月3日
    4690
  • Ubuntu在线体验(不用安装) 

    Ubuntu是一个以桌面应用为主的Linux操作系统,是非常轻量级的操作系统,全球领先的用于个人电脑、平板及手机的操作系统。 想过要体验下Ubuntu,其实不用那么麻烦,在线就能体验该系统!! 在任意浏览器打开链接https://www.ubuntu.org.cn/tour/zh-CN/ (中文)、https://www.ubuntu.org.cn/tour…

    2022年9月1日
    6.5K0

发表回复

登录后才能评论