使用SQL進行集合查詢和數據維護

使用SQL進行集合查詢和數據維護

[TOC]code

1.分別查詢「計科系學生」和「全部男生」的並集,交集和差集。(15分)

--並集it

SELECT *基礎

FROM Student數據

WHERE Sdept='計算機系'查詢

UNION計算機

SELECT *集合

FROM Studentdi

WHERE Sex='男'co

--交集計算機基礎

SELECT *

FROM Student

WHERE Sdept='計算機系'

INTERSECT

SELECT *

FROM Student

WHERE Sex='男'

--差集

SELECT *

FROM Student

WHERE Sdept='計算機系'

EXCEPT

SELECT *

FROM Student

WHERE Sex='男'

2.查詢選修了「10001」號課程或選修了「10005」課程的學生學號。(5分)

SELECT Sno

FROM SC

WHERE Cno='10001'

UNION

SELECT Sno

FROM SC

WHERE Cno='10005'

3.查詢同時選修了「10001」和「10005」 號課程的學生學號。(5分)

SELECT Sno

FROM SC

WHERE Cno='10001'

INTERSECT

SELECT Sno

FROM SC

WHERE Cno='10005'

4.查詢選修了「10001」號課程,但沒選「10005」 號課程的學生學號。(5分)

SELECT Sno

FROM SC

WHERE Cno='10001'

EXCEPT

SELECT Sno

FROM SC

WHERE Cno='10005'

Ø *維護操做*

5.在學生表中插入一條新的學生記錄,數據可自擬。(注意,插入的數據需知足完整性約束)(5分)

INSERT INTO Student

VALUES('20030101','王芳','女',19 ,'計算機系')

6.插入一條選課記錄,學號:10010118,課程號:20008,可否插入成功?爲何?(5分)

INSERT INTO SC(Sno,Cno)

VALUES('10010118','20008')

不能,錯誤提示:NSERT 語句與 FOREIGN KEY 約束"FK_Sno"衝突。Cno是外鍵,參照Course中Cno的數值,Course中不存在課程號爲「20008」的課程記錄。

7.查詢每一個系及其人數,將查詢結果插入到新表Sdept_Count中(10分)

--建立表

CREATE TABLE Sdept_Count(

Sdept varchar(50),

SNum int

)

--插入操做

INSERT INTO Sdept_Count(Sdept,SNum)

SELECT Sdept,COUNT(Sno)

FROM Student

GROUP BY Sdept

8.將學生「徐慶」的所在系修改成「計算機系」(5分)

UPDATE Student

SET Sdept='計算機系'

WHERE Sname='徐慶'

9.將全部課程的學分Credit提升1分。(5分)

UPDATE Course

SET Credit=Credit+1

10.將「徐慶」同窗的學號修改成「19010101」,可否修改爲功?爲何?(5分)

UPDATE Student

SET Sno='19010101'

WHERE Sname='徐慶'

不能修改爲功,由於該生在SC表中存在選課記錄。

11.將選修了「計算機基礎」這門課的學生成績提升0.2(10分)

UPDATE SC

SET Score=Score*1.2

WHERE Sno IN(SELECT SNO

FROM SC

WHERE Cno=(SELECT Cno

FROM Course

WHERE Cname='計算機基礎'))

12.刪除學號爲「10010118」的學生記錄。可否成功刪除?不能刪除的緣由?如何解決?(10分)

不能刪除,緣由是SC表中還存在外鍵的約束,即「10010118」的選課記錄。若是要成功刪除學生「10010118」,須要先刪除其全部選課記錄。

DELETE FROM SC

WHERE Sno='10010118'

``

DELETE FROM Student

WHERE Sno='10010118'

13.刪除「計算機基礎」這門課不及格的選課記錄(10分)

DELETE FROM SC

WHERE Score<60 AND Cno=

(SELECT Cno

FROM Course

WHERE Cname='計算機基礎')

14.把選課表SC清空。(5分)

DELETE FROM SC

相關文章
相關標籤/搜索