SQL Sever實驗三 視圖與數據更新


一. 實驗目的

 

1.掌握創建視圖的 SQL 語句,數據更新的 SQL 語句。

2.了解使用創建視圖向導創建視圖的方法。

3.掌握使用 SQL 創建視圖的方法,使用 SQL 更新數據的方法。

 

二. 實驗准備

1.了解創建視圖與數據更新的方法。

2.掌握創建視圖與數據更新的 SQL 語句的語法格式。

3.了解刪除視圖與數據更新的 SQL 語句的用法。

 

三. 實驗要求

1. 用不同的方法創建視圖,練習數據更新。

2. 提交實驗報告,並驗收實驗結果。

 

四. 實驗內容 

1)定義計算機系學生基本情況視圖 V_Computer; 
USE stsc
GO
CREATE VIEW V_Computer
AS
SELECT * 
FROM Student

2)將 student, course 表和 score 表中學生的學號,姓名,課程號,課程名,成績定義為視圖 V_S_C_G;
USE stsc
GO
CREATE VIEW V_S_C_G
AS
SELECT Student.stno, Student.stname, Course.cname ,Score.grade
FROM Student,Score,Course

3)將各系學生人數,平均年齡定義為視圖 V_NUM_AVG; 
USE stsc
GO
CREATE VIEW V_NUM_AVG("系名","平均人數", "平均年齡")
AS
SELECT speciality, COUNT(*), AVG(year(getdate())-year(stbrithday))
FROM Student
GROUP BY speciality

4)定義一個反映學生出生年份的視圖 V_YEAR; 
USE stsc
GO
CREATE VIEW V_Year("出生日期")
AS
SELECT stbrithday
FROM Student

5)將各位學生選修課程的門數及平均成績定義為視圖 V_AVG_S_G; 
USE stsc
GO
CREATE VIEW V_AVG_S_G("學號", "選修門數", "平均成績")
AS
SELECT Student.stno, COUNT(*), AVG(Score.grade)
FROM Student, Score
WHERE Score.stno = Student.stno
GROUP BY Student.stno


6)將各門課程的選修人數及平均成績定義為視圖 V_AVG_C_G。 
USE stsc
GO
CREATE VIEW V_AVG_C_G("課程號", "平均成績")
AS
SELECT Course.cno, AVG(Score.grade)
FROM Course, Score
WHERE Score.cno = Course.cno
GROUP BY Course.cno

2.查詢視圖 
1)通過查詢 V_AVG_S_G 視圖得到平均成績為 90 分以上的學生的學號和成績;

USE stsc
SELECT *
FROM V_AVG_S_G
WHERE "平均成績" >= 90

2)通過查詢 V_NUM_AVG 視圖得到人數超過 10 人,且平均年齡在 18 歲以上的院系;
USE stsc
SELECT *
FROM V_NUM_AVG
WHERE "平均年齡" >= 18 AND "平均人數" >= 10

3.刪除視圖 
使用 SQL 語句刪除視圖 V_YEAR。 
USE stsc
DROP VIEW V_Year


4.數據更新 

(1)將一個新學生記錄(學號:XX(根據自己定義的學號修改);姓名:陳冬;性別: 男;所在系:XX(根據自己定義的系名修改);年齡:18)插入 student 表中; 
USE stsc
INSERT INTO Student values
('122009', '陳冬', '男', '1992-11-23', '計算機', 50)
(2)插入一條選課記錄:學號為 200215126 的學生選修了 1 號課程;
USE stsc
INSERT INTO Score values
('200215126 ', '102', NULL)
 

(3)將學生 XX(根據自己定義的學號修改)所在系改為其他系別(例如:數學系, 具體地,根據自己定義的系名修改); 
USE stsc
UPDATE Student SET speciality = '通信'
WHERE stno = '121002'
(4)刪除學號為 XX 的學生記錄; 
USE stsc
DELETE FROM Student
WHERE stno = '121002'
(5)刪除 XX 系(根據自己定義的系名修改)所有學生。
USE stsc
DELETE FROM Student
WHERE Student.speciality = '通信'

 


免責聲明!

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



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