《数据库原理》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。

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

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

相关文章

在mysql中delete和truncated的相同点和区别点

相同点 删除数据:两者都会删除表中的数据。影响数据:两者都不删除表结构,只影响表中的数据。 区别点 操作方式: DELETE:逐行删除数据,可以使用 WHERE 子句来指定删除的条件。如果不加 WHERE 子句&#…

【Python机器学习】处理文本数据——用tf-idf缩放数据

为了按照我们预计的特征信息量大小来缩放特征,而不是舍弃那些认为不重要的特征,最常见的一种做法就是使用词频-逆向文档频率(tf-idf)。这一方法对某个特定文档中经常出现的术语给与很高的权重,但是堆在语料库的许多文档…

作业/数据结构/2023/7/10

1.实现单向链表队列的,创建,入队,出队,遍历,长度,销毁。 main.c #include "head.h"int main(int argc, const char *argv[]) {//创建链式队列queue_ptr QLcreate_queue();//入栈push(QL, 1000)…

imx6ull/linux应用编程学习(16)emqx ,mqtt创建连接mqtt.fx

在很多项目中都需要自己的私人服务器,以保证数据的隐私性,这里我用的是emqx。 1.进入emqx官网 EMQX:用于物联网、车联网和工业物联网的企业级 MQTT 平台 点击试用cloud 申请成功后可得:(右边的忽略) 进入…

告别PS,ChatGPT图片局部修改,手把手教你成为画图高手

大家好,我是YUAN! 今天,我要向大家介绍一个能够点燃创意火花的画图设计神器——DALLE编辑器。让艺术创作,尤其是画图变得更加简单、直观,甚至可以说是革命性的。 DALLE是什么? DALLE编辑器的问世&#xf…

macOS系统下载navicat安装包

链接: https://pan.baidu.com/s/1SqTIXNL-B8ZMJxIBu1DfIw?pwdc1z8 提取码: c1z8 安装后效果

05STM32EXIT外部中断中断系统

STM32EXIT外部中断&中断系统 中断系统中断触发条件:中断处理流程和用途: STM32中断NVIC嵌套中断向量控制器基本结构 中断系统 中断触发条件: 对外部中断来说,可以是引脚发生了电平跳变 对定时器来说,可以是定时的…

《算法笔记》总结No.6——贪心

一.简单贪心 贪心法是求解一类最优化问题的方法,它总是考虑在当前状态下局部最优(或较优)之后,来使全局的结果达到最优(或较优)的策略。显然,如果采取较优而非最优的策略(最优策略可能不存在或是不易想到),得到的全局结果也无法是…

【深入理解JVM】关于Object o = new Object()

1. 解释一下对象的创建过程 “半初始化”状态通常指的是对象在内存分配后、但在完全初始化之前的一种状态。在Java中,虽然JVM的规范和设计努力避免对象处于这种不稳定的状态,但在多线程环境下,由于指令重排序等并发问题,仍有可能…

【LeetCode刷题笔记】LeetCode.24.两两交换链表中的节点

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…

新手小白的pytorch学习第一弹-------张量

1 导入pytorch包 import torch2 创建张量&#xff08;tensor&#xff09; scalar标量 scalar torch.tensor(7) scalartensor(7)scalar.ndim查看scalar的维度&#xff0c;因为scalar是标量&#xff0c;所以维度为0 0scalar.shapetorch.Size([])torch.item()7vector&#xf…

Apache功能配置:访问控制、日志分割; 部署AWStats日志分析工具

目录 保持连接 访问控制 只允许指定ip访问 拒绝指定主机其他正常访问 用户授权 日志格式 日志分割 操作步骤 使用第三方工具cronolog分割日志 AWStats日志分析 操作步骤 访问AwStats分析系统 保持连接 Apache通过设置配置文件httpd-default.conf中相关的连接保持参…

基于Java的科大讯飞大模型API调用实现

写在前面&#xff1a;因为现在自己实习的公司新拓展的一个业务是结合AI的低代码平台&#xff0c;我负责后端的开发&#xff0c;之前一直都是直接使用gpt或者文心一言等ui界面来直接使用大模型&#xff0c;从来没有自己调接口过&#xff0c;所以本文记录一下自己第一次使用大模型…

【QT】QComboBox允许输入查询,且不区分大小写

目录 0.简介 1.环境 2.详细代码 3.参考 0.简介 项目需求&#xff0c;原本有一个下拉框&#xff0c;但是条目太多&#xff0c;不好搜索&#xff0c;所以用户要求可以输入查找 修改前 &#xff1a; 修改后&#xff1a; 1.环境 windows11 vs-code qt5.12 2.详细代码 QComboB…

MD5加密和注册页面的编写

MD5加密 1.导入包 npm install --save ts-md5 2.使用方式 import { Md5 } from ts-md5; //md5加密后的密码 const md5PwdMd5.hashStr("123456").toUpperCase(); 遇见的问题及用到的技术 注册页面 register.vue代码 <template><div class"wappe…

关于Python中的字典你所不知道的七个技巧

01 引言 Python是我最喜欢的编程语言之一&#xff0c;它向来以其简单性、多功能性和可读性而闻名。 字典作为Python中最常使用的数据类型&#xff0c;大家几乎每个人都或多或少在项目中使用过字典&#xff0c;但是字典里有一些潜在的技巧可能并不是每个同学都会用到。 在本文…

【UE5.1 角色练习】16-枪械射击——瞄准

目录 效果 步骤 一、瞄准时拉近摄像机位置 二、瞄准偏移 三、向指定方向射击 四、连发 效果 步骤 一、瞄准时拉近摄像机位置 打开角色蓝图&#xff0c;在事件图表中添加如下节点&#xff0c;当进入射击状态时设置目标臂长度为300&#xff0c;从而拉近视角。 但是这样切…

勇攀新高峰|暴雨信息召开2024年中述职工作会议

7月8日至9日&#xff0c;暴雨信息召开2024年中述职工作会议&#xff0c;总结回顾了上半年的成绩和不足&#xff0c;本次会议采用线上线下的方式举行&#xff0c;公司各部门管理人员、前台市场营销人员参加述职&#xff0c;公司领导班子出席会议。 本次述职采取了现场汇报点评的…

数字滚动动画~

前言 数字从0.00滚动到某个数值的动画 实现&#xff08;React版本&#xff09; Dom <div className"number" ref{numberRef}>0.00</div> JS const _initNumber () > {const targetNumber 15454547.69;const duration 1500;const numberElement…

【UML用户指南】-33-对体系结构建模-系统和模型

目录 1、系统和子系统 2、模型和视图 3、跟踪 4、常用建模技术 4.1、对系统的体系结构建模 4.2、对系统的系统建模 模型是对现实世界的简化——即对系统的抽象&#xff0c;建立模型的目的是为了更好地理解系统。 1、系统和子系统 一个系统可能被分解成一组子系统&#…