实用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%的人还看了以下文章

  • 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日
    4.9K0
  • 上机实战八:Java web编程综合案例

    建议学时:6 一、开发基于MVC模式的信息管理系统,如新闻发布系统,要求用户可查看、查询。管理员进入后台可对发布新闻(实现相应的增删查改)。 后台添加文章,建议使用UEditor! UEditor 是开源、免费的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果。 UEditor兼容性很好,是网站站长开发的首选,官网地址:UEditor官网 包…

    2018年12月11日
    3.4K0
  • 基于jspSmartUpload的Jsp文件上传实例(只能上传图片格式文件)

    支持中文的jsp文件上传组件:jspSmartUpload.jar下载 jar包的存放位置:WEB-INF\lib下。 upload_image.html <form method=”post” action=”new_upload.jsp” enctype=”multipart/form-data”> <input type=”file”…

    2018年12月11日
    2.8K0
  • 快来围观!微信小程序开发需要前期准备的信息整理出来了

    一、域名以及服务器 注册一个域名,域名必须进行ssl证书配置 域名进行备案 准备服务器可选择自主搭建机房,也可选择云服务器 二、注册微信小程序 1.在微信公众平台官网首页(mp.weixin.qq.com)点击右上角的“立即注册”按钮。 2.登陆微信公众平台https://mp.weixin.qq.com/ 点击注册->注册小程序 3.依次按照官方提示填写注…

    2022年9月19日 编程开发
    1.3K0
  • 精!如何在IDEA中导入myeclipse项目、配置并运行(实例演示)

    125建站网站长原来开发的myeclipse项目直接在IDEA打开发现会有很多问题,根据解决过程,写出此文章供大家参考! 1.首先打开IDEA工具,选择导入项目,然后在弹出的窗口中选择要打开的myeclipse文件,然后点击确定。如图所示 2.选择Eclipse,然后一直下一步 3.正常我们SDK这里都配置好了,直接选择就好,然后完成项目的导入 4.导入的完…

    2023年2月3日 编程开发
    4.3K0
  • 单元测试工具JUnit介绍及使用,单元测试快速入门教程五

    JUnit是一个开放源代码的测试框架,用在编写和运行可重复的测试脚本之上,是用于Java语言编写的面向对象程序的单元测试工具。JUnit框架功能强大,目前已经成为Java单元测试的事实标准,基本上能满足日常的测试要求。 1.Junit主要特性 (1)可以将测试代码和产品代码分别开发,便于管理。 (2)针对某一个类的测试代码,以较少的改动便可以应用    另一…

    2018年4月18日 编程开发
    5.6K0

发表回复

登录后才能评论