数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

news2024/11/24 11:25:38

🌟博主:命运之光

🦄专栏:离散数学考前复习(知识点+题)

🍓专栏:概率论期末速成(一套卷)

🐳专栏:数字电路考前复习

🦚专栏:数据库系统概述

☀️博主的其他文章:点击进入博主的主页​​​​​

前言: 身为大学生考前复习一定十分痛苦,你有没有过以下这些经历:

1.啊明天要考试了,关键这知识点它不进脑子啊。

2.小朋友,你是否有很多问号,为什么,快考试了你还啥也不会。

3.你们复习的时候,也是学着学着,手机就自动跳到手里了吗?

4.真正的大学生敢于直面崭新的课本。

5.睡也不敢睡,学也不想学。

6.监考老师+地理位置+附近战友友善度=考试分数。

🍓🍓当然以上都是开些玩笑,看看下面这些题,它可以让零基础未开始学习的你以最快的速度突击期末考试,知识点+练习题,突击起来效率嘎嘎快。
 

目录

☀️第三章 关系数据库标准语言SQL(重点)

🐳1、SQL语言是(C)语言。

🐳2、SQL语言具有两种使用方式,分别称为交互式SQL和(C)。

🐳3、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系(D)。

🐳4、如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作(B)不能执行。

🐳5、在SQL语言中,用来测试一个集合里是否有重复元组存在,使用下列哪一个关键字(A)

🐳🐳6、SQL数据查询语句

SELECT语句格式:

①单表查询

(1)选择表中的若干列:

查询指定列:

🍓例:查询全体学生的学号与姓名

查询所有列:(将<目标列表达式>指定为 *)

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

查询结果计算的值:

🍓例:查全体学生的姓名及其出生年份。

(2)选择表中的若干元组

🍓例:查询选修了课程的学生号码

查询满足条件的行:(WHERE语句)

🍓例:查询计算机科学系全体学生的名单。(比较)

🍓例:查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄(确定范围)

🍓例:查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。(确定集合)

🍓例:(字符匹配)例:某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。(空值)

🍓例:查询计算机系年龄在20岁以下的学生姓名。(多重条件)

(3)ORDER BY子句

🍓例:查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

(4)聚集函数

🍓例:计算1号课程的学生平均成绩。

②多表查询

(1)等值查询

🍓例:查询每个学生及其选修课程的情况

(2)嵌套查询

🍓例:查询与“刘晨”在同一个系学习的学生

🍓例:查询与“刘晨”在同一个系学习的学生

🍓例:查询其他系中比计算机科学某一学生年龄小的学生姓名和年龄

🍓例:查询所有选修了1号课程的学生姓名。

(3)集合查询

🍓例:查询计算机科学系的学生及年龄不大于19岁的学生。(并)

🍓例:查询计算机科学系的学生与年龄不大于19岁的学生(交)

🍓例:查询计算机科学系的学生与年龄不大于19岁的学生。(差)

🍓例题:设学生课程数据库中有三个关系:

🌟结语


☀️第三章 关系数据库标准语言SQL(重点)

本章内容:SQL概述、数据定义、数据查询、数据更新、视图

本章主要考点:基本概念、■■数据查询的基本语句操作、数据更新语句

🐳1、SQL语言是(C)语言。

A.层次数据库

B.网络数据库

C.关系数据库

D.非数据库

🐳2、SQL语言具有两种使用方式,分别称为交互式SQL和(C)。

A.提示式SQL

B.多用户SQL

C.嵌入式SQL

D.解释式SQL

🐳3、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系(D)。

A.S

B.SC,C

C.S,SC

D.S,C,SC

🐳4、如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作(B)不能执行。

A.从职工表中删除行(‘025’,‘王芳’,‘03’,720)

B.将行(‘005,’,‘乔兴’,‘04’,750)插入到职工表中

C.将职工号为,‘001’的工资改为700

D.将职工号为,’038’的部门号改为‘03’

🐳5、在SQL语言中,用来测试一个集合里是否有重复元组存在,使用下列哪一个关键字(A)

A.UNIQUE

B.DISTINCT

C.EXISTS

D.NOT IN

🐳🐳6、SQL数据查询语句

SELECT语句格式:

SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>] …

FROM <表名或视图名>[, <表名或视图名> ] …

[ WHERE <条件表达式> ]

[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]

[ ORDER BY <列名2> [ ASC|DESC ] ]; (注:SQL语句中不区分大小写)

①单表查询

1)选择表中的若干列:

查询指定列:

🍓例:查询全体学生的学号与姓名

SELECT Sno,Sname

FROM Student;

查询所有列:(将<目标列表达式>指定为 *)

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

SELECT *

FROM Student;

查询结果计算的值

🍓例:查全体学生的姓名及其出生年份。

