当前位置: 首页 > news >正文

头歌MySQL——单表查询

第1关:基本查询语句

任务描述
本关任务:
用SELECT语句检索数据表中指定字段的数据;
用SELECT语句检索数据表中所有字段的数据。

相关知识:
(1)查询数据表中指定字段的内容
基本规则为: SELECT 字段名 FROM 表名; 。
(2)查询数据表中多个字段的内容
语法规则为: SELECT 字段名1, 字段名2 FROM 表名; 。
(3)查询数据表中所有字段的内容
语法规则为: `SELECT *` `FROM 表名;`

编程要求
根据提示,在右侧编辑器Begin-End处补充代码:
我们为你新建了一个数据表tb_emp,结构如下:

请你查询字段Name和Salary的内容;请你查询整张表的内容。

USE Company;
#请在此处添加实现代码
select Name,Salary from tb_emp;SELECT * from tb_emp;

第2关:带 IN 关键字的查询

任务描述
本关任务:使用IN关键字检索数据表中指定的数据内容。

相关知识
(1)带IN关键字的查询
IN关键字被用在WHERE语句的后边,用来过滤你所需要查询的内容。
语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 IN (n1,n2,n3,...); 。其中,括号内的数字必须为INT格式的数字。被“点到名”的这些括号里数字对应的内容,都要乖乖的站到前边来展示给大家看。
(2)带NOT IN关键字的查询
刚才我们是在查询括号中出现的内容,加了NOT取反后,就意味着,我们要查询的是除了括号中出现内容外的所有内容。
语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 NOT IN (n1,n2,n3,...); 。

编程要求
根据提示,在右侧编辑器Begin-End处补充代码:
数据表tb_emp跟第一关一致,请你查询当Id不等于1时,字段Name和Salary的内容;

USE Company;
#请在此处添加实现代码SELECT Name,Salary from tb_emp WHERE Id NOT IN(1); 

第3关:带 BETWEEN AND 的范围查询

任务描述
本关任务:使用BETWEEN AND关键字检索数据表中指定的数据内容。

相关知识
(1)带BETWEEN AND关键字的查询
BETWEEN AND需要两个参数支持,一个是范围的开始值,另一个就是结束值了。如果字段值满足指定的范围查询条件,就返回这些满足条件的数据内容。
语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 BETWEEN n1 AND n2; 。
(2)带NOT BETWEEN AND关键字的查询
像上一关介绍的关键字IN一样,我们还可以对关键字BETWEEN AND进行取反,表示查询指定范围之外的值。
语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 NOT BETWEEN n1 AND n2; 。

编程要求
根据提示,在右侧编辑器Begin-End处补充代码:
数据表tb_emp跟第一关一致,请你查询当字段Salary范围在3000~5000时,字段Name和Salary的内容。

USE Company;
#请在此处添加实现代码SELECT Name,Salary from tb_emp where Salary BETWEEN 3000 AND 5000;

第4关:带 LIKE 的字符匹配查询

任务描述
本关任务:使用通配符%检索数据表中指定字段的数据。

相关知识
(1)用通配符进行匹配查找。而执行匹配查找的关键字就是LIKE。
SQL语句支持很多种通配符,其中可以和LIKE一起搭配使用的就是通配符%和_了。
(2)使用通配符%模糊匹配数据内容
百分号通配符%可以匹配任意长度的字符,甚至包括零字符。
语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '字符%'; 。 其中 % 的位置可以根据需要在字符间变化。
(3)使用通配符_模糊匹配数据内容
下划线通配符_与百分号通配符%类似,也用于模糊匹配。但是区别在于下划线通配符_只能模糊匹配1个字符。如果你执意想用下划线通配符_匹配多个字符,那只能多用几个_咯!
语法规则为: SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '字符_'; 。 其中`_`的位置可以根据需要在字符间变化。

编程要求
根据提示,在右侧编辑器Begin-End处补充代码;
数据表tb_emp跟第一关一致,请你查询所有Name以字母C为起始的员工的Name和Salary的内容;

USE Company;SELECT Name,Salary from tb_emp where Name LIKE "C%";

第5关:查询空值与去除重复结果

任务描述
本关任务:使用关键字IS NULL检索数据表中指定的字段的空值;使用关键字DISTINCT检索数据表中指定的不重复的内容。

相关知识
(1)去除重复结果
出于对数据分析的要求,分析人员需要消除数据表中重复的数据,可消除重复数据的关键字DISTINCT进行消除重复数据。
语法规则为: SELECT DISTINCT 字段名 FROM 表名; 。

编程要求
根据提示,在右侧编辑器Begin-End处补充代码:
数据表tb_emp跟第一关一致,使用关键字IS NULL返回数据表中字段DeptId为NULL的所有字段的内容,注意,返回的是指定行所有字段的内容;使用关键字DISTINCT返回数据表中字段Name不重复的内容,注意,只需返回字段Name的内容。

USE Company;SELECT * from tb_emp where DeptId IS NULL;SELECT DISTINCT Name from tb_emp;

第6关:带 AND 与 OR 的多条件查询

任务描述
本关任务:使用关键字AND检索数据表中指定的字段的内容;使用关键字IN检索数据表中指定的字段的内容。

相关知识
(1)带AND关键字的多条件查询
MySQL在WHERE子句中使用AND操作符限制只有满足所有条件的查询才会被返回。可以使用AND连接两个甚至更多个查询条件,多个条件表达式之间用AND分开。
语法规则为: SELECT 字段名 FROM 表名 WHERE 表达式1 AND 表达式2; 。
(2)带OR关键字的多条件查询
与AND相反,在WHERE声明中使用OR关键字表示只需满足两个条件中的其中一个条件即可返回结果。
语法规则为: SELECT 字段名 FROM 表名 WHERE 表达式1 OR 表达式2; 。

