​数据库原理及应用上机(实验三 SQL数据查询)

news/2024/2/28 11:34:48

作者:命运之光 
专栏:数据库原理及应用上机实验

​ 

目录

 ✨一、实验目的和要求

✨二、实验内容及步骤

✨三、实验结果

✨四、附加练习

✨五、实验总结


🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓 


 ✨一、实验目的和要求

1.掌握SQL Server查询分析器的使用方法,加深对SQL查询语句的理解。

2.熟练掌握查询语句的一般格式。

3.熟练掌握数据查询中的排序、分组、统计、计算和集合的操作方法。

4.熟练掌握连接、嵌套和集合查询的使用。

✨二、实验内容及步骤

(一)单表查询

1 无条件查询

例1 查询全体学生的详细记录。这是一个无条件的选择查询,其命令为:

SELECT  * FROM  Student;          /*这里的“*”等价于ALL*/

其结果为Student表中的全部数据。

例2  查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。这是一个无条件的投影查询,其命令为:

SELECT Sname, Sno, Sdept  FROM  Student;

例3  查询全体学生的学号(Sno)、姓名(Sname)及出生年份。由于SELECT子句的<目标列表达式>不仅可以是表中的属性列,也可以是表达式,故可以查询经过计算的值。其命令为:

SELECT Sno, Sname, 2012-Sage as '2012-Sage' FROM Student;

例4 查询全体学生的学号、姓名、出生年份和所在系,要求用小写字母表示所有系名。其命令为:

SELECT Sno, Sname, 2012-Sage 'Year of Birth', LOWER(Sdept) Sdept FROM Student;

例5  查询选修了课程的学生学号。其命令为:

SELECT DISTINCT Sno FROM SC;

2 条件查询

例6  查询数学系(MA)全体学生的学号(Sno)和姓名 (Sname)。其命令为:

SELECT Sno, Sname
FROM Student
WHERE Sdept='MA';

【题7】查询考试成绩有不及格的学生的学号。

SELECT DISTINCT Sno
FROM SC
WHERE  Grade<60;

【例8】查询所有年龄在20岁以下的学生姓名(Sname)及年龄(Sage)。其命令为:

SELECT  Sname, Sage
FROM  Student
WHERE  Sage<20;

【例9】查询所有年龄在18~20岁(包括18岁和20岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为:

SELECT  Sname, Sage
FROM  Student
WHERE  Sage >=18 AND Sage<=22;

SELECT  Sname, Sage
FROM  Student
WHERE  Sage  BETWEEN 18 AND 22;

【例10】 查询年龄不在18-20岁之间的学生姓名(Sname)及年龄(Sage)。其命令为:

SELECT  Sname, Sage
FROM  Student
WHERE  Sage  NOT  BETWEEN  18 AND 20;

【例11】 查询计算机系、数学系和信息系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。其命令为:

SELECT  Sno, Sname, Ssex FROM  StudentWHERE  Sdept  IN ('CS', 'MA', 'IS');

等价于:

SELECT  Sno, Sname, SsexFROM  StudentWHERE  Sdept='CS' OR Sdept='MA' OR Sdept='IS';

【例12】  查询既不是信息系(IS)、数学系(MA)、也不是计算机系(CS)的学生的姓名(Sname)和性别(Ssex)。其命令为:

SELECT  Sname, Ssex
FROM  Student
WHERE  Sdept  NOT  IN ('IS', 'MA', 'CS');

【例13】  查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。其命令为:

SELECT  Sname, Sno, Ssex
FROM  Student
WHERE  Sname  LIKE  '刘%';

【例14】  查询姓“刘”且全名为4个汉字的学生的姓名(Sname)和所在系(Sdept)。其命令为:

SELECT  Sname, Sdept 
FROM  Student
WHERE  Sname  LIKE  '刘____' AND LEN(Sname)=4;;

【例15】  查询所有不姓刘的学生姓名(Sname)和年龄(Sage)。

SELECT  Sname, Sage
FROM  Student
WHERE  Sname  NOT  LIKE  '刘%';

【例16】  查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。其命令为:

SELECT  *
FROM  Course
WHERE  Cname LIKE 'DB\_%设__'ESCAPE'\';

【例17】  假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。试查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)。其命令为:

SELECT  Sno, Cno
FROM  SC
WHERE  Grade IS NULL;

【例18】  查询所有有成绩的学生学号(Sno)和课程号(Cno)。其命令为:

SELECT Sno, Cno
FROM  SC
WHERE  Grade IS NOT NULL;

【题19】查询计算机系年龄在20岁以下的学生姓名。

SELECT SnameFROM StudentWHERE Sdept='计算机系' and Sage<20;

3 查询结果排序

例24  查询选修了2号课程的学生的学号(Sno)和成绩(Grade),并按成绩降序排列。其命令为:

SELECT  Sno, GradeFROM SCWHERE  Cno='2'ORDER BY Grade DESC;

【例25】 查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。其命令为:

SELECT  *FROM  StudentORDER BY Sdept, Sage DESC;

4 集函数的使用

例26  查询学生总人数。其命令为:

SELECT  COUNT(*)FROM  Student;

例27  查询选修了课程的学生人数。其命令为:

SELECT  COUNT(DISTINCT Sno)FROM SC;

例28  计算选修2号课程的学生平均成绩。其命令为:

SELECT  AVG(Grade)FROM  SCWHERE  Cno='2';

例29  查询选修2号课程的学生最高分数。其命令为:

SELECT  MAX(Grade)FROM  SCWHERE  Cno='2';

例30  查询学生200215122选修课程的总学分数。其命令为:

SELECT  SUM(Ccredit)FROM  SC,CourseWHERE  Sno='200215122' AND SC.Cno=Course.Cno;

5 查询结果分组

例31  求各个课程号(Cno)及相应的选课人数。其命令为:

SELECT  Cno , COUNT(Sno) CntSnoFROM  SCGROUP  BY Cno;

例32  查询选修了3门或3门以上课程的学生学号(Sno)。其命令为:

SELECT  SnoFROM  SCGROUP  BY SnoHAVING  COUNT(Cno)>3

✨三、实验结果

(一)单表查询

1 无条件查询

例1 查询全体学生的详细记录。

例2  查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。

例3  查询全体学生的学号(Sno)、姓名(Sname)及出生年份。

例4 查询全体学生的学号、姓名、出生年份和所在系,要求用小写字母表示所有系名。

例5  查询选修了课程的学生学号。

2 条件查询

例6  查询数学系(MA)全体学生的学号(Sno)和姓名 (Sname)。

【题7】查询考试成绩有不及格的学生的学号。

【例8】查询所有年龄在20岁以下的学生姓名(Sname)及年龄(Sage)。

【例9】查询所有年龄在18~20岁(包括18岁和20岁)之间的学生姓名(Sname)及年龄(Sage)。

【例10】 查询年龄不在18-20岁之间的学生姓名(Sname)及年龄(Sage)。

【例11】 查询计算机系、数学系和信息系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。

【例12】  查询既不是信息系(IS)、数学系(MA)、也不是计算机系(CS)的学生的姓名(Sname)和性别(Ssex)。

【例13】  查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。

【例14】  查询姓“刘”且全名为4个汉字的学生的姓名(Sname)和所在系(Sdept)。

【例15】  查询所有不姓刘的学生姓名(Sname)和年龄(Sage)。

【例16】  查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。

【例17】  假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。

【例18】  查询所有有成绩的学生学号(Sno)和课程号(Cno)。

【题19】查询计算机系年龄在20岁以下的学生姓名。

3 查询结果排序

例24  查询选修了2号课程的学生的学号(Sno)和成绩(Grade),并按成绩降序排列。

【例25】 查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。

4 集函数的使用

例26  查询学生总人数。

例27  查询选修了课程的学生人数。

例28  计算选修2号课程的学生平均成绩。

例29  查询选修2号课程的学生最高分数。

例30  查询学生200215122选修课程的总学分数。

5 查询结果分组

例31  求各个课程号(Cno)及相应的选课人数。

例32  查询选修了3门或3门以上课程的学生学号(Sno)。

✨四、附加练习

查询学分为4分的课程的课程号及课程名;

查询选修课课程号为3且得分为90分以上的学生学号;

将课程表按学分升序排列,学分相同的按课程号升级排列

查询姓“李“的学生的学号、姓名、年龄,并且以年龄降序排列;

查询选修课程号为3的最低分;

查询所有学生的平均年龄;

查询不同学分的课程数量

查询不同年龄的男生人数及女生人数;

