使用SQL創(chuàng)建視圖和存儲(chǔ)過程

@[toc]

1.定義所有女生信息的視圖“F_Student”(5分)

CREATE VIEW F_Student
AS 
SELECT *
FROM  Student
WHERE  Sex='女'

2.通過視圖“F_Student”查詢小于18歲的女生人數(shù)。(5分)

SELECT COUNT(*)
FROM F_Student
WHERE Sage<18

3.定義“計(jì)算機(jī)系”學(xué)生的視圖”CS_Student”,并要求透過該視圖進(jìn)行的更新操作只涉及計(jì)算機(jī)系學(xué)生。(5分)

CREATE VIEW CS_Student
AS 
SELECT Sno,Sname,Sex,Sage,Sdept
FROM  Student
WHERE  Sdept= '計(jì)算機(jī)系'
WITH CHECK OPTION

4.通過視圖CS_Student插入一條學(xué)生記錄,數(shù)據(jù)自擬,插入的數(shù)據(jù)在Sdept是否有限制?(5分)

INSERT INTO CS_Student
VALUES('19250101','王芳','女',20,'計(jì)算機(jī)系')

有限制:所插入的數(shù)據(jù)在Sdept列上必須是“計(jì)算機(jī)系”

5.通過視圖CS_Student刪除姓名為“徐慶”的學(xué)生記錄,能否成功?為什么?(10分)
DELETE FROM CS_Student
WHERE Sname='徐慶'
go
--執(zhí)行結(jié)果顯示0行受影響,則說明未刪除成功

SELECT *
FROM Student
WHERE Sname='徐慶'
go
--執(zhí)行查詢依然可看到該生信息
原因:徐慶并非“計(jì)算機(jī)系”學(xué)生,因此無法透過視圖“CS_Student”來實(shí)現(xiàn)刪除功能。

6.建立選修了“數(shù)據(jù)庫原理”這門課的學(xué)生信息視圖“DB_SC”,視圖列包含:學(xué)號(hào),姓名,所在系,課程名,分?jǐn)?shù)。(5分)

CREATE VIEW DB_SC(Sno,Sname,Sdept,Cname,Score)
AS
SELECT Student.Sno,Sname,Sdept,Course.Cname,Score
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Cname='數(shù)據(jù)庫原理'

7.在視圖“DB_SC”上定義新視圖“DB_SC_60”,選修了“數(shù)據(jù)庫原理”這門課且成績及格的學(xué)生信息視圖。(5分)

CREATE VIEW DB_SC_60
AS
SELECT *
FROM DB_SC
WHERE Score>=60

8.將每門課程及其平均分建立視圖,視圖名自定義(5分)
CREATE VIEW Cour_AVG(Cno,Cavg)
AS
SELECT Cno, AVG(Score)
FROM SC
GROUP BY Cno
go

Select *
from Cour_AVG
GO

9.將視圖“F_Student”修改為記錄所有男生信息的視圖。(5分)

ALTER VIEW F_Student
AS 
SELECT *
FROM  Student
WHERE  Sex='男'

10.刪除視圖“F_Student”(5分)

DROP VIEW F_Student

?存儲(chǔ)過程

11.創(chuàng)建一個(gè)存儲(chǔ)過程“PROC_STU”,查詢所有學(xué)生信息,執(zhí)行該存儲(chǔ)過程,查看結(jié)果。(10分)

CREATE PROCEDURE PROC_STU
AS
SELECT *
FROM Student
GO

EXEC PROC_STU
go

12.創(chuàng)建一個(gè)存儲(chǔ)過程“PROC_SELECT_SEX_COUNT”,查詢男生和女生的人數(shù)。執(zhí)行該存儲(chǔ)過程,查看執(zhí)行結(jié)果。(10分)

CREATE PROCEDURE PROC_SELECT_SEX_COUNT
AS
SELECT Sex,COUNT(Sno)
FROM Student
GROUP BY Sex
GO

EXEC PROC_SELECT_SEX_COUNT
GO

13.創(chuàng)建一個(gè)帶有參數(shù)的存儲(chǔ)過程,根據(jù)系別查詢學(xué)生人數(shù),執(zhí)行該存儲(chǔ)過程,查看執(zhí)行結(jié)果。(10分)

CREATE PROCEDURE PROC_SELECT_COUNT_BYDEPT
@Dept varchar(50)
AS
SELECT COUNT(Sno)
FROM Student
WHERE Sdept=@Dept
GROUP BY Sdept
go

EXEC PROC_SELECT_COUNT_BYDEPT '計(jì)算機(jī)系'
go

14.創(chuàng)建一個(gè)帶有參數(shù)的存儲(chǔ)過程,根據(jù)課程名,查詢其先修課的課程名,要求使用輸出參數(shù)返回查詢結(jié)果,并執(zhí)行該存儲(chǔ)過程查看結(jié)果。(15分)

CREATE PROCEDURE PROC_COURSE_PRE
@cname varchar(50),@precname varchar(50) OUTPUT
AS
SELECT @precname=Cname
FROM Course
WHERE Cno IN(SELECT Cpno
FROM Course
WHERE Cname=@cname)
GO

DECLARE @name varchar(50),@pre varchar(50)
SET @name='數(shù)據(jù)庫原理'
EXEC PROC_COURSE_PRE @name,@pre OUTPUT
PRINT @pre
go
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 50個(gè)常用的sql語句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,339評(píng)論 0 7
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 6,023評(píng)論 0 9
  • 數(shù)據(jù)字典 數(shù)據(jù)庫系統(tǒng)中存放三層結(jié)構(gòu)定義的數(shù)據(jù)庫稱為數(shù)據(jù)字典(DD),對(duì)數(shù)據(jù)庫的操作都要通過DD才能實(shí)現(xiàn)。DD系統(tǒng)中...
    panda_say閱讀 1,209評(píng)論 0 6
  • Django 準(zhǔn)備 “虛擬環(huán)境為什么需要虛擬環(huán)境:到目前位置,我們所有的第三方包安裝都是直接通過 pip inst...
    33jubi閱讀 1,394評(píng)論 0 5
  • 數(shù)據(jù)定義 模式的定義與刪除 定義模式 CREATE SCHEMA <模式名> AUTHOTIZATION <用戶名...
    格雷福豪閱讀 4,014評(píng)論 1 0

友情鏈接更多精彩內(nèi)容