当前位置: 首页 > article >正文

《数据库原理》SQLServer期末复习_题型+考点

目录

题型:

一. 概况分析题(5小题,每小题2分,共10分)

二. 计算题(3小题,每小题5分,共15分)

三. 数据库设计(2小题,每小题10分,共20分)

四. 规范化分析与设计题(2小题,每小题10,共20分)

五. 编程应用题(本大题共6小题,共35分)

考点:

① 关系模型,DBMS,数据库系统发展阶段 (人工管理、文件系统、数据库系统)

② 主键,外健,域,check,关系的类型

③ 关系代数:π s ⋈查询结果

④ E-R图转换成关系模式、关系的函数依赖集

⑤ 范式

⑥ 查询:Select ,in ,Year, GetDate, DateDiff, 聚集函数,Like

⑦ Create database 、alter database、Create table

⑧ Insert, Update,Delete

⑩ 视图view和索引index

⑫ Create proc  as  执行:exec proc1(存储过程和触发器)

数据库设计综合实验

本篇完。


题型:

一. 概况分析题(5小题,每小题2分,共10分)

填空,例:该信息属于哪种数据模型:关系模型。数据?


二. 计算题(3小题,每小题5分,共15


三. 数据库设计(2小题,每小题10分,共20分)


四. 规范化分析与设计题(2小题,每小题10,共20分

函数依赖集、部分函数依赖集、传递函数依赖集、候选码


五. 编程应用题(本大题共6小题,共35分)


考点:

① 关系模型,DBMS,数据库系统发展阶段 (人工管理、文件系统、数据库系统)


② 主键,外健,域,check,关系的类型


③ 关系代数:π s ⋈查询结果


④ E-R图转换成关系模式、关系的函数依赖集


⑤ 范式


⑥ 查询:Select ,in ,Year, GetDate, DateDiff, 聚集函数,Like

        任务:查询学生表中全体学生的全部信息。

select *from student

        任务:检索全体学生的学号、姓名、年龄。

Tips:其中年龄要由DateDiff(year,birthday,GETDATE( ))来求

select  sno,sname,DateDiff(year,birthday,GETDATE( )) as 年龄 
from student

        任务:查询成绩大于80分的学生的学号及课程号、成绩 

select sno,cno,grade
from sc 
where grade >80

        任务从学生表中分别检索出名字的第二个字是“甜”或“”的所有同学的信息。

select *from student 
where sname like '_[小,甜]%'

        任务:统计女学生人数。

select count(distinct sno) as 女生人数 from student
where sex='女'

        任务:从表sc中查询所有成绩中的最高分和最低分。

select max(grade) as 最高分, min(grade) as 最低分
from sc

      任务:统计学号为‘0601110101’的学生的总成绩和平均成绩。

select sum(grade) as 总成绩,avg(grade) as 平均成绩
from sc
where sno='0601110101'

      任务:查询各个课程号相应的选课人数。

select count(*) as 选课人数 from sc
group by cno

       任务:查询平均年龄大于18岁的系和平均年龄

     Tips: 使用DATEDIFF(Year,birthday,GetDate( ))计算年龄

select sdept,avg(DATEDIFF(Year,birthday,GetDate( ))) as 平均年龄 
from student 
group by sdept
having avg(DATEDIFF(Year,birthday,GetDate( )))

       任务:汇总总分大于150分的学生的学号及总成绩。

select sno,sum(grade) as 汇总总成绩 
from sc
group by sno
having sum(grade)>150

      任务:查询所有学生的学号、姓名、选修课程号和成绩(用where和join on分别实现)。

select student.sno,sname,cno,grade 
from student,sc
where student.sno = sc.sno
select student.sno,sname,cno,grade 
from student join sc
on student.sno = sc.sno

      任务:查询所有年龄比张甜甜大的学生的姓名、性别和年龄。

            Tips:可以使用自查询也可以使用子查询

select sname,sex,DATEDIFF(Year,birthday,GetDate( )) as age
from student
where DATEDIFF(Year,birthday,GetDate( )) > (select DATEDIFF(Year,birthday,GetDate( ))from studentwhere sname = '张甜甜')

      任务:查询比‘软件技术’系的任一学生年龄都大的非‘软件技术’系的学生的姓名,年龄,所在系名。

select sname,DATEDIFF(Year,birthday,GetDate( )) as age,sdept
from student
where sdept != '软件技术' and DATEDIFF(Year,birthday,GetDate( )) >= (select MAX(DATEDIFF(Year,birthday,GetDate( )))from studentwhere sdept = '软件技术')

      任务:查询尚没有学生选修的课程信息。

select sname,DATEDIFF(Year,birthday,GetDate( )) as age,sdept
from student
where sdept != '软件技术' and DATEDIFF(Year,birthday,GetDate( )) >= (select MAX(DATEDIFF(Year,birthday,GetDate( )))from studentwhere sdept = '软件技术')

      任务:将选修了“数据库应用技术”课程的学生成绩增加5分。

UPDATE sc
SET grade = grade + 5
FROM sc
JOIN course ON sc.cno = course.cno
WHERE course.cname = '数据库应用技术'

⑦ Create database 、alter database、Create table


        任务:创建一个学生成绩管理数据库XSCJ,存储在D:\software文件夹下,该数据库的主数据文件的逻辑名称为xscj_data,物理文件名为xscj.mdf,初始存储空间大小为20MB,最大存储空间为500MB,自动增长量为10%;日志文件的逻辑名称为xscj_log,文件名为xscj.ldf,初始存储空间大小为10MB,最大存储空间为100MB,存储空间自动增长量为1MB。

create database XSCJ
ON(NAME=xscj_data,
filename = 'C:\mysoftware\xscj.mdf',
size=20,
maxsize=500,
filegrowth=10%
)
log on(NAME=xscj_log,filename='C:\mysoftware\xscj.ldf',size=10,maxsize=100,filegrowth=1
)

       任务:用SQL命令修改数据库XSCJ,添加一个次要数据文件,逻辑名称为XSCJ_Datanew,存放在D:\software下,文件名为XSCJ_Datanew.ndf。数据文件的初始大小为100MB,文件自动增长容量为10MB。

alter database XSCJ
add file(name=XSCJ_Datanew,
filename='C:\mysoftware\XSCJ_Datanew.ldf',
size=100,
filegrowth=10
)

        任务:按下表的逻辑结构创建student表。

列名称

类型

宽度

允许空值

缺省值

约束

主键

说明

sno

char

10

学号

sname

varchar

15

学生姓名

sex

char

2

性别

birthday

smalldatetime

出生年月

sdept

varchar

15

班级号

use XSCJ
create table student
(
sno char(10) not null primary key,
sname varchar(15) not null,
sex char(2) not null default '男',
birthday smalldatetime,
sdept varchar(15)
)

⑧ Insert, Update,Delete

        任务:向student表添加以下数据。

sno

sname

sex

birthday

sdept

0601110101

张甜甜

1986-05-05

计算机应用技术

0601110102

陈强

1986-01-06

计算机应用技术

insert into student(sno,sname,sex,birthday,sdept) values('0601110101','张甜甜','女','1986-05-05','计算机应用技术')
insert into student(sno,sname,sex,birthday,sdept) values('0601110102','陈强','男','1986-01-06','计算机应用技术')

        任务:在student表中,将张甜甜同学,转到软件技术系。

update student
set sdept='软件技术'
where sname='张甜甜'

        任务:将course表中课程号为 16020011的课程名改为Java语言学分改为4.0.

update course
set cname='Java语言',credit=4.0
where cno='16020011'

        任务:在sc表中删除学号为0604150101的所有选课记录。

delete from sc where sno='0604150101'

⑨ Create login, ceate user,  grant to

⑩ 视图view和索引index

       任务: 创建视图view_grade,查询张甜甜同学的学号,姓名及成绩,并显示视图view_grade结果。

create view view_grade
as
select student.sno,sname,sc.grade
from student,sc
where student.sno=sc.sno and student.sname='张甜甜'
go
select *from view_grade

        任务: 创建视图view_sc_count,统计课程号为’16020010’的课程的选修人数,并对视图文本加密。显示视图结果(Tips:使用 with encryption子句加密)

create view view_sc_count(课程号,人数)
with encryption
as
select cno,count(cno)
from sc
group by cno having cno='16020010'
go
select *from view_sc_count

        任务: 修改视图view_bysex, 查询student表中所有的女同学信息

alter view view_bysex
as
select *from student
where sex='女'
go
select *from view_bysex

        任务: 删除视图view_grade。

drop view view_grade

        任务: 运行以下代码仔细观察运行结果,试解释产生结果的原因。

     第一行,是利用视图sub_student向Student表插入数据,视图本身没有发生变化

     第二行,是查询视图里有没有这个数据,因为视图并没有插入有,所以没有数据显示

     第三行,是查询Student表,因为插入有,所以有数据显示


        任务: 为student表创建一个以sname为索引关键字的非聚集索引。 索引名称是index_sname。

use xscj
create nonclustered index index_sname on student(sname)

    任务: 删除索引index_sname。

drop index student.index_sname

⑪ Backup database Teach to disk=”   restore database Teach from disk=’’


⑫ Create proc  as  执行:exec proc1(存储过程和触发器)

     任务: 创建一个无参存储过程pro1,用于返回大于18岁学生的信息

use xscj
go
create procedure pro1
as
select *from student where datediff(year,birthday,getdate())>18
go
exec pro1

      任务: 创建一个带参存储过程pro2,当用户输入一个学生姓名时,若该学生存在,就显示该学生的学号、姓名、性别,年龄、系部。若该学生不存在,则返回“查无此人”的提示信息。执行pro2,进行测试。

use xscj
go
create proc pro2 @name char(6)
as
if exists(select *from student where sname=@name)select sno 学号,sname 姓名,sex 性别,datediff(year,birthday,getdate()) 年龄,sdept 系部from studentwhere sname=@name
else
print'查无此人!'
go
exec pro2 '张甜甜'

      任务: 创建一个存储过程pro3,要求带一个输入参数和两个输出参数,当用户输入一个学生学号时,输出该学生的姓名和所在系部。执行pro3,进行测试。

use xscj
go
if exists(select *from sys.procedures where name ='pro3')drop proc pro3
go 
create proc pro3
@no char(10),@name char(6) output,@sdept char(10) output
as
select @name=sname,@sdept=sdept
from student
where sno=@no
go
declare @name char(6),@sdept char(10)
exec pro3 '0601110101',@name output,@sdept output
select @name as 姓名,@sdept as 系部

      任务: 创建在SC表中添加一条新选课记录的存储过程pro4,新记录的值由参数提供,请使用pro4添加一条新的选课记录,学号为S6,课程号为C3

create  proc pro4(@sno char(10) ,@cno char(8),@grade float='0')
as
insert into sc values(@sno,@cno,@grade)
go
exec pro4 '0601110101','16020015'
select *from sc


⑬ Create trigger

⑭ Create function fun(@ t datetime) returns table          Return

⑮ Case  when  while

⑯ Cast(@num as char(2))

数据库设计综合实验

        实验内容:设某学校建立图书管理系统,需要存储学生、图书及借阅记录的基本信息。其中,学生信息包括学号、姓名、性别及系别,图书信息包括图书编号、图书名称、出版日期及库存数量,借阅记录包括学号、图书编号、借出时间及还书时间。学生可以通过该系统查看图书信息,借阅后生成借阅记录,并提交给图书馆。根据该系统的要求完成下列操作。

        任务1:根据上面的业务逻辑画出全局E-R图


        任务2:根据任务1的E-R图转换成关系模式,并标出每个模式的主码和外码。

学生信息(学号,姓名,性别,系别)

图书(图书编号,图书名称,库存数量,出版日期)

借阅(学号,图书编号,还书时间,借书时间)


        任务3:创建图书管理数据库LMS,指定数据文件和日志文件都放在D:\LMSDB文件下。

create database LMS
on 
(name=LMS_data,filename='D:\LMSDB\LMS.mdf',SIZE=20,MAXSIZE=500,FILEGROWTH=10%
)
LOG ON (NAME=LMS_log,filename='D:\LMSDB\LMS.ldf',SIZE=10,MAXSIZE=100,FILEGROWTH=1
);

实验结果:


        任务4:创建图书表book。( tips:表的数据类型设计按应用自己设计,需要主键) 

CREATE TABLE BOOK(Bid char(10)not null PRIMARY KEY,Bname varchar(20) not null,Bate smalldatetime,Bnumber int not null
)

实验结果:


        任务5:创建一个SQL Server登录帐户U1,密码为123,并指定这个登录名的默认数据库为LMS。

create login U1 with password='123',default_database=LMS


        任务6:为登录帐户U1创建数据库(LMS)数据库用户admin1,为数据库用户admin1授权查看book表.

create user admin1 for login[U1] 
grant select on book to admin1


本篇完。

emmmmmmmmm。

相关文章:

《数据库原理》SQLServer期末复习_题型+考点

目录 题型: 一. 概况分析题(5小题,每小题2分,共10分) 二. 计算题(3小题,每小题5分,共15分) 三. 数据库设计(2小题,每小题10分,共2…...

Zstd(Zstandard)压缩算法

要压缩的数据量越小,压缩的难度就越大。这个问题对所有压缩算法都是通用的,原因是压缩算法从过去的数据中学习如何压缩未来的数据。但是,在新数据集开始时,没有“过去”可以构建。 官网 为了解决这种情况,Zstd 提供了一…...

烧结银技术赋能新能源汽车超级快充与高效驱动

烧结银技术赋能新能源汽车超级快充与高效驱动 在新能源汽车领域,高压快充技术的突破与高功率密度驱动系统的创新正成为行业竞争的焦点。比亚迪于 2025 年发布的超级 e 平台,通过整合全域千伏高压架构、兆瓦级闪充技术及碳化硅(SiC&#xff0…...

本地部署 browser-use

本地部署 browser-use 0. 引言1. 核心功能与优势2. 快速上手3. 部署 Gradio UI4. 更多示例0. 引言 Browser-Use 是一个强大的工具,旨在让 AI Agent 能够控制浏览器,从而实现各种自动化任务。它简化了 AI 与浏览器的交互,让开发者能够轻松构建能够执行网页操作的智能应用。本…...

笔记:代码随想录算法训练营day59:110.字符串接龙 、105.有向图的完全可达性、106.岛屿的周长

学习资料:代码随想录 110. 字符串接龙 卡码网题目链接(ACM模式) 还是有些许复杂,要把字符串从begin开始遍历,然后把每一个字母都换一下,看能否在字典里找到,如果能找到就入队列并记录&#x…...

电力和冷却管理:如何让数据中心“高效降温”同时节能增效

电力和冷却管理:如何让数据中心“高效降温”同时节能增效 数据中心作为现代信息技术基础设施的核心,承担着处理、存储和传输海量数据的重任。然而,这些庞大的服务器和存储设备在高速运转时,不仅需要大量电力供应,还产生了大量热量。如何平衡电力消耗与有效冷却,成为了数…...

Vite管理的Vue3项目中monaco editer的使用以及组件封装

文章目录 背景环境说明安装流程以及组件封装引入依赖封装组件 外部使用实现效果 v-model实现原理 背景 做oj系统的时候,需要使用代码编辑器,决定使用Monaco Editor,但是因为自身能力问题,读不懂官网文档,最终结合ai和网友的帖子成功引入&…...

查找重复代码[A卷-hw_od]

题目描述 小明负责维护项目下的代码&#xff0c;需要查找出重复代码&#xff0c;用以支撑后续的代码优化&#xff0c;请你帮助小明找出重复的代码。 重复代码查找方法&#xff1a;以字符串形式给定两行代码&#xff08;字符串长度 1 < length < 100&#xff0c;由英文字…...

HAl库开发中断方式接收Can报文的详细流程

下面给出一个基于 HAL 库的中断方式接收 CAN 报文的详细流程说明&#xff0c;描述每一步的硬件配置、软件调用和中断处理机制&#xff0c;而不涉及具体代码细节&#xff0c;只讲解整体原理和步骤&#xff1a; 在使用 HAL 库时&#xff0c;不需要手动清除中断标志位。原因如下&…...

[笔记] TinyWebServer编译及demo运行过程

文章目录 前言环境搭建ubuntumysql 8.0c/c开启root用户TinyWebServer 搭建及编译过程运行结果常见问题./threadpool/../CGImysql/sql_connection_pool.h:6:10: fatal error: mysql/mysql.h: No such file or directory./server运行后直接退出了 前言 哎 也就帮帮新手看看问题 …...

基于springboot的电影院管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 互联网技术的成熟和普及&#xff0c;势必会给人们的生活方式带来不同程度的改变。越来越多的经营模式中都少不了线上运营&#xff0c;互联网正强力推动着社会和经济发展。国人对民族文化的自信和不同文化的包容&#xff0c;再加上电影行业的发展&#xff0c;如此繁荣吸引…...

基于Redis分布锁+事务补偿解决数据不一致性问题

基于Redis的分布式设备库存服务设计与实现 概述 本文介绍一个基于Redis实现的分布式设备库存服务方案&#xff0c;通过分布式锁、重试机制和事务补偿等关键技术&#xff0c;保证在并发场景下库存操作的原子性和一致性。该方案适用于物联网设备管理、分布式资源调度等场景。 …...

虚拟电商-延迟任务系统的微服务改造(二)注册中心和Feign调用

一、微服务注册中心Consul 编写完延迟任务系统的web层接口&#xff0c;也就是说可以基于http协议来访问延迟系统&#xff0c;接下来要将延迟任务改造成一个服务。首要考虑的问题就是服务的注册与发现&#xff0c;服务的注册与发现都离不开服务的注册中心&#xff0c;本项目选取…...

数智读书笔记系列022《算力网络-云网融合2.0时代的网络架构与关键技术》读书笔记

一、书籍核心价值与定位 1.1 书籍概述:中国联通研究院的权威之作 《算力网络 —— 云网融合 2.0 时代的网络架构与关键技术》由中国联通研究院算力网络攻关团队精心撰写,是业界首部系统性探讨云网融合 2.0 与算力网络的专著。在云网融合从 1.0 迈向 2.0 的关键节点,本书的…...

人工智能在智能交通中的应用:以L4级无人电动物流拖车为例

一、引言 人工智能&#xff08;AI&#xff09;技术的飞速发展正在深刻改变各个行业&#xff0c;其中智能交通领域尤为显著。从自动驾驶汽车到智能交通管理系统&#xff0c;AI的应用不仅提高了交通效率&#xff0c;还增强了安全性。本文将重点探讨L4级无人电动物流拖车技术及其在…...

【愚公系列】《高效使用DeepSeek》024-儿童教育

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

第十六届蓝桥杯康复训练--6

题目链接&#xff1a;790. 数的三次方根 - AcWing题库 思路&#xff1a;二分&#xff0c;注意正负号和小数判断退出的方法&#xff08;虽然正负无所谓&#xff09; 代码&#xff1a; #include<bits/stdc.h> using namespace std;#define exs 0.00000018812716007232667…...

【QA】单件模式在Qt中有哪些应用?

单例设计模式确保一个类仅有一个实例&#xff0c;并提供一个全局访问点来获取该实例。在 Qt 框架中&#xff0c;有不少类的设计采用了单例模式&#xff0c;以下为你详细介绍并给出相应代码示例。 1. QApplication QApplication 是 Qt GUI 应用程序的核心类&#xff0c;每个 Q…...

logisim安装以及可能出现的问题

阅读提示&#xff1a;我这篇文章更偏向于安装出现问题的解决方案 目录 一、安装步骤 二、安装问题 1、出错的问题 2、出错的原因与解决方法 一、安装步骤 1、下载logisim 官方网站&#xff1a;https://sourceforge.net/projects/circuit/ 下载适用于你操作系统的版本&…...

Servlet、HttpServletRequest、HttpServletResponse、静态与动态网页、jsp、重定向与转发

DAY15.2 Java核心基础 JavaWeb 要想通过浏览器或者客户端来访问java程序&#xff0c;必须通过Servlet来处理 没有Servlet&#xff0c;java是无法处理web请求的 Web交互&#xff1a; 接收请求HttpServletRequest&#xff1a;可以获取到请求的信息&#xff0c;比如uri&#…...

2300年直线公理使数学一直存在尖锐自相矛盾

2300年直线公理使数学一直存在尖锐自相矛盾 黄小宁 复平面z各点z的对应点2z的全体是2z平面。z面拉伸&#xff08;平移&#xff09;变换为2z面&#xff08;z2面&#xff09;就使x轴⊂z面沿本身拉伸&#xff08;平移&#xff09;变换为u2x轴&#xff08;ux2轴&#xff09;。R可…...

hackmyvm-Icecream

arp-scan -l nmap -sS -v 192.168.222.106 enum4linux 192.168.222.106 445端口 smbmap -H 192.168.222.106 icecream为只读模式 smbclient \\192.168.222.106\icecream 反弹shell(上传put php-reverse-shell.php) 开启监听 nc -lnvp 1234 拿到webshell cat /etc/passwd 9000端…...

Apache Tomcat漏洞公开发布仅30小时后即遭利用

近日&#xff0c;Apache Tomcat曝出一项安全漏洞&#xff0c;在公开发布概念验证&#xff08;PoC&#xff09;仅30小时后&#xff0c;该漏洞即遭到攻击者利用。这一漏洞编号为CVE-2025-24813&#xff0c;主要影响以下版本&#xff1a; 1. Apache Tomcat 11.0.0-M1 至 11.0.2 …...

告别低效人工统计!自动计算计划进度

实时监控任务进度一直是项目管理中的一项巨大挑战。 人工统计方式不仅耗时耗力&#xff0c;而且往往由于信息传递的延迟和人为误差&#xff0c;导致无法实时获得准确的项目进展信息。 这种不准确性可能掩盖潜在的风险点&#xff0c;从而影响项目的整体进度和成果。 Ganttable …...

AI比人脑更强,因为被植入思维模型【16】反脆弱

毛选中就有言&#xff0c;不经历困难&#xff0c;我们就不会掌握战胜困难的方法。 这个世界纷繁复杂&#xff0c;不是强者总是运气好&#xff0c;而是他们能够失败后快速复原&#xff0c;不断找到战胜困难的方法。 定义 马斯洛需求层次模型是一种将人类需求从低到高按层次进…...

L2TP实验

放开安全策略机制&#xff0c;FW1不配IP [FW1]firewall zone trust [FW1-zone-trust]add interface GigabitEthernet 1/0/0 [FW1]security-policy [FW1-policy-security]default action permit FW2 和FW3 [FW2]interface g1/0/1 [FW2-GigabitEthernet1/0/1]ip address 2…...

【数据预测】基于遗传算法GA的LSTM光伏功率预测 GA-LSTM光伏功率预测【Matlab代码#91】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】1. 遗传算法GA2. 长短期记忆网络LSTM3. 基于GA-LSTM的光伏功率预测4. 部分代码展示5. 运行结果展示6. 资源获取 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】 …...

【记录一下】LMDeploy学习笔记及遇到的问题

LMDeploy 是一个用于大型语言模型&#xff08;LLMs&#xff09;和视觉-语言模型&#xff08;VLMs&#xff09;压缩、部署和服务的 Python 库。 其核心推理引擎包括 TurboMind 引擎和 PyTorch 引擎。前者由 C 和 CUDA 开发&#xff0c;致力于推理性能的优化&#xff0c;而后者纯…...

Ciura序列

一 概述 Ciura序列是一种用于希尔排序(Shell Sort)的高效增量序列。 由Marcin Ciura于2002年通过实验提出。 1)经验证最优的初始序列为:[1, 4, 10, 23, 57, 132, 301, 701] 2) 后续增量可通过最后一个元素乘以2.25生成(如:701*2.25=1577,1577*2.25=3548...)。 3)时…...

一、MySQL8的my.ini文件

MySQL8.0.11的安装版本my.ini配置文件默认存放在&#xff1a;C:/Program Files/MySQL/MySQL Server 8.0/ 目录下&#xff1b;而MySQL8.0.11绿色免安装版本是没有my.ini配置文件&#xff0c;用户可以自行构建后&#xff0c;再通过my.ini进行数据库的相关配置 一、MySQL8.0.11默…...