编程要求
根据提示,在右侧编辑器Begin-End处补充代码:
数据表tb_emp跟第一关一致,使用关键字AND返回数据表中字段DeptId为301并且薪水大于3000的所有字段的内容,其中DeptId的倒数第二个字母为i的大写;使用关键字IN返回数据表中字段DeptId为301和303的所有字段的内容。

USE Company;select * from tb_emp where DeptId="301" AND Salary > 3000; select * from tb_emp where DeptId in(301,303);

第7关:对查询结果进行排序

任务描述
本关任务:以成绩的降序显示学生成绩表中所有信息。

相关知识
(1)对查询结果排序
我们知道在MySQL中从数据表中读取数据都是使用SELECT语句。
如果我们需要对读取的语句进行排序,我们就可以使用Order By子句来设定你想要按照的字段进行排序并返回结果。
语法:SELECT 字段名 FROM 表名 ORDER BY 字段名 [ASC[DESC]];
你还可以根据自己的需求添加WHERE、LIKE子句来设置条件,再对结果过进行排序显示。

编程要求
在右侧编辑器Begin-End处补充代码,查询学生成绩表中1班同学的所有信息并以成绩降序的方式显示结果。
我们已经为你提供了学生成绩表:
tb_score表数据:

|  stu_id | class_id  | name  | score |
| 1  | 2  | Jack  | 81  |
| 2  | 1  | David  | 74  |
| 3  | 1  | Mason  | 92  |
| 4  | 2  | Ethan  | 89  |
| 5  | 1  | Gina  | 65  |

USE School;
#请在此处添加实现代码########## 查询1班同学的所有信息以成绩降序的方式显示结果 ##########
select * from tb_score where class_id = "1" order by score DESC;

第8关:分组查询

任务描述
本关任务:对班级表中的班级名称进行分组查询。

相关知识
分组查询的关键字是Group By,查询的是每个分组中 首次出现的一条记录。
语法:SELECT 字段名 FROM 表名 GROUP BY 字段名;

编程要求
在右侧编辑器Begin-End处补充代码,对班级表中的班级名称进行分组查询。
我们已经为你提供了班级表信息:
tb_class表数据:

stu_idclass_idname
1367Jack
2366David
3366Mason
4367Ethan
5366

Gina

USE School;
#请在此处添加实现代码########## 对班级名称进行分组查询 ###
select * from tb_class group by class_id;

第9关:使用 LIMIT 限制查询结果的数量

任务描述
本关任务:使用LIMIT关键字查询班级中第2名到第5名的学生信息,并根据学生成绩进行降序排序。

相关知识
(1)LIMIT的使用
在我们查询大量数据结果时,会返回很多条数据,有需要的记录可能就其中的一条或者几条。比如,实现分页功能,若每页显示10条记录,每次查询就只需要10条记录。
在MySQL中,提供了LIMIT关键字,用来限制查询结果的数量。
语法:SELECT 字段名 FROM 表名 LIMIT [OFFSET,] 记录数;
参数说明:第一个参数,OFFSET,可选参数,表示偏移量,如果不指定默认值为0,表示从查询结果的第一条记录开始,若偏移量为1,则从查询结果中的第二条记录开始,以此类推。第二个参数,记录数,表示返回查询结果的条数。

编程要求
在右侧编辑器Begin-End处补充代码,查询班级中第2名到第5名的学生信息,并根据学生成绩进行降序排序。

我们已经为你提供了学生成绩表:
tb_score表数据:

USE School;
#请在此处添加实现代码########## 查询班级中第2名到第5名的学生信息 ##########
select * from tb_score order by score DESC limit 1,4;

如果本文对你有帮助,请点个赞或关注支持一下,你的支持是我创作的最大动力!!!

http://www.dtcms.com/a/598405.html

相关文章:

  • 哪个公司的app软件定制seo搜索如何优化
  • 网站后台管理破解漯河市住房和城乡建设局网站
  • Android系统定制——导航栏添加自定义按钮
  • 嵌入式Linux学习——环境变量与配置文件的关系(⭐难理解)
  • LIN总线基础讲解之二—LIN总线网络的物理层与帧结构
  • 十三、More Deeper:VGG详解,从网络结构到实战
  • 天台网站建设大丰有做网站的
  • 网站建设公司利润怎么样利用网站制作网页
  • 单端口RAM IP核
  • 26、【Ubuntu】【远程开发】内网穿透:密钥算法介绍(二)
  • 什么网站可以做电子画册医院网站建设 南宁
  • 免费物业网站模板网架生产企业
  • FreeRTOS coreHTTP 客户端库源码与架构全景剖析
  • HttpServletRequest中的 Attribute(属性)生命周期和作用域是 Java Web 开发中的重要概念
  • 甘肃省水利厅引洮工程建设管理局网站网页制作与网站建设...
  • 浦东建设网站柳州网站建设柳州
  • Linux 基础开发工具----Vim编辑器的常见命令
  • Flutter for HarmonyOS开发指南(八):国际化与本地化深度实践
  • 建设局主要负责什么黑帽seo软件
  • 购买东西网站怎么做网页空间租用
  • 什么网站做外贸最多的网站建设虚线的代码
  • AIDD - 自主决策实验室 Intrepid Labs 介绍
  • 自己网站建设要维护23个营销专业术语
  • 如何做app网站网站后端用什么语言
  • HarmonyOS SDK使能美团高效开发,打造优质创新应用体验
  • 河北公司网站建设效果网站整合discuz论坛
  • 沈阳网站建设哪里的公司比较好厦门市建设工程造价网
  • 插值——拉格朗日插值
  • 马鞍山集团网站设计国外免费ip地址和密码
  • ps做汽车网站下载长沙圭塘网站建设公司