最新
动态
实时
资讯
部门
通知
专业
速递
导语
爱学习的的小伙伴们,在学习专业知识的你们,是否有过困惑与不解,不要着急,本栏目致力于为同学们指路迷津。
《专业速递》——带你了解大数据的魅力!
一、基本概念
1.比较运算符
WHERE子句的语法允许在表列的名称之后和列值之前使用比较运算符(=、>、=、<=、<>),在比较运算条件的运算项中,可以使用常量或关系中的属性,还可以使用通用的算术运算符(+、-、*、/)。
例如:
SELECT * FROM 选课表
WHERE 成绩>95
该结果集中只包含了所有成绩在95分以上的同学的信息
2.逻辑运算符
在WHERE子句中,可以使用逻辑运算符把若干个查询条件连接起来,组成复合条件。这些逻辑运算符包括AND、OR、NOT。当在同一条语句中同时包含多个逻辑运算符时,其优先级从高到低依次是NOT、AND、OR。
例如:
SELECT 学号,课程号,成绩
FROM 选课表
WHERE 课程号=‘1’ AND 成绩>80
该结果集检索选修了1号课程并且成绩在80分以上的同学的学号和成绩
3.BETWEEN...AND ( NOT BETWEEN...AND)
BETWEEN...AND ( NOT BETWEEN...AND)可以指定搜索范围,可以用来查找值在(不在)下限与上限之间。
例如:
SELECT *
FROM 学生表
WHERE 年龄 BETWEEN 20 AND 23 AND 性别=‘M’
该结果检索出学生表中年龄在20~23之间的所有男同学的信息
4.IN(NOT IN)
IN或者NOT IN 关键字允许指定要选择的取值表,意思是包含在由IN指定的列表之中或不包含由NOT IN 指定的列表中。
例如:
SELECT *
FROM 学生表
WHERE 班级IN(‘GZ02计5’,‘GZ02计6’,‘GZ02计7’)
该结果检索出学生表中GZ02计5,GZ02计6,GZ02计7三个班级的同学信息
5.字符串模糊匹配
字符串匹配功能是使用LIKE关键字来实现的。LIKE关键字用于检索与特定字符串相匹配的记录行。LIKE关键字后面跟一个值段而不是一个完整的列值。
LIKE关键字的使用形式如下:
列表 [NOT] LIKE
在LIKE关键字中,可以使用4种匹配符:
·%(百分号):匹配0个或多个字符;
·_(下划线):匹配任意一个字符;
·[]:匹配[]中的任意一个字符;
·[^]:不匹配[^]中的任意一个字符。
例如:
SELECT * FROM 学生表
WHERE 姓名 LIKE'陈%'
6.涉及空值的查询
空值(NULL)在数据库中有特殊的含义。空值NULL是指没有任何意义,它与数字0、空格字符、逻辑假不同,0、空格、假也是值,但NULL表示目前不能确定其具体内容。
判断取值是否为空值的语句格式为:
列名 IS [NOT] NULL
例如:
SELECT 学号,课程号
FROM 选课表
WHERE 成绩 IS NULL
二、案例精析
1.现有员工表(职工号,职工姓名,工资,部门)
要求:查询工资在1500-2000的职工信息
答:
select * from 员工表
where 工资 between 1500 and 2000
解:
需要用where选择工资在1500到2000之间的员工,最后从员工表select职工的相应信息
2.现有供应零件(供应商代号,工程代号,零件代号,数量,供货日期)
要求:查询供应商代号为S01的供应商在2016年以后的供货情况,包括零件代号、数量、供货日期。
答:
select 供应商代号,零件代号,数量,供货日期 from 供应零件
where 供应商代号='S01' and 供货日期>2016
解:
需要用where选择相应的供应商代号和年份,最后从供应零件表中select相应的供应商代号,零件代号,数量,供货日期
三、教你一招
HAVING用法与WHERE用法类似,但有三点不同:
1.HAVING只用于GROUP BY(分组统计语句)
2.WHERE是用于在初始表中筛选查询,HAVING用于WHERE和GROUP BY结果中查询
3.HAVING可以使用聚合函数,而WHERE不能
例如:
现有商品表(cat_id,name,store_count,shop_price)
统计出数量大于等于3的商品种类,商品名称,以及数量
答:
SELECT cat_id AS 商品种类,name AS 商品名称
解:
FROM 商品表
GROUP BY cat_id,name
HAVING COUNT(*)>=3
ORDER BY count(*) DESC;
今日的SQL的选择查询就先告一段落啦,大家以后学SQL的选择查询的时候就可以露一手咯!
信息来源:温职院大数据专业综合部
print("END")
审核:孙小涵
编辑:王景远 张智媛