《數據庫原理》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.pswp.cn/web/43264.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43264.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43264.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是數組,什么是對象,并說出他們的區別

數組就是一組數據的集合。 對象就是用來儲存變量的。 創建方式不同: 對象可以通過new關鍵字創建對象,或者通過對象字面量創建 數組:new Array() 數組表 示有序數據的集合,而對象表示無序數據的集合 數組的數據沒有名稱&#xff08…

在mysql中delete和truncated的相同點和區別點

相同點 刪除數據:兩者都會刪除表中的數據。影響數據:兩者都不刪除表結構,只影響表中的數據。 區別點 操作方式: DELETE:逐行刪除數據,可以使用 WHERE 子句來指定刪除的條件。如果不加 WHERE 子句&#…

Spring Boot(八十):Tesseract實現圖片文字自動識別

1Tesseract 要實現圖片轉文字(OCR,Optical Character Recognition)功能,可以使用一些現有的OCR庫,比如Google的Tesseract或者百度AI、阿里云OCR等云服務。 下面以Tesseract為例: Tesseract是一個開源文本識別 (OCR)引擎,是目前公認最優秀、最精確的開源OCR系統,用于…

【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 安裝后效果

buuctf題目講解-1

一眼就解密 ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30 flag{THEFLAGOFTHISSTRING} base家族 base64 加密原理: 明文:abc 去找ascii碼的二進制形式 a-->97-→01100001 (二進制為8位如果不足8位則在最左邊補0至8位) b-→…

生物環保的技術原理和優點是什么

生物環保的技術原理和優點可以歸納如下: 技術原理 生物環保利用生物學原理,采用生物技術,通過生物過程來凈化環境,消除污染物,減少污染源,從而改善環境質量。這主要依賴于微生物的代謝活動、生長特性和相…

05STM32EXIT外部中斷中斷系統

STM32EXIT外部中斷&中斷系統 中斷系統中斷觸發條件:中斷處理流程和用途: STM32中斷NVIC嵌套中斷向量控制器基本結構 中斷系統 中斷觸發條件: 對外部中斷來說,可以是引腳發生了電平跳變 對定時器來說,可以是定時的…

算法系列--鏈表問題

一.一些經驗總結 鏈表天然具有遞歸性質,單鏈表可以看做一個單叉樹,很多可以應用到二叉樹的題目也可以應用到鏈表的題目之中,下面是一個體現單鏈表遞歸性質很好的例子逆序打印鏈表的值 private void reversePrint(ListNode head) {if(head null) return;reversePrint(head.ne…

速盾:cdn節點作用?

CDN(Content Delivery Network)指的是內容分發網絡,是一種通過部署在全球不同地理位置的服務器節點來提供快速、高效的內容傳輸和分發的技術架構。CDN節點在網絡中的作用非常重要,下面就對其作用進行詳細解析。 提供高速內容傳輸&…

《算法筆記》總結No.6——貪心

一.簡單貪心 貪心法是求解一類最優化問題的方法,它總是考慮在當前狀態下局部最優(或較優)之后,來使全局的結果達到最優(或較優)的策略。顯然,如果采取較優而非最優的策略(最優策略可能不存在或是不易想到),得到的全局結果也無法是…

socketserver和WSGI服務端實現教程

Python socketserver 和 WSGI 服務端實現教程 在本文中,我們將詳細解析一個使用 socketserver 模塊實現的簡單 WSGI 服務器。該服務器能夠處理 HTTP 請求,支持 WSGI 應用,并正確處理響應頭和錯誤。 代碼概述 這段代碼定義了一個 run_wsgi …

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

1. 解釋一下對象的創建過程 “半初始化”狀態通常指的是對象在內存分配后、但在完全初始化之前的一種狀態。在Java中,雖然JVM的規范和設計努力避免對象處于這種不穩定的狀態,但在多線程環境下,由于指令重排序等并發問題,仍有可能…

Apache Spark詳解

目錄 性能優化 銀行業務案例: 步驟1:環境準備和數據加載 步驟2:數據探索和預處理 步驟3:特征工程 步驟4:數據轉換 步驟5:構建機器學習模型 步驟6:模型評估 步驟7:部署和監控…

Spring JdbcTemplate使用

maven引入Spring JDBC <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.19</version></dependency> Spring配置中配置 <!-- DataSource配置 --><bean id"…

java代理簡單理解

一、什么是代理 舉例說明&#xff1a;當我想買一臺電腦&#xff0c;國內太貴了。委托好友A在國外幫忙買。 這個情節中我要實現的動作和好友實現的動作一樣&#xff0c;都是買電腦。好友幫我完成了這個動作&#xff0c;這就是代理。 類A和類B都實現一個interface接口C&#x…

【LeetCode刷題筆記】LeetCode.24.兩兩交換鏈表中的節點

創作不易&#xff0c;本篇文章如果幫助到了你&#xff0c;還請點贊 關注支持一下?>&#x16966;<)!! 主頁專欄有更多知識&#xff0c;如有疑問歡迎大家指正討論&#xff0c;共同進步&#xff01; 更多算法知識專欄&#xff1a;算法分析&#x1f525; 給大家跳段街舞感謝…