Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

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

作者头像
命运之光
发布于 2024-03-20 03:21:04
发布于 2024-03-20 03:21:04
31300
代码可运行
举报
运行总次数:0
代码可运行

🌟博主:命运之光 🦄专栏:离散数学考前复习(知识点+题) 🍓专栏:概率论期末速成(一套卷) 🐳专栏:数字电路考前复习 🦚专栏:数据库系统概述

前言: 身为大学生考前复习一定十分痛苦,你有没有过以下这些经历: 1.啊明天要考试了,关键这知识点它不进脑子啊。 2.小朋友,你是否有很多问号,为什么,快考试了你还啥也不会。 3.你们复习的时候,也是学着学着,手机就自动跳到手里了吗? 4.真正的大学生敢于直面崭新的课本。 5.睡也不敢睡,学也不想学。 6.监考老师+地理位置+附近战友友善度=考试分数。 🍓🍓当然以上都是开些玩笑,看看下面这些题,它可以让零基础未开始学习的你以最快的速度突击期末考试,知识点+练习题,突击起来效率嘎嘎快。

☀️第三章 关系数据库标准语言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ㄒ)/~~还是祝愿你考试顺利啦~

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

再接再厉,继续加油!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
匹配串为固定字符串 【1】 查询学号为201215121的学生的详细情况。 SELECT * FROM Student WHERE Sno LIKE ‘201215121'; 等价于: SELECT * FROM Student WHERE Sno = ' 201215121 '; 匹配串为含通配符的字符串 【1】 查询所有姓刘学生的姓名、学号和性别。 SELECT Sname, Sno, Ssex FROM Student WHERE Sname LIKE '刘%'; 【1】查询姓"欧阳"且全名为三个汉字的学生的姓名。 SELECT Sname FROM Student WHERE Sname LIKE '欧阳__'; 【1】查询名字中第2个字为"阳"字的学生的姓名和学号。 SELECT Sname,Sno FROM Student WHERE Sname LIKE '__阳%'; 【1】查询所有不姓刘的学生姓名、学号和性别。 SELECT Sname, Sno, Ssex FROM Student WHERE Sname NOT LIKE '刘%'; 使用换码字符将通配符转义为普通字符 ESCAPE '\' 表示“ \” 为换码字符 【1】查询DB_Design课程的课程号和学分。 SELECT Cno,Ccredit FROM Course WHERE Cname LIKE 'DB\_Design' ESCAPE '\ ' ; 【1】查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。 SELECT * FROM Course WHERE Cname LIKE 'DB\_%i_ _' ESCAPE '\ ' ; 谓词: IS NULL 或 IS NOT NULL,注意“IS” 不能用 “=” 代替 【1】某些学生选修课程后没有参加考试,所以有选课记录,但没 有考试成绩。查询缺少成绩的学生的学号和相应的课程号。 SELECT Sno,Cno FROM SC WHERE Grade IS NULL 【1】查所有有成绩的学生学号和课程号。 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL; 逻辑运算符:AND和 OR来连接多个查询条件 AND的优先级高于OR 可以用括号改变优先级 【1】查询计算机系年龄在20岁以下的学生姓名。 SELECT Sname FROM Student WHERE Sdept= 'CS' AND Sage<20; 【1】查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别。 SELECT Sname, Ssex FROM Student WHERE Sdept IN ('CS ','MA ','IS') 可改写为: SELECT Sname, Ssex FROM Student WHERE Sdept= ' CS' OR Sdept= ' MA' OR Sdept= 'IS ';
SarPro
2024/03/16
9210
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
数据库系统:第三章 关系数据库标准语言SQL
SQL是结构化查询语言(Structured Query Language)的缩写,是关系数据库的标准语言,实际功能包括数据定义、数据查询、数据操纵和数据控制。SQL标准的制定使得几乎所有的数据库厂家都采用SQL语言作为其数据库语言。但各家又在SQL标准的基础上进行扩充,形成自己的语言。
Here_SDUT
2022/08/09
2.9K0
数据库系统:第三章 关系数据库标准语言SQL
​数据库原理及应用上机(实验三 SQL数据查询)
🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓
命运之光
2024/03/20
6230
​数据库原理及应用上机(实验三 SQL数据查询)
SQL之单表查询
附上下面要用到的数据库和表的 SQL 语句,在数据库管理页面新建一个查询然后使用 CV 大法转移过去执行即可:
wsuo
2020/07/30
1.9K0
3.4 《数据库系统概论》之数据查询—SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)
[例5] 查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名,这里假定目前年份是2004年。
全栈程序员站长
2022/07/01
6.4K0
3.4 《数据库系统概论》之数据查询—SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)
SQL数据查询之——单表查询
一、SQL数据查询的一般格式 数据查询是数据库的核心操作。SQL提供了SELECT语句进行数据查询,其一般格式为: SELECT [ALL | DISTINCT]<目标列表达式>[,<目标列表达式>]··· FROM<表名或视图名>[,<表名或视图名>···] | (SELECT语句>)[AS]<别名> [WHERE<条件表达式>] [GROUP BY<列名1>[HAVING<条件表达式>]] [ORDER BY<列名2>[ASC | DESC]]; 整个SELECT语句的含义是,根据WHERE子句的条件表
Zoctopus
2018/06/04
2K0
sql语句大全+实例讲解「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144192.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/26
2.5K0
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
在 SQL Server 中,标识符(例如表名、列名、数据库名等)默认是不区分大小写的,但是字符串常量是区分大小写的【仅支持英文版双引号("")】。
SarPro
2024/03/16
4450
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
【数据库SQL server】关系数据库标准语言SQL之视图
【1】建立信息系学生的视图。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= 'IS'; 【1】建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生 。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= 'IS' WITH CHECK OPTION; 【1】 建立信息系选修了1号课程的学生的视图(包括学号、姓名、成绩)。 CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept= 'IS' AND Student.Sno=SC.Sno AND SC.Cno= '1'; 【1】 建立信息系选修了1号课程且成绩在90分以上的学生的视图。 CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade>=90; 带表达式的视图 【1】定义一个反映学生出生年份的视图。 CREATE VIEW BT_S(Sno,Sname,Sbirth) AS SELECT Sno,Sname,2014-Sage FROM Student; 分组视图 【1】将学生的学号及平均成绩定义为一个视图 CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno; 【1】将Student表中所有女生记录定义为一个视图 CREATE VIEW F_Student(F_Sno,name,sex,age,dept) AS SELECT * /*没有不指定属性列*/ FROM Student WHERE Ssex=‘女’; 缺点:修改基表Student的结构后,Student表与F_Student视图 的映象关系被破坏,导致该视图不能正确工作。
SarPro
2024/02/20
2810
数据库原理期末复习总结
本文内容为我大三上学期数据库原理期末复习时总结的知识点,文章分为三部分:第一部分是手写的知识点总结,第二部分是电子版的简答题总结,第三部分是部分SQL练习题及其解析!
Cyril-KI
2022/09/19
7790
数据库原理期末复习总结
mysql查询实例
select Sno as 学号,Sname as 姓名 from student;
week
2018/08/24
3.5K0
SQL之学生选课数据库
Restrict说明删除是有条件的,cascade说明该表的删除没有任何限制。
牛老师讲GIS
2018/10/23
2.2K0
SQL之学生选课数据库
【数据库】实验2 单表查询
1.熟练掌握SQL Server查询分析器的使用方法,加深对标准SQL查询语句的理解。
韩旭051
2020/06/22
1.1K0
【数据库SQL server】关系数据库标准语言SQL之数据更新
【1】 删除学号为201215128的学生记录。 DELETE FROM Student WHERE Sno= 201215128 '; 【1】删除所有的学生选课记录。 DELETE FROM SC; 【1】删除计算机科学系所有学生的选课记录。 DELETE FROM SC WHERE Sno IN (SELETE Sno FROM Student WHERE Sdept= 'CS') ;
SarPro
2024/02/20
2180
SQL 数据查询(4)—— 嵌套查询
常见的比较运算符是>,<,=,>=,<=,!=,<>等。 例3.55中的IN就可以用 = 来实现
全栈程序员站长
2022/09/22
1.4K0
SQL 数据查询(4)—— 嵌套查询
数据库原理与应用【实验报告】
实验一 数据库管理系统软件的使用 一、实验目的 (1)认识几种常见的数据库管理系统,熟悉它们的使用界面; (2)熟练掌握建立数据库和表,向数据库输入数据、修改数据和删除数据的操作。 二、实验内容 分别在Access 和SQL SERVER2000 中建立数据库并设计各表,输入多条实际数据,并实现 数据的增、删、改操作。 三、实验步骤: 分别在ACCESS数据库管理系统和SQL SERVR 2005环境下利用图形操作界面(非SQL语句)实现以下操作: 1、创建用于学生管理数据库,数据库名为对表中的记录进行浏览
苦咖啡
2018/05/07
2.9K0
手把手教你 SQL 多表查询
本文通过经典的学生-课程模式 S-T 数据库带大家学习 SQL 常用的多表查询 :
wsuo
2020/07/31
2K0
手把手教你 SQL 多表查询
SQL系列总结(二):DQL(数据查询语言)
数据查询是数据库的核心操作。因此,数据查询语言DQL(Data Query Language)是SQL中的核心部分,它允许用户查询数据,这也是通常最频繁的数据库日常操作。
知识分子没文化
2023/07/01
2900
​数据库原理及应用上机(实验四 SQL连接查询)
🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓
命运之光
2024/03/20
5370
​数据库原理及应用上机(实验四 SQL连接查询)
数据库学习笔记(一)
创建基本表(以及其他数据库对象),如果没有指定模式,系统会根据搜索对象来确定该对象所属的模式
赤蓝紫
2023/01/02
1.3K0
推荐阅读
相关推荐
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档