查询课程表中的课程数量;

查询课程号为的不及格的学生学号及分数

✨五、实验总结

本次实验主要学习了 SQL Server 查询分析器的使用方法,以及 SQL 查询语句的基本格式和常用操作方法。在实验过程中,我们深入了解了数据查询中的排序、分组、统计、计算和集合的操作方法,并熟练掌握了连接、嵌套和集合查询的使用。

通过本次实验,我深刻认识到 SQL 查询语句对于数据库操作的重要性。在实际应用中,SQL 查询语句可以帮助我们快速有效地获取所需数据,从而进行数据分析和处理。通过本次实验的学习,我不仅掌握了 SQL 查询语句的基本语法和使用方法,还学会了如何优化查询语句,提高查询效率和准确性。

在实验过程中,我遇到了一些问题,如语法错误、数据类型不匹配等等。通过反复尝试和查找相关资料,我最终解决了这些问题,并对 SQL 查询语句的使用有了更深入的理解和掌握。

总之,本次实验对我的学习和成长非常有益。通过实践操作,我深入了解了 SQL 查询语句的使用方法,提高了对 SQL 数据库的理解和掌握,为今后的工作和学习打下了坚实的基础。


http://www.ppmy.cn/news/88011.html

相关文章

【Linux】进程间通信的有关基础概念

在以前我们使用多进程时&#xff0c;我们一般都是让父子进程分别执行各自的代码&#xff0c;进程之间几乎没有通信&#xff0c;但是实际过程中&#xff0c;进程间的通信是十分重要的的一件事情&#xff0c;一个复杂的程序一般都是有多个进程相互通信&#xff0c;协调进行来完成…

什么情况下Spring事务会失效?

1.在方法中捕获的异常没有抛出去 2.非事务方法调用事务方法 3.事务方法内部调用事务方法 4.Transactional标记的方法不是public 5.抛出的异常与rollbackFor指定的异常不匹配 6.数据库表不支持事务&#xff0c;比如MySQl和MyISAM 7.Spring的传播行为导致事务失效&#xff…

stata软件基本操作

一、stata软件介绍 Stata是一个用于分析和管理数据的功能强大又小巧玲珑的实用统计分析软件&#xff0c;由美国计算机资源中心&#xff08;Computer Resource Center&#xff09;研制。它同时具有数据管理软件、统计分析软件、绘图软件、矩阵计算软件和程序语言的特点&#xf…

C++ 的 make_unique,有具体的 C++ 代码示例

std::make_unique 是 C11 标准引入的一个模板函数&#xff0c;用于动态分配指定类型的内存&#xff0c;并返回一个指向分配内存的唯一指针 (即 std::unique_ptr)。 std::make_unique 的语法如下&#xff1a; template<typename T, typename... Args> std::unique_ptr&l…

[Data structure]环形链表

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现 ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注一…

Find My产品|苹果上架支持Find My功能的旅行保温杯

苹果美国官网近日上架了 Ember 的控温 Travel Mug 2 旅行杯&#xff0c;售价为 199.95 美元。该旅行杯最大的亮点就是支持“Find My”&#xff0c;丢失后可在 iPhone&#xff0c;iPad 和 Mac 上定位找回。 Travel Mug 2 旅行杯和此前推出的 Travel Mug 2 旅行杯在功能方面完全相…

微信小程序开发实战课后习题解答————第四章(作业版)

一、填空题 1、 组件 是视图层的基本组成单元。 2、 swiper内部只可以放置 swiper-item 组件。 3、 设置text文本内容长按可选的属性是 selectable 。 4、navigator组件通过设置 open-type 属性&#xff0c;来区分不同的跳转功能。 5、通过image的 mode …

Leetcode每日一题——“用队列实现栈”

各位CSDN的uu们你们好呀&#xff0c;好久没有更新本专栏啦&#xff0c;甚是想念&#xff01;&#xff01;&#xff01;今天&#xff0c;小雅兰的学习内容是用队列实现栈&#xff0c;下面&#xff0c;让我们进入Leetcode的世界吧&#xff01;&#xff01;&#xff01; 这是小雅兰…

Java程序设计入门教程--包

情形 在Java中&#xff0c;包(package)是一种松散的类的集合&#xff0c;它可以将各种类文件组织在一起&#xff0c;就像磁盘的目录&#xff08;文件夹&#xff09;一样。包的管理机制提供了类的多层次命名空间避免了命名冲突问题&#xff0c;解决了类文件的组织问题&#xff0…

【day 03】初始vue的相关指令

事件函数传参情况 1.函数不需要定义参数&#xff0c;作为事件函数使用时 不需要带&#xff08;&#xff09; 2.函数定义了形参 但是没有加括号 fn形参接收到的是 事件对象 3.函数定义了形参 click“fn()” 接收到的是undefined 4.正常传参 正常接收 5.既需要传参 也需要使用 事…

算法Day14 | 理论基础,144. 二叉树的前序遍历,94.二叉树的中序遍历,145.二叉树的后序遍历

Day14 理论基础种类存储方式遍历方式定义 递归遍历144. 二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历 ~~迭代遍历~~144. 二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历 统一迭代94.二叉树的中序遍历144. 二叉树的前序遍历145.二叉树的后序遍历 理论基…

mysql倒库操作遇到的问题

背景&#xff1a;本地windows 10安装了mysql数据库后&#xff0c;需要把远程库的表结构和数据全部导入进来。 操作&#xff1a;导出数据库&#xff0c;导入数据库。 第一步&#xff1a;导出数据库 使用dump命令即可。 登陆mysql数据库 mysql -hhost --default-character-s…

CSP-202303-2-垦田计划

目录 一、题目描述 二、思路 三、C实现如下 一、题目描述 问题描述 顿顿总共选中了 n 块区域准备开垦田地&#xff0c;由于各块区域大小不一&#xff0c;开垦所需时间也不尽相同。据估算&#xff0c;其中第 i 块&#xff08;1≤i≤n&#xff09;区域的开垦耗时为 ti 天。这…

​路由器端口映射怎么设置?内网IP不能映射怎么办?​

使用路由器后&#xff0c;Internet用户无法访问到局域网内的主机&#xff0c;因此不能访问内网搭建的Web、FTP、Mail等服务器。路由器 端口映射功能可以实现将内网的服务器映射到Internet&#xff0c;从而实现服务器对外开放。 建议在设置路由器端口映射之前&#xff0c;确认以…

剑指 Offer - 字符串合辑

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340; 算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 题解目录 一、&#x1f331;[剑指 Offer 05. 替换空格](https://leetcode.cn/problems/t…

Flutter数据库操作看这一篇就够了

文章目录 Flutter常用数据库操作库最常用的sqflite介绍简介举例 依赖sqflite,单例模式封装一个sqlite操作类说明initDb说明conflictAlgorithm说明 Flutter常用数据库操作库 Flutter是一种跨平台的移动应用程序开发框架&#xff0c;支持使用多种类型的数据库进行数据存储和管理…

基于Go开发PaaS平台2

Go开发PaaS平台核心功能 代码仓库地址GitHub - yunixiangfeng/gopaas 第7章 云原生 Go PaaS 平台路由管理功能开发&#xff0c;对外域名映射&#xff0c;动态设置域名 域名能够让我们的服务提供外网访问的能力&#xff0c;让公网也能够访问到集群内部的资源&#xff0c;是我…

python+vue高校网上跳蚤二手市场的设计与实现

商品信息是卖家供应用户必不可少的一个部分。在跳蚤市场发展的整个过程中&#xff0c;商品担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类管理系统程序也在不断改进。本课题所设计的普通高校网上跳蚤市场&#xff0c;使用Django框架&#xff0c;Python语言…

OMA-AC-1

6 最小功能集 在其他环境中运行的应用程序通常使用安全元件作为增强系统安全性的手段。 因此&#xff0c;任何符合 Open Mobile API 的移动设备都应该提供对设备上所有 SE 的访问。 因此&#xff0c;传输 API 对于兼容 Open Mobile API 的设备是强制性的。 目前最常见的 SE 是…

Revit幕墙:这些命令在幕墙嵌板中的妙用及快速幕墙

一、Revit中这些命令在幕墙嵌板中的妙用 在我们做幕墙时&#xff0c;通常会有不同种类的幕墙&#xff0c;比如材质不同&#xff0c;颜色不同。这时我们就需要去选中嵌板进行替换新样式的嵌板。 1.通常我们在替换嵌板时都是通过Tab切换&#xff0c;然后选中嵌板。这样进行来回切…
最新文章