SQL中有关数据查询的练习

简介: SQL中有关数据查询的练习

前言


本文主要是列举了一些有关于数据查询的练习,比较综合,在学习完相关知识点后可以通过这六道题来检验自测一下


本文中所用到表格


Student


S# SName AGE SEX
001 张小红 23
002 小芳 18
003 赵六 24
004 李华 23
005 刘晓华 28
006 刘某 NULL NULL



Course


C# CName Teacher
C01 数据库 徐老师
C02 Java编程 孟博士
C05 数据结构与算法 唐老师


StudentCourse


S# C# Score
001 C01 91
001 C02 87
001 C03 85
002 C01 88
002 C02 79
002 C03 NULL
003 C01 87
003 C02 76
003 C03 82
004 C01 87
004 C02 93
004 C03 97
005 C01 NULL
005 C02 89
005 C03 78
006 C01 69
006 C02 NULL


第一题


题目


统计有学生选修的课程门数


思路


  • 统计门数:COUNT(···)
  • 所要查询的表格既要包含课程信息,又要包含学生信息:StudentCourse
  • 选秀课程肯定有重复,要去重:DISTINCT(···)


完整语句


SELECT COUNT (DISTINCT C#) FROM StudentCourse;


执行结果


27e6c407af5b403cb8bb7cc5faad1c37.png


第二题


题目


求选修C02课程的女学生的平均年龄


思路


  • 需要得到属性值:年龄
  • 题目可以看出是“嵌套查询”
  • 查询女学生的平均年龄是外层查询,选修C02课程是内层查询
  • 外层查询所用表:Student
  • 外层查询函数:AVG(AGE)
  • 外层查询条件:SEX = '女'
  • 内层查询所用表:StudentCourse
  • 内层查询条件:C# = 'C02'
  • 内外层逻辑关系:在符合外层查询条件下满足课程号为C02:S# IN(内层循环)


完整语句


SELECT AVG(AGE)FROM Student WHERE SEX = '女' AND S# IN (SELECT S# FROM StudentCourse WHERE C# = 'C02');

309ae1f522c245ac9955f0228d4a3a80.png


验证结果


我们将所有符合条件的女学生都查询出来,手动算一下平均值,看是否正确


SELECT * FROM Student WHERE SEX = '女' AND S# IN (SELECT S# FROM StudentCourse WHERE C# = 'C02');

2c7535bbe44645ae8977b37b37e34589.png


第三题


题目


检索学号比赵六大,且年龄比他小的姓名


思路


  • 需要得到的属性值:姓名
  • 需要检索的表格:Student
  • 需要先得到的结果(内层查询):赵六的学号姓名
  • 内层查询所用表:Student
  • 内层查询条件:SName = '赵六'
  • 查询条件(内外层逻辑):WHERE S# > (内层查询) AND AGE < (内层查询)


完整语句


SELECT SName FROM Student WHERE S# > (SELECT S# FROM Student WHERE SName = '赵六')
AND AGE < (SELECT Age FROM Student WHERE SName = '赵六');

60ef2df2e51448d48e2da37b746883b9.png


第四题


题目


求年龄大于女同学平均年龄的男同学的姓名和年龄


思路


  • 需要得到属性值:姓名和年龄
  • 先要得到的查询结果(内层查询):女同学平均年龄
  • 内层查询函数:AVG(Age)
  • 内层查询所用表:Student
  • 内层查询条件:Sex = '女'
  • 内外层逻辑:WHERE Sex = '男' AND Age > (内层查询)


完整语句


SELECT SName,AGE FROM Student WHERE Sex = '男' AND Age >(SELECT AVG(Age) FROM Student WHERE Sex = '女');


验证结果


为了验证真实性,这里我们也来求一下所有女生的平均年龄


SELECT AVG(Age) FROM Student WHERE Sex = '女';

70c887db03054eed848bb121e30e860a.png


第五题


题目


检索姓刘的学生的姓名和年龄


思路


  • 需要得到的属性值:姓名和年龄
  • 需要查询的表格:Student
  • 模糊查询:LIKE···
  • 由于不知道姓名长度,使用通配符%


完整语句


SELECT SName,Age FROM Student WHERE SName LIKE '刘%';

41d2c27a090b4eda83cce923eb216ac1.png


第六题


题目


在StudentCourse表中检索成绩为空值的学生的学号和课程号


思路


  • 需要得到属性值:学号和课程号
  • 需要查询的表格:StudentCourse
  • 查询条件:··· NOT NULL


完整语句


SELECT S#,C# FROM StudentCourse WHERE Score IS NULL;

image.png


验证结果


我们在表格中自己查询成绩值为NULL的行,如下图所示


image.png


结语


本文题目是博主自己的解题思路,如果有任何问题或者错误欢迎留言评论

相关文章
|
6月前
|
SQL Perl
PL/SQL经典练习
PL/SQL经典练习
|
11月前
|
关系型数据库 BI 分布式数据库
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
无需创建和开通资源,在预置环境中免费体验PolarDB MySQL及其NL2BI解决方案
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
|
6月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
131 0
|
11月前
|
SQL 数据库
SQL Server 单表数据查询
SQL Server 单表数据查询
152 1
|
6月前
|
SQL 分布式计算 数据挖掘
Hive SQL初级练习(30题)
Hive SQL初级练习(30题)
|
17天前
|
SQL 数据管理 数据库
SQL语句实例教程:掌握数据查询、更新与管理的关键技巧
SQL(Structured Query Language,结构化查询语言)是数据库管理和操作的核心工具
|
6月前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
365 6
|
3月前
|
SQL 关系型数据库 数据挖掘
SQL 基础入门简直太重要啦!从零开始,带你轻松掌握数据查询与操作,开启数据世界大门!
【8月更文挑战第31天】在数字化时代,数据无处不在,而 SQL(Structured Query Language)则是开启数据宝藏的关键钥匙。无论你是编程新手还是数据处理爱好者,掌握 SQL 都能帮助你轻松提取和分析信息。SQL 简洁而强大,像一位魔法师,能从庞大数据库中迅速找到所需数据。从查询、条件筛选到排序、分组,SQL 功能多样,还能插入、更新和删除数据,助你在数据海洋中畅游无阻。
38 0
|
3月前
|
SQL 关系型数据库 数据库
|
4月前
|
SQL DataWorks 安全
DataWorks产品使用合集之在进行数据查询和数据处理时,如何通过数据建模与开发模块来创建和管理SQL脚本
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。