🌟博主:命运之光 🦄专栏:离散数学考前复习(知识点+题) 🍓专栏:概率论期末速成(一套卷) 🐳专栏:数字电路考前复习 🦚专栏:数据库系统概述
前言: 身为大学生考前复习一定十分痛苦,你有没有过以下这些经历: 1.啊明天要考试了,关键这知识点它不进脑子啊。 2.小朋友,你是否有很多问号,为什么,快考试了你还啥也不会。 3.你们复习的时候,也是学着学着,手机就自动跳到手里了吗? 4.真正的大学生敢于直面崭新的课本。 5.睡也不敢睡,学也不想学。 6.监考老师+地理位置+附近战友友善度=考试分数。 🍓🍓当然以上都是开些玩笑,看看下面这些题,它可以让零基础未开始学习的你以最快的速度突击期末考试,知识点+练习题,突击起来效率嘎嘎快。
本章内容: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 [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>] …
FROM <表名或视图名>[, <表名或视图名> ] …
[ WHERE <条件表达式> ]
[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]
[ ORDER BY <列名2> [ ASC|DESC ] ]; (注:SQL语句中不区分大小写)
SELECT Sno,Sname
FROM Student;
SELECT *
FROM Student;
SELECT Sname,2012-Sage /*假定当年的年份为2012年,减去年龄
即得出生年份*/
FROM Student;
取消取值重复的行:(指定DISTINCT关键词,去掉表中重复的行)
SELECT DISTINCT Sno (使用DISTINCT关键词取消了重复学号的行)
FROM SC;
SELECT Sname
FROM Student
WHERE Sdept =‘CS’;
SELECT Sname,Sdept,Sage
FROM Student
WHERE Sage BETWEEN 20 AND 23;
SELECT Sname,Ssex
FROM Student
WHERE Sdept IN ( 'IS','MA','CS' );
SELECT Sno,Cno
FROM SC
WHERE Grade IS NULL /*不能用’=’代替IS*/
SELECT Sname
FROM Student
WHERE Sdept= 'CS' AND Sage<20;
可以按一个或多个属性列排序。升序:ASC;降序:DESC;缺省值为升序
SELECT Sno,Grade
FROM SC
WHERE Cno= ' 3 '
ORDER BY Grade DESC;
COUNT([DISTINCT|ALL] *) 统计元组个数
COUNT([DISTINCT|ALL] <列名>) 统计一列中值的个数
SUM([DISTINCT|ALL] <列名>) 计算一列值的总和
AVG([DISTINCT|ALL] <列名>) 计算一列值的平均值
MAX([DISTINCT|ALL] <列名>) 求一列中的最大值
MIN([DISTINCT|ALL] <列名>) 求一列中的最小值
SELECT AVG(Grade)
FROM SC
WHERE Cno= ' 1 ';
SELECT Student.*,SC.*
FROM Student,SC
WHERE Student.Sno = SC.Sno;
带有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”。
SELECT Sname
FROM Student
WHERE EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno= ' 1 ');
集合操作的种类:并操作UNION,交操作INTERSECT,差操作EXCEPT
SELECT *
FROM Student
WHERE Sdept= 'CS'
UNION
SELECT *
FROM Student
WHERE Sage<=19;
SELECT *
FROM Student
WHERE Sdept='CS'
INTERSECT
SELECT *
FROM Student
WHERE Sage<=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;
}
再接再厉,继续加油!