SELECT Sname,2012-Sage /*假定当年的年份为2012年,减去年龄

即得出生年份*/

FROM Student;

(2)选择表中的若干元组

取消取值重复的行:(指定DISTINCT关键词,去掉表中重复的行)

🍓例:查询选修了课程的学生号码

SELECT DISTINCT Sno (使用DISTINCT关键词取消了重复学号的行)

FROM SC;

查询满足条件的行:(WHERE语句

🍓例:查询计算机科学系全体学生的名单。(比较)

SELECT Sname

FROM Student

WHERE Sdept =‘CS’;

🍓例:查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄(确定范围)

SELECT Sname,Sdept,Sage

FROM Student

WHERE Sage BETWEEN 20 AND 23;

🍓例:查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。(确定集合)

SELECT Sname,Ssex

FROM Student

WHERE Sdept IN ( 'IS','MA','CS' );

🍓例:(字符匹配)例:某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。(空值)

SELECT Sno,Cno

FROM SC

WHERE Grade IS NULL /*不能用’=’代替IS*/

🍓例:查询计算机系年龄在20岁以下的学生姓名。(多重条件)

SELECT Sname

FROM Student

WHERE Sdept= 'CS' AND Sage<20;

(3)ORDER BY子句

可以按一个或多个属性列排序。升序:ASC;降序:DESC;缺省值为升序

🍓例:查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

SELECT Sno,Grade

FROM SC

WHERE Cno= ' 3 '

ORDER BY Grade DESC;

(4)聚集函数

COUNT([DISTINCT|ALL] *) 统计元组个数

COUNT([DISTINCT|ALL] <列名>) 统计一列中值的个数

SUM([DISTINCT|ALL] <列名>) 计算一列值的总和

AVG([DISTINCT|ALL] <列名>) 计算一列值的平均值

MAX([DISTINCT|ALL] <列名>) 求一列中的最大值

MIN([DISTINCT|ALL] <列名>) 求一列中的最小值

🍓例:计算1号课程的学生平均成绩。

SELECT AVG(Grade)

FROM SC

WHERE Cno= ' 1 ';

②多表查询

(1)等值查询

🍓例:查询每个学生及其选修课程的情况

SELECT Student.*,SC.*

FROM Student,SC

WHERE Student.Sno = SC.Sno;

2)嵌套查询

带有IN谓词的子查询:

🍓例:查询与“刘晨”在同一个系学习的学生

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept IN

(SELECT Sdept

FROM Student

WHERE Sname=‘ 刘晨 ’);

带有比较运算符的子查询:(当内查询的结果是一个值时,可以用=代替IN)

🍓例:查询与“刘晨”在同一个系学习的学生

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept =

(SELECT Sdept

FROM Student

WHERE Sname=‘ 刘晨 ’);

带有ANY或ALL谓词的子查询

🍓例:查询其他系中比计算机科学某一学生年龄小的学生姓名和年龄

SELECT Sname,Sage

FROM Student

WHERE Sage < ANY (SELECT Sage

FROM Student

WHERE Sdept= ' CS ')

AND Sdept <> ‘CS ' ; /*这句是父查询块中的条件 */

带有EXISTS谓词的子查询:

相当于存在量词∃,带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”。

🍓例:查询所有选修了1号课程的学生姓名。

SELECT Sname

FROM Student

WHERE EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno= ' 1 ');

3)集合查询

集合操作的种类:并操作UNION,交操作INTERSECT,差操作EXCEPT

🍓例:查询计算机科学系的学生及年龄不大于19岁的学生。(并)

SELECT *

FROM Student

WHERE Sdept= 'CS'

UNION

SELECT *

FROM Student

WHERE Sage<=19;

🍓例:查询计算机科学系的学生与年龄不大于19岁的学生(交)

SELECT *

FROM Student

WHERE Sdept='CS'

INTERSECT

SELECT *

FROM Student

WHERE Sage<=19

🍓例:查询计算机科学系的学生与年龄不大于19岁的学生。(差)

SELECT *

FROM Student

WHERE Sdept='CS'

EXCEPT

SELECT *

FROM Student

WHERE Sage <=19;

🍓例题:设学生课程数据库中有三个关系:

