任务描述
本关任务:使用IN
关键字检索数据表中指定的数据内容。
相关知识
为了完成本关任务,你需要掌握:如何使用关键字IN
提取数据表中的指定数据内容。
带IN
关键字的查询
IN
关键字被用在WHERE
语句的后边,用来过滤你所需要查询的内容。更形象的说,IN
关键字的使用情形就像点名,点到谁谁就要站出来。
语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 IN (n1,n2,n3,...); 。 |
其中,括号内的数字必须为INT
格式的数字。被“点到名”的这些括号里数字对应的内容,都要乖乖的站到前边来展示给大家看。
举个例子 假设我们现在有一张表Mall_products
,内容如下:
我们会使用IN
关键字检索出所有国家代码为1
、86
和39
的商品信息。
查询代码如下:
SELECT *
FROM Mall_products
WHERE prod_country IN (1,87,39);
结果为:
查询过程如下:
Oopes! 貌似我们刚才输入了三个数字,为什么只查询到了国家代码为1
和39
的数据内容,87
去哪里了?
因为国家代号87
的内容就压根没存在过啊,仔细看看表Mall_products
就知道了。
带NOT IN
关键字的查询
聪明的小伙伴一看NOT
就知道了,我们是要取反了。刚才我们是在查询括号中出现的内容,加了NOT
取反后,就意味着,我们要查询的是除了括号中出现内容外的所有内容。
语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 NOT IN (n1,n2,n3,...); 。 |
举个例子 我们还使用刚才的表Mall_products
。现在我们想要查询除了国家代码为86
的所有国家的产品内容。
查询代码如下:
SELECT *
FROM Mall_products
WHERE prod_country NOT IN (86);
结果为:
好了,下面轮到你们来上手试试了!
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码:
我们为你新建了一个数据表tb_emp
,结构如下:
- 请你查询当
Id
不等于1
时,字段Name
和Salary
的内容;
测试说明
我会对你编写的代码进行测试,最终结果会如下图所示:
开始你的任务吧,祝你成功!
USE Company;
#请在此处添加实现代码
########## Begin ##########
########## retrieving the Name and Salary with IN statement ##########
SELECT Name,Salary
FROM tb_emp
WHERE Id NOT IN(1);
########## End ##########