資料庫實驗:資料表的更新 迪士尼原始碼搭建下載 資料庫的安全性
1.實驗題目:資料表的更新
迪士尼原始碼搭建下載 Q【1784662395】狐霸原始碼論壇【hubawl.com】
2.實驗目和要求:
1)掌握SQL語句的資料操縱功能
2)掌握SQL語言的資料插入,修改,刪除操作
3)掌握與巢狀查詢相結合的插入,刪除,修改資料的SQL語句
3.實驗步驟:
1) 按實驗內容要求完成各項操作
2) 根據題目要求給出解決方案
3) 提交實驗報告
4.實驗內容
在學生表中插入一新生資訊(‘200213808’,’HUJING’,’女’,22,’計算機’)
INSERT
INTO Student(SNO,SNAME,SEX,AGE,DEPT)
VALUES('200213808','胡靜','女',22,'計算機系');
新建一個學生平均成績表spjcj,將學生的平均成績插入到spjcj表中
CREATE TABLE SPJCJ
(SNO CHAR(10) PRIMARY KEY,
AVG_GRADE SMALLINT);
INSERT
INTO SPJCJ(SNO,AVG_GRADE)
SELECT SNO,AVG(GRADE)
FROM SC
GROUP BY SNO;
刪除資料庫中學號為’200213801’的退學學生有關資訊。
DELETE
FROM Student
WHERE SNO='200213808';
將計算機系學生2號課成績全部提高5%。
UPDATE SC
SET GRADE=GRADE*1.05
WHERE CNO='2'AND SNO IN(SELECT SNO
FROM Student
WHERE DEPT='計算機系');
刪除沒有成績的學生選課記錄
DELETE
FROM SC
WHERE SNO IN(SELECT SNO
FROM SC
WHERE GRADE=NULL);
5.實驗總結:如上實驗內容
6.思考題
請分析資料庫模式修改語句和資料更新語句的區別。
Alter用來修改基本表,是對錶的結構進行操作,比如對欄位增加,刪除,修改型別。
Update用來修改表中的資料,修改某一行某一列的值。
實驗六
1.實驗題目:資料庫的完整性
2.實驗目的和要求:
掌握資料庫的實體完整性約束定義,完整性檢查及違約處理方式。
掌握資料庫的參照完整性約束定義,完整性檢查及違約處理方式。
掌握資料庫的使用者定義完整性約束定義,完整性檢查及違約處理方式。
掌握觸發器的定義及使用。
3.實驗步驟:
按實驗內容要求完成各項操作
根據題目要求給出解決方案
提交實驗報告
4.實驗內容:
定義S, C表,定義實體完整性約束,定義學生的年齡在19到22歲之間,課程名唯一的約束
CREATE TABLE S
(
SNO CHAR(10),
SNAME CHAR(10),
SEX CHAR(10),
AGE SMALLINT CONSTRAINT C4 CHECK(AGE<22 AND AGE>19),
DEPT CHAR(10),
PRIMARY KEY NONCLUSTERED(SNO)
)
CREATE TABLE C
(
CNO CHAR(10),
CNAME CHAR(10) UNIQUE,
CCREDIT CHAR(10),
CT CHAR(10),
PRIMARY KEY NONCLUSTERED(CNO)
)
在C表中增加cpno欄位,cpno欄位為先修課號,定義cpno為外碼,參照C表的cno,並定義當刪除被參照表中相關記錄時,要求違約處理方式為置空,當發生修改操作時,違約處理方式為級聯。
CREATE TABLE C
(
CNO CHAR(10),
CNAME CHAR(10) UNIQUE,
CCREDIT CHAR(10),
CT CHAR(10),
CPNO CHAR(10),
PRIMARY KEY NONCLUSTERED(CNO)
FOREIGN KEY(CPNO)REFERENCES C(CNO)/*表級完整性約束條件,CPNO是外碼,被參照表是C,被參照列是CNO*/
ON DELETE NO ACTION
ON UPDATE CASCADE
)
定義SC表的實體集參照完整性約束,要求當其被參照表發生刪除操作時,S表違約處理的方式為級聯,當其被參照表發生修改操作時,違約處理的方式為拒絕。
CREATE TABLE SC
(CNO CHAR(10)
SNO CHAR(10)
GRADE SMALLINT
PRIMARY KEY(CNO,SNO)
FOREIGN KEY(SNO)REFERENCE S(SNO)
ON DELETE NO ACTION
ON UPDATE NO ACTION
FOREIGN KEY(CNO)REFERENCE C(CNO)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
觸發器
建立一DML觸發器,每當學生的成績發生更新時,將更新的學號,成績存入g-log表內
CREATE TABLE g-log
(SNO CHAR(10)
GRADE SMALLINT)
CREATE TRIGGER RTI_UP
ON SC
FOR UPDATE
AS
IF UPDATE(GRADE)
BEGIN
INSERT INTO g-log
SELECT SNO,GRADE
FROM INSERTED
WHERE GRADE BETWEEN 0 AND 100
END
RETURN
建立一個INSTEAD OF觸發器,每當刪除課程表中記錄時,先檢查此課程是否已被選修,如選修則不允許刪除,且給出提示資訊“此課程已有學生已選修,無法刪除”
CREATE TRIGGER C_CHECK1
ON C
INSTEAD OF DELETE
AS
IF EXISTS(SELECT CNO
FROM SC
WHERE CNO=SC.CNO)
BEGIN
PRINT’此課程已有學生已選修,無法刪除’
ROLLBACK TRANSACTION
END
實驗總結:內容如上實驗內容
.思考題
試分析參照完整性違約檢查及違約處理的方式。
拒絕(NO ACTION)執行
級聯(CASCADE)操作:當刪除或修改參照表的一個元組造成了與參照表的不一致。
設定為空值(SET-NULL)當刪除或修改參照表的一個元組造成了與參照表的不一致,則將參照表中的所有造成不一致的元組的對應屬性設定為空值。
試比較AFTER觸發器和INSTEAD OF觸發器的區別。
AFTER表示在觸發事件的操作執行之後啟用觸發器,只能在表上指定,且動作晚於約束處理。
INSTEAD OF
用來代替通常的觸發動作
動作早於表的約束處理
不僅可以在表上定義,還可以在帶有一個或多個基表的檢視上定義
區別:每個表上只能建立一個INSTEAD OF觸發器,但可以建立多個AFTER觸發器。
實驗七
1.實驗題目:資料庫的安全性
2.實驗目的和要求:
掌握SQL Server 2005的安全控制機制
掌握SQL Server2005的身份驗證模式
理解資料庫使用者帳戶的基本概念
理解角色的概念
3.實驗步驟:
按實驗內容要求完成各項操作
根據題目要求給出解決方案
提交實驗報告
4.實驗內容:
定義登入log1,log2,log3
定義使用者user1,user2,user3
CREATE USER user1
CREATE USER user2
CREATE USER user3
掌握SQL SERVER 2005架構和使用者分離的概念
資料庫的授權、授權語句
將查詢SC表和修改GRADE屬性的許可權授予使用者user1。
GRANT SELECT,UPDATE(GRADE)
ON SC
TO user1;
將對錶S的插入許可權授予使用者user2,並允許他將此許可權授予其他使用者。
GRANT INSERT
ON S
TO user2;
允許使用者user3擁有對cs系學生的查詢許可權
GRANT SELECT(DEPT='CS')
ON S
TO user3;
建立角色R1,授予R1 課程表查詢和插入的許可權,並授予使用者user3
CREATE ROLE R1
GRANT SELECT,INSERT
ON C
TO R1;
GRANT R1
TO user3
刪除角色R1課程表的插入許可權
REVOKE INSERT
ON C
FROM R1
收回所有使用者對錶S的插入許可權
REVOKE INSERT
ON TABLE S
FROM user1,user2,user3
5.實驗總結
6.思考題
1.請分析with grant option、with check option、with admin option有何聯絡和區別
如果指定了with grant option子句,則獲得某種許可權的使用者還可以把這種許可權在授予其他的使用者。如果沒有指定,則獲得某種許可權的使用者只能使用該許可權,不能傳播該許可權。
如果指定了with admin option子句,則獲得這種許可權的角色或使用者還可以把這種許可權在授予其他的角色。
with check option表示對檢視進行UPDATE,INSERT,DELETE操作時要保證更新,插入或刪除的行滿足檢視定義中的謂詞條件。
根據實驗內容分析角色在許可權分配上有何優點。
一個角色包含的許可權包括直接授予這個角色的全部許可權加上其他角色授予這個角色的全部許可權。
---------------------
作者:我 笨蛋啊
來源:CSDN
原文:https://blog.csdn.net/NEFELIBATA_Reset/article/details/96012158
版權宣告:本文為博主原創文章,轉載請