学生关系S(S#,SNAME,AGE,SEX)

学习关系SC(S#,C#,GRADE)

课程关系C(C#,CNAME)

其中S#(学号)、C#(课程号)、SNAME(姓名)、AGE(年龄)、SEX(性别)、GRADE(成绩)、CNAME(课程名)

用SQL语句表达下列操作

(1)检索选修课程名称为“MATHS”的学生的学号与姓名

(2)检索至少学习了课程号为“C1”和“C2”的学生的学号

(3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄

(4)检索平均成绩超过80分的学生学号和平均成绩

(5)检索选修了全部课程的学生姓名

(6)检索选修了三门课以上的学生的姓名

解:

(1)

SELECT SNAME,S#

FROM S,SC,C

WHERE S.S#=SC.S#

AND C.C#=SC.C#

AND CNAME=’ MATHS’

(2)

SELECT S#

FROM SC

WHERE CNO=’C1’ AND S# IN( SELECT S#

FROM SC

WHERE CNO=’C2’)

(3)

SELECT S#,SNAME,AGE

FROM S

WHERE AGE BETWEEN 18 AND 20

(4)

SELECT S# ,AVG(GRADE)

FROM SC

GROUP BY S#

HAVING AVG(GRADE)>80

(5)

SELECT SNAME

FROM S

WHERE NOT EXISTS

(SELECT *

FROM C

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE S#=S.S# AND C#=C.C# )

)

(6)

SELECT SNAME

FROM S,SC

WHERE S.S#=SC.S#

GROUP BY SNAME

HAVING COUNT(*)>3

🌟结语

❤️❤️一路看到这里,相信你的数据库考试应该已经增加了几分胜算💪🏻

❤️❤️如果喜欢本文请不吝点赞👍🏻,如果爱上本文请留下评论~

❤️❤️如果既不想点赞又不想评论…那么/(ㄒoㄒ)/~~还是祝愿你考试顺利啦~

#include<bits/stdc++.h>
using namespace std;
int main()
{
    cout<<"对编程,算法,人工智能,机器学习,深度学习,";
    cout<<"图像处理,大数据挖掘,web前端网页设计等等感兴趣的同学";
    cout<<"可以关注命运之光,命运之光正在努力学习,";
    cout<<"不断的提升自己的专业能力,耗油跟,加加布鲁根!"<<endl; 
    return 0;
}

再接再厉,继续加油! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux基础内容(23)—— 信号补充与多线程交接知识

Linux基础内容&#xff08;22&#xff09;—— 信号_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/130835485 目录 1.可重入函数 1.情况假设 2.volatile 3.SIGCHLD信号 1.SIGCHLD介绍 2.信号的确认 3.wait的处理 1.可重入函数 1.情况假设…

插件 - 通过SPI方式实现插件管理

文章目录 SPI概念基本原理使用步骤优点缺点Code真实使用场景案例JDBC(Java Database Connectivity)Servlet API日志框架SPI概念 SPI(Service Provider Interface)是Java提供的一种服务扩展机制,它允许应用程序在运行时动态加载和发现提供者(Providers),并与它们进行交…

Proteus仿真之UART通信(点亮LED灯)

1.UART通信简介&#xff1a;通用异步收发传输器UART(Universal Asynchronous Receiver/Transmitter)是负责处理数据总线和串口之间的串/并通信的设备。UART通信规定了数据帧的格式&#xff1a;起始位、数据位、校验位、停止位等。UART异步通信只需要通信双方设置好数据帧的格式…

房屋装修选择自装,如何寻找水电工人,比价并施工(水电阶段)

环境&#xff1a; 地点&#xff1a;杭州 装修类型&#xff1a;自装 面积&#xff1a;建面135平方 进度&#xff1a;水电阶段 问题描述&#xff1a; 房屋装修选择自装&#xff0c;如何寻找水电工人&#xff0c;比价并施工 解决方案&#xff1a; 一、了解水电相关知识 水…

Python3+RIDE+RobotFramework自动化测试框架搭建

Python2.7已于2020年1月1日开始停用&#xff0c;之前RF做自动化都是基于Python2的版本。 没办法&#xff0c;跟随时代的脚步&#xff0c;我们也不得不升级以应用新的控件与功能。 升级麻烦&#xff0c;直接全新安装。 一、Python安装 最新版Python下载地址&#xff1a;http…

Qt连接Access数据库

Qt自带有QODBC驱动&#xff08;封装了ODBC驱动接口&#xff09;&#xff0c;通过windows平台上提供的ODBC驱动访问支持ODBC的数据库&#xff0c;如Ms Access、SQL Server等 (Windows XP 自带有Access和SQL Server的ODBC Driver)。我们就用QODBC对Access数据库进行访问。 Acces…

别再瞎搞了,耳朵都竖起来听我说,新手小白开发应该如何选择最合适你的JetBrains IDE版本类型和版本号! 今天一次性给你说清楚!

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&#x1…

windows环境下搭建redis集群

下面记录一下windows10环境下搭建redis3主3从集群&#xff0c;将过程分享出来&#xff0c;仅供学习研究使用。 1、redis集群 Redis集群关键点就是去掉中心化(与哨兵模式的区别)&#xff0c;当主机宕机&#xff0c;从节点回自动升级为主节点&#xff0c;具体请参考官网或相关大…

机器学习——KNN算法(手动代码,含泪)

徒手实现代码的过程&#xff0c;真是含泪和心酸&#xff0c;浪费了生命中的三天&#xff0c;以及工作中的划水一小时 终于滤清思路后&#xff0c;自己实现了KNN 都说KNN是最基础&#xff0c;最简单的分类器 放屁&#xff01;骗纸&#xff01;&#xff01;&#xff01;它的想法是…

第八章——向量代数与空间解析几何

目录 一、运算公式 二、平面的法线向量 注&#xff1a;加粗体为向量 一、运算公式 1.若a//b&#xff0c;那么aλb 若a⊥b&#xff0c;那么a*b0 2.若A(x1,y1,z1)&#xff0c;B(x2,y2,z2) 中点坐标&#xff1a;AB中点M(x1x2/2,y1y2/2,z1z2/2) 两点间的距离和模的计算&#x…

第3章 信息系统治理

文章目录 3.1.1 IT治理基础1. IT治理的驱动因素2. IT治理的目标价值3. IT治理的管理层次 3.1.2 IT治理体系1. IT治理关键决策2. IT治理体系框架3. IT治理核心内容4. IT治理机制经验&#xff08;建立IT治理机制的原则&#xff1a;简单、透明、适合&#xff09; 3.1.3 IT治理任务…

工作流引擎Flowable

这里写目录标题 1.Flowable基础1.1 入门学习 2.流程图设计器2.1 FlowableUI2.1.1 绘制流程图 1.Flowable基础 官方手册 1.1 入门学习 一、依赖 <dependencies><dependency><groupId>org.flowable</groupId><artifactId>flowable-engine</…

jenkins——Git版本管理

这里写目录标题 一、Jenkins Git 版本管理1、Git 的集成2、在执行job的机器上安装好Git3、无法连接仓库&#xff0c;问题解决解决方法1&#xff1a;&#xff08;不推荐&#xff09;1、把仓库设置成公开的&#xff0c;然后重新添加仓库地址 解决方法2&#xff1a;通过凭证的方式…

打破Spring的垄断,云原生Java框架Micronaut

文章目录 什么是Micronaut&#xff1f;Micronaut的功能特性相较于Spring的优势 Micronaut框架的使用安装Micronaut cli创建Micronaut项目 Micronaut应用的部署micronaut反应式编程 MCNU云原生&#xff0c;文章首发地&#xff0c;欢迎微信搜索关注&#xff0c;更多干货&#xff…

基于springboot的文件的上传到本地和云上传(阿里云)

1.文件上传 1.介绍 文件上传&#xff0c;是指将本地图片、视频、音频等文件上传到服务器&#xff0c;供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛&#xff0c;我们经常发微博、发微信朋友圈都用到了文件上传功能。 2.前端的文件上传–form表单 将静态的页面…

接口自动化测试面试问题及答案

目录 1.请问你是如何做接口测试的&#xff1f; 2.接口测试如何设计测试用例&#xff1f; 3.接口测试执行中需要比对数据库吗&#xff1f; 4.接口测试质量评估标准是什么&#xff1f; 5.接口产生的垃圾数据如何清理 6.其他接口要先获取接口信息&#xff0c;如何让登录的接口…

化工园区人员全过程轨迹化安全解决方案

1、项目背景 化工园区化工厂是生产安全重点单位&#xff0c;对人员定位管理需求强烈。对人员定位主要需求是&#xff1a;一般区域人数统计、人员轨迹、重点区域人员实时精准定位。 华安联大安全化工园区人员全过程轨迹化安全解决方案通过人员实时定位管理、移动轨迹追溯、险情…

《项目实战》构建SpringCloud alibaba项目(二、构建微服务鉴权子工程store-authority-service)

系列文章目录 构建SpringCloud alibaba项目&#xff08;一、构建父工程、公共库、网关&#xff09; 构建SpringCloud alibaba项目&#xff08;二、构建微服务鉴权子工程store-authority-service&#xff09; 文章目录 系列文章目录前言1、在公共库增加 UserInfo类2、微服务鉴权…

初识SLAM

SLAM的作用 想象一个叫小萝卜的机器人&#xff0c;小萝卜在未知环境走&#xff0c;肯定想让小萝卜在脑海中记住两件事&#xff1a; 1. 我在什么地方&#xff1f;——定位。 2. 周围环境是什么样&#xff1f;——建图。 这就和我们逛一个旅游景点一样&#xff0c;我们会潜意识…

清华青年AI自强作业hw3_3:用NN网络拟合MNIST手写数字分类

清华青年AI自强作业hw3_3&#xff1a;用NN网络拟合MNIST手写数字分类 实现过程具体思路多分类网络模型训练结果分析 相关链接 一起学AI系列博客&#xff1a;目录索引 hw3_3&#xff1a;用NN网络拟合MNIST手写数字分类 体会神经网络设计和TF框架编程 对比hw3_1两者的模型、效果…