數據庫原理及安全技術教學實驗報告SQL實踐(二)


目錄

一、實驗目的

二、實驗軟硬件要求

三、實驗預習

四、實驗內容(實驗步驟、測試數據等)

運行結果:

1.使用查詢語句完成以下任務(每一個查詢都要給出SQL語句,並且列出查詢結果)。

2.使用數據操縱完成以下任務(每一個任務都要給出SQL語句,並且列出查詢結果)。

3.根據學生作業管理數據庫以及其中的學生表、課程表和學生作業表,進行以下操作。


一、實驗目的

1.掌握各種查詢的使用方法。

2.掌握數據操縱的使用方法。

3. 掌握視圖的使用方法。

二、實驗軟硬件要求

1、SQL Server 2008

三、實驗預習

表連接、表更新、視圖操作等SQL語句。

四、實驗內容(實驗步驟、測試數據等)

根據SQL實踐(一)實驗中創建的學生作業管理數據庫以及其中的學生表、課程表和學生作業表,進行以下操作。

1.使用查詢語句完成以下任務(每一個查詢都要給出SQL語句,並且列出查詢結果)。

(1)查詢與“張志國”同一班級的學生信息(使用連接查詢和子查詢方式)。

(2)查詢比“計算機應用基礎”學時多的課程信息(使用連接查詢和子查詢方式)。

(3)查詢選修課程號為K002的學生的學號、姓名(使用連接查詢、普通子查詢、相關子查詢、使用exists關鍵字的相關子查詢)。

(4)查詢沒有選修K001和M001課程的學號、課程號和三次成績(使用子查詢)。

2.使用數據操縱完成以下任務(每一個任務都要給出SQL語句,並且列出查詢結果)。

(1)在學生表中添加一條學生記錄,其中,學號為0593,姓名為張樂,性別為男,專業班級為電子05。

(2)將所有課程的學分數變為原來的兩倍。

(3)刪除張樂的信息。

3.根據學生作業管理數據庫以及其中的學生表、課程表和學生作業表,進行以下操作。

(1)創建一個電子05的學生視圖(包括學號、姓名、性別、專業班級、出生日期)。

(2)創建一個生物05的學生作業情況視圖(包括學號、姓名、課程名、作業1成績、作業2成績、作業3成績)。

(3)創建一個學生作業平均成績視圖(包括學號、作業1平均成績、作業2平均成績、作業3平均成績)。

(4)修改第2題中生物05的學生作業情況視圖,將作業2成績和作業3成績去掉。

(5)向電子05的學生視圖中添加一條記錄,其中學號為0596,姓名為趙亦,性別為男,專業班級為電子05,出生日期為1986-6-8(除了電子05的學生視圖發生變化之外,看看學生表中發生了什么變化?)。

(6)將電子05的學生視圖中趙亦的性別改為“女”(除了電子05的學生視圖發生變化之外,看看學生表中發生了什么變化?)。

(7)刪除電子05的學生視圖中趙亦的記錄。

(8)刪除電子05的學生視圖(給出SQL語句即可)。

運行結果:

1.使用查詢語句完成以下任務(每一個查詢都要給出SQL語句,並且列出查詢結果)。

(1)查詢與“張志國”同一班級的學生信息(使用連接查詢和子查詢方式)。

連接查詢

select *

from S Student1,S Student2

where Student1.Sclass=Student2.Sclass

and Student2.Sname='張志國';

子查詢

select *

from S

where Sclass in(

select Sclass

from S

where Sname='張志國'

);

(2)查詢比“計算機應用基礎”學時多的課程信息(使用連接查詢和子查詢方式)。

連接查詢

select C2.Ccredit,C2.Chour,C2.Cname,C2.Cno,C2.Cteacher

from C C1,C C2

where C1.Cname='計算機應用基礎' 

and C1.Chour<C2.Chour;

子查詢

select C2.Ccredit,C2.Chour,C2.Cname,C2.Cno,C2.Cteacher

from C C2

where C2.Chour>(

select C1.Chour

from C C1

where C1.Cname='計算機應用基礎');

(3)查詢選修課程號為K002的學生的學號、姓名(使用連接查詢、普通子查詢、相關子查詢、使用exists關鍵字的相關子查詢)。

連接查詢

select S.Sno,S.Sname

from S,W

where S.Sno=W.Sno

and W.Cno='K002';

普通子查詢

select S.Sno,S.Sname

from S  

where S.Sno in(

select Sno

from  W

where W.Cno='K002');

相關子查詢

select x.Sno,x.Sname

from S x

where x.Sno in(

select Sno

from  W y

where y.Cno='K002' and

x.Sno=y.Sno);

使用exists關鍵字的相關子查詢

select x.Sno,x.Sname

from S x

where exists(

select Sno

from  W y

where y.Cno='K002' and

x.Sno=y.Sno);

(4)查詢沒有選修K001和M001課程的學號、課程號和三次成績(使用子查詢)。

select x.Sno,x.Cno,x.Wn1,x.Wn2,x.Wn3

from W x

where not exists(

select Sno

from  W y

where y.Cno='K001' 

and x.Sno=y.Sno

or y.Cno='M001'

and x.Sno=y.Sno);

select x.Sno,x.Cno,x.Wn1,x.Wn2,x.Wn3

from W x

where x.Sno not in(

select y.Sno

from W y

where y.Cno  in('K001','M001'));

2.使用數據操縱完成以下任務(每一個任務都要給出SQL語句,並且列出查詢結果)。

(1)在學生表中添加一條學生記錄,其中,學號為0593,姓名為張樂,性別為男,專業班級為電子05。

insert

into S(Sno,Sname,Ssex,Sclass) 

values( '0593','張樂','男','電子05');

(2)將所有課程的學分數變為原來的兩倍。

update C

set Ccredit=Ccredit*2;

(3)刪除張樂的信息。

delete

from S

where Sname='張樂';

3.根據學生作業管理數據庫以及其中的學生表、課程表和學生作業表,進行以下操作。

(1)創建一個電子05的學生視圖(包括學號、姓名、性別、專業班級、出生日期)。

create view 電子05

as

select S.Sno,S.Sname,S.Ssex,S.Sclass,S.Sbirth

from S

where S.Sclass='電子05';

(2)創建一個生物05的學生作業情況視圖(包括學號、姓名、課程名、作業1成績、作業2成績、作業3成績)。

create view 生物05

as

select S.Sno,S.Sname,C.Cname,W.Wn1,W.Wn2,W.Wn3

from S,W,C

where S.Sclass='生物05'

and S.Sno=W.Sno

and W.Cno=C.Cno;

(3)創建一個學生作業平均成績視圖(包括學號、作業1平均成績、作業2平均成績、作業3平均成績)。

create view 學生作業平均成績

as

select W.Sno,avg(W.Wn1) as Wn1平均成績,avg(W.Wn2) as Wn2平均成績,avg(W.Wn3) as Wn3平均成績

from W

group by W.Sno;

(4)修改第2題中生物05的學生作業情況視圖,將作業2成績和作業3成績去掉。

alter view 生物05

as

select S.Sno,S.Sname,C.Cname,W.Wn1

from S,W,C

where S.Sclass='生物05'

and S.Sno=W.Sno

and W.Cno=C.Cno;

(5)向電子05的學生視圖中添加一條記錄,其中學號為0596,姓名為趙亦,性別為男,專業班級為電子05,出生日期為1986-6-8(除了電子05的學生視圖發生變化之外,看看學生表中發生了什么變化?)。

insert 

into 電子05(Sno,Sname,Ssex,Sclass,Sbirth)

values('0596','趙亦','男','電子05','1986-6-8')

(6)將電子05的學生視圖中趙亦的性別改為“女”(除了電子05的學生視圖發生變化之外,看看學生表中發生了什么變化?)。

update 電子05

set Ssex='女'

where Sname='趙亦';

(7)刪除電子05的學生視圖中趙亦的記錄。

delete 

from 電子05

where Sname='趙亦';

(8)刪除電子05的學生視圖(給出SQL語句即可)。

drop view 電子05;

五、實驗體會

操作不夠熟練,需要加強練習。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM