国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)

這篇具有很好參考價(jià)值的文章主要介紹了實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

第1關(guān) 執(zhí)行 CREATE USER 創(chuàng)建以2022100904為用戶名的用戶,同時(shí)設(shè)置其密碼為root1234

任務(wù)描述
執(zhí)行 CREATE USER 創(chuàng)建以2022100904為用戶名的用戶,同時(shí)設(shè)置其密碼為root1234

相關(guān)知識(shí)
創(chuàng)建用戶的語法為如下:

CREATE USER '用戶名'@'localhost' IDENTIFIED WITH mysql_native_password BY  '密碼';
SELECT mysql.user.Host, mysql.user.User FROM mysql.user WHERE USER = '2022100904';

第2關(guān) 給予創(chuàng)建的用戶2022100904在mydata數(shù)據(jù)庫中授予"J" 表 SELECT 權(quán)限

任務(wù)描述
給予創(chuàng)建的用戶2022100904mydata數(shù)據(jù)庫中授予"J"SELECT 權(quán)限(注意創(chuàng)建權(quán)限時(shí)的用戶名為'用戶名'@'localhost'),不允許轉(zhuǎn)授此權(quán)限給其它用戶。

相關(guān)知識(shí)
1、現(xiàn)已創(chuàng)建以2022100904為用戶名的用戶。
2、現(xiàn)在mydata數(shù)據(jù)庫中已構(gòu)建J表。
3、使用 GRANT 語句將對象權(quán)限授予用戶和角色。
對象權(quán)限的授權(quán)語句語法為:

GRANT <特權(quán)> ON [<對象類型>] <對象> TO <用戶或角色>{,<用戶或角色>} [WITH GRANT OPTION]; 
<特權(quán)>::= ALL [PRIVILEGES] | <動(dòng)作> {, <動(dòng)作>} 
<動(dòng)作>::= SELECT[<列清單>] | INSERT[<列清單>] | UPDATE[<列清單>] | DELETE | REFERENCES[<列清單>] | EXECUTE| READ| WRITE| USAGE 
<列清單>::= <列名> {,<列名>} 
<對象類型>::= TABLE | VIEW | PROCEDURE | PACKAGE | CLASS | TYPE | SEQUENCE | DIRECTORY | DOMAIN 
<對象> ::= [<模式名>.]<對象名> 
<對象名> ::= <表名> | <視圖名> | <存儲(chǔ)過程/函數(shù)名> |<包名> |<類名> |<類型名> |<序列名> | <目錄名> | <域名> 
<用戶或角色>::= <用戶名> | <角色名>

使用說明
(1)授權(quán)者必須是具有對應(yīng)對象權(quán)限以及其轉(zhuǎn)授權(quán)的用戶;
(2)如未指定對象的<模式名>,模式為授權(quán)者所在的模式。DIRECTORY 為非模式對象,沒有模式;
(3)如設(shè)定了對象類型,則該類型必須與對象的實(shí)際類型一致,否則會(huì)報(bào)錯(cuò);
(4)帶 WITH GRANT OPTION 授予權(quán)限給用戶時(shí),則接受權(quán)限的用戶可轉(zhuǎn)授此權(quán)限;
(5)不帶列清單授權(quán)時(shí),如果對象上存在同類型的列權(quán)限,會(huì)全部自動(dòng)合并;
(6)對于用戶所在的模式的表,用戶具有所有權(quán)限而不需特別指定。 當(dāng)授權(quán)語句中使用了 ALL PRIVILEGES 時(shí),會(huì)將指定的數(shù)據(jù)庫對象上所有的對象權(quán)限都授予被授權(quán)者。

GRANT SELECT ON TABLE J TO '2022100904'@'localhost';

第3關(guān) 給予創(chuàng)建的用戶2022100904、2022100908授予"J"表 的ALL PRIVILEGES權(quán)限

任務(wù)描述
給予創(chuàng)建的用戶2022100904、2022100908mydata數(shù)據(jù)庫中授予"J"ALL PRIVILEGES權(quán)限(注意創(chuàng)建權(quán)限時(shí)的用戶名為'用戶名'@'localhost'),不允許轉(zhuǎn)授此權(quán)限給其它用戶。

GRANT ALL ON TABLE J TO '2022100904'@'localhost','2022100908'@'localhost';

第4關(guān) 給予創(chuàng)建的用戶2022100904在mydata數(shù)據(jù)庫中授予“J”表的UPDATE和INSERT權(quán)限

任務(wù)描述
給予創(chuàng)建的用戶2022100904mydata數(shù)據(jù)庫中授予“J”表的UPDATEINSERT權(quán)限,允許轉(zhuǎn)授此權(quán)限給其它用戶。
相關(guān)知識(shí)
1、現(xiàn)已創(chuàng)建用戶名為2022100904的用戶。
2、工程項(xiàng)目表J由工程項(xiàng)目代碼(JNO)、工程項(xiàng)目名(JNAME)、工程項(xiàng)目所在城市(CITY)組成。
J表如下圖:
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
現(xiàn)已在mydata數(shù)據(jù)庫中已構(gòu)建J表,結(jié)構(gòu)信息如下:實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
3、使用 GRANT 語句將對象權(quán)限授予用戶和角色。
對象權(quán)限的授權(quán)語句語法為:

GRANT <特權(quán)> ON [<對象類型>] <對象> TO <用戶或角色>{,<用戶或角色>} [WITH GRANT OPTION]; 
<特權(quán)>::= ALL [PRIVILEGES] | <動(dòng)作> {, <動(dòng)作>} 
<動(dòng)作>::= SELECT[<列清單>] | INSERT[<列清單>] | UPDATE[<列清單>] | DELETE | REFERENCES[<列清單>] | EXECUTE| READ| WRITE| USAGE 
<列清單>::= <列名> {,<列名>} 
<對象類型>::= TABLE | VIEW | PROCEDURE | PACKAGE | CLASS | TYPE | SEQUENCE | DIRECTORY | DOMAIN 
<對象> ::= [<模式名>.]<對象名> 
<對象名> ::= <表名> | <視圖名> | <存儲(chǔ)過程/函數(shù)名> |<包名> |<類名> |<類型名> |<序列名> | <目錄名> | <域名> 
<用戶或角色>::= <用戶名> | <角色名>
GRANT UPDATE,INSERT 
ON TABLE J 
TO '2022100904'@'localhost'
WITH GRANT OPTION;

第5關(guān) 回收用戶2022100904在mydata數(shù)據(jù)庫中授予的 “J” 表 SELECT權(quán)限

任務(wù)描述
回收用戶2022100904mydata數(shù)據(jù)庫中授予的 "J"SELECT權(quán)限(回收權(quán)限時(shí)的用戶名為'用戶名'@'localhost')。
相關(guān)知識(shí)
1、現(xiàn)已創(chuàng)建以2022100904為用戶名的用戶。
2、現(xiàn)在mydata數(shù)據(jù)庫中已構(gòu)建J表。
3、已授予用戶2022100904mydata數(shù)據(jù)庫中的 "J"SELECT 權(quán)限
4、使用 REVOKE 語句回收已授予的數(shù)據(jù)庫對象的權(quán)限
對象權(quán)限的回收語句語法為:

REVOKE [GRANT OPTION FOR] <特權(quán)> ON [<對象類型>]<對象> FROM <用戶或角色> {,<用戶或角色>} [<回收選項(xiàng)>];
<特權(quán)>::= ALL [PRIVILEGES] | <動(dòng)作> {, <動(dòng)作>}
<動(dòng)作>::= SELECT | INSERT | UPDATE | DELETE | REFERENCES | EXECUTE | READ | WRITE | USAGE
<對象類型>::= TABLE | VIEW | PROCEDURE | PACKAGE | CLASS | TYPE | SEQUENCE | DIRECTORY | DOMAIN
<對象> ::= [<模式名>.]<對象名>
<對象名> ::= <表名> | <視圖名> | <存儲(chǔ)過程/函數(shù)名> |<包名> |<類名> |<類型名> | <序列名> | <目錄名> | <域名>
<用戶或角色>::= <用戶名> | <角色名>
<回收選項(xiàng)> ::= RESTRICT | CASCADE

使用說明
(1)權(quán)限回收者必須是具有回收相應(yīng)對象權(quán)限以及轉(zhuǎn)授權(quán)的用戶;
(2)回收時(shí)不能帶列清單,若對象上存在同類型的列權(quán)限,則一并被回收;
(3)使用 GRANT OPTION FOR 選項(xiàng)的目的是收回用戶或角色權(quán)限轉(zhuǎn)授的權(quán)利,而不回收用戶或角色的權(quán)限;并且 GRANT OPTION FOR 選項(xiàng)不能和 RESTRICT 一起使用,否則會(huì)報(bào)錯(cuò);
(4)在回收權(quán)限時(shí),設(shè)定不同的回收選項(xiàng),其意義不同。 若不設(shè)定回收選項(xiàng),無法回收授予時(shí)帶 WITH GRANT OPTION 的權(quán)限,但也不會(huì)檢查要回收的權(quán)限是否存在限制; 若設(shè)定為 RESTRICT,無法回收授予時(shí)帶 WITH GRANT OPTION 的權(quán)限,也無法回收存在限制的權(quán)限,如角色上的某權(quán)限被別的用戶用于創(chuàng)建視圖等; 若設(shè)定為 CASCADE,可回收授予時(shí)帶或不帶 WITH GRANT OPTION 的權(quán)限,若帶 WITH GRANT OPTION 還會(huì)引起級聯(lián)回收。利用此選項(xiàng)時(shí)也不會(huì)檢查權(quán)限是否存在限制。另外,利用此選項(xiàng)進(jìn)行級聯(lián)回收時(shí),若被回收對象上存在另一條路徑授予同樣權(quán)限給該對象時(shí),則僅需回收當(dāng)前權(quán)限。
用戶A給用戶B授權(quán)且允許其轉(zhuǎn)授,用戶 B 將權(quán)限轉(zhuǎn)授給用戶 C。當(dāng)用戶 A 回收用戶 B 的權(quán)限的時(shí)候必須加 CASCADE 回收選項(xiàng)。

REVOKE SELECT 
ON TABLE J 
FROM '2022100904'@'localhost';

第6關(guān) 回收用戶2022100904、2022100908在mydata數(shù)據(jù)庫的中授予 的J表ALL PRIVILEGES權(quán)限

任務(wù)描述
回收賬號2022100904、2022100908mydata數(shù)據(jù)庫的中授予 的JALL PRIVILEGES權(quán)限(注意回收權(quán)限時(shí)的用戶名為'用戶名'@'localhost'

REVOKE ALL
ON TABLE J 
FROM '2022100904'@'localhost','2022100908'@'localhost';

第7關(guān) 回收用戶2022100904在mydata數(shù)據(jù)中授予的“J”表UPDATE和INSERT的權(quán)限

任務(wù)描述
回收用戶2022100904mydata數(shù)據(jù)中授予的“J”UPDATEINSERT的權(quán)限。(注意回收權(quán)限時(shí)的用戶名為'用戶名'@'localhost'

REVOKE UPDATE,INSERT 
ON TABLE J 
FROM '2022100904'@'localhost';

第8關(guān) 創(chuàng)建角色名為 R1的角色

任務(wù)描述
創(chuàng)建角色 'R1'
相關(guān)知識(shí)
創(chuàng)建用戶的語法為如下:

CREATE ROLE '角色名';
CREATE ROLE 'R1';

第9關(guān) 給予創(chuàng)建的角色R1在mydata數(shù)據(jù)庫中授予"J" 表 的SELECT 、UPDATE、INSERT權(quán)限

任務(wù)描述
給予創(chuàng)建的角色R1mydata數(shù)據(jù)庫中授予"J" 表 的SELECTUPDATE、INSERT權(quán)限。
相關(guān)知識(shí)
1、現(xiàn)已創(chuàng)建角色R1
2、現(xiàn)在mydata數(shù)據(jù)庫中已構(gòu)建J表。
3、使用 GRANT 語句將對象權(quán)限授予用戶和角色。
對象權(quán)限的授權(quán)語句語法為:

GRANT <特權(quán)> ON [<對象類型>] <對象> TO <用戶或角色>{,<用戶或角色>} [WITH GRANT OPTION]; 
<特權(quán)>::= ALL [PRIVILEGES] | <動(dòng)作> {, <動(dòng)作>} 
<動(dòng)作>::= SELECT[<列清單>] | INSERT[<列清單>] | UPDATE[<列清單>] | DELETE | REFERENCES[<列清單>] | EXECUTE| READ| WRITE| USAGE 
<列清單>::= <列名> {,<列名>} 
<對象類型>::= TABLE | VIEW | PROCEDURE | PACKAGE | CLASS | TYPE | SEQUENCE | DIRECTORY | DOMAIN 
<對象> ::= [<模式名>.]<對象名> 
<對象名> ::= <表名> | <視圖名> | <存儲(chǔ)過程/函數(shù)名> |<包名> |<類名> |<類型名> |<序列名> | <目錄名> | <域名> 
<用戶或角色>::= <用戶名> | <角色名>

使用說明
(1)授權(quán)者必須是具有對應(yīng)對象權(quán)限以及其轉(zhuǎn)授權(quán)的用戶;
(2)如未指定對象的<模式名>,模式為授權(quán)者所在的模式。DIRECTORY 為非模式對象,沒有模式;
(3)如設(shè)定了對象類型,則該類型必須與對象的實(shí)際類型一致,否則會(huì)報(bào)錯(cuò);
(4)帶 WITH GRANT OPTION 授予權(quán)限給用戶時(shí),則接受權(quán)限的用戶可轉(zhuǎn)授此權(quán)限;
(5)不帶列清單授權(quán)時(shí),如果對象上存在同類型的列權(quán)限,會(huì)全部自動(dòng)合并;
(6)對于用戶所在的模式的表,用戶具有所有權(quán)限而不需特別指定。 當(dāng)授權(quán)語句中使用了 ALL PRIVILEGES 時(shí),會(huì)將指定的數(shù)據(jù)庫對象上所有的對象權(quán)限都授予被授權(quán)者。

GRANT SELECT,UPDATE,INSERT 
ON TABLE J 
TO R1 ; 

第10關(guān) 給予創(chuàng)建的用戶2022100904授予角色R1權(quán)限

任務(wù)描述
給予創(chuàng)建的用戶2022100904授予角色R1權(quán)限。

相關(guān)知識(shí)
1、現(xiàn)已創(chuàng)建用戶2022100904
2、現(xiàn)已創(chuàng)建角色R1,角色R1mydata數(shù)據(jù)庫中被授予"J" 表 的SELECT 、UPDATE、INSERT權(quán)限。
3、現(xiàn)在mydata數(shù)據(jù)庫中已構(gòu)建J表。
4、授予用戶角色權(quán)限語法:

GRANT'角色名' TO '用戶名'@'localhost';
GRANT 'R1' TO '2022100904'@'localhost';

第11關(guān) 給予已授權(quán)限的角色R1在mydata數(shù)據(jù)庫中再次授予"J" 表 的DELETE權(quán)限

任務(wù)描述
給予已授權(quán)限的角色R1mydata數(shù)據(jù)庫中再次授予"J" 表 的DELETE權(quán)限。

相關(guān)知識(shí)
1、角色R1在mydata數(shù)據(jù)庫中被授予"J" 表 的SELECT 、UPDATEINSERT權(quán)限。。
2、現(xiàn)在mydata數(shù)據(jù)庫中已構(gòu)建J表。
3、使用 GRANT 語句將對象權(quán)限授予用戶和角色。

GRANT DELETE
ON TABLE J 
TO R1 ; 

第12關(guān) 回收角色R1 對 J 表的 INSERT 權(quán)限

任務(wù)描述
回收角色R1J表的 INSERT 權(quán)限。

相關(guān)知識(shí)
1、角色R1mydata數(shù)據(jù)庫中被授予"J" 表 的SELECT 、UPDATE、INSERT、DELETE權(quán)限。
2、現(xiàn)在mydata數(shù)據(jù)庫中已構(gòu)建J表。
3、使用 REVOKE 語句回收已授予的數(shù)據(jù)庫對象的權(quán)限
對象權(quán)限的回收語句語法為:

REVOKE [GRANT OPTION FOR] <特權(quán)> ON [<對象類型>]<對象> FROM <用戶或角色> {,<用戶或角色>} [<回收選項(xiàng)>];
<特權(quán)>::= ALL [PRIVILEGES] | <動(dòng)作> {, <動(dòng)作>}
<動(dòng)作>::= SELECT | INSERT | UPDATE | DELETE | REFERENCES | EXECUTE | READ | WRITE | USAGE
<對象類型>::= TABLE | VIEW | PROCEDURE | PACKAGE | CLASS | TYPE | SEQUENCE | DIRECTORY | DOMAIN
<對象> ::= [<模式名>.]<對象名>
<對象名> ::= <表名> | <視圖名> | <存儲(chǔ)過程/函數(shù)名> |<包名> |<類名> |<類型名> | <序列名> | <目錄名> | <域名>
<用戶或角色>::= <用戶名> | <角色名>
<回收選項(xiàng)> ::= RESTRICT | CASCADE

使用說明
(1)權(quán)限回收者必須是具有回收相應(yīng)對象權(quán)限以及轉(zhuǎn)授權(quán)的用戶;
(2)回收時(shí)不能帶列清單,若對象上存在同類型的列權(quán)限,則一并被回收;
(3)使用 GRANT OPTION FOR 選項(xiàng)的目的是收回用戶或角色權(quán)限轉(zhuǎn)授的權(quán)利,而不回收用戶或角色的權(quán)限;并且 GRANT OPTION FOR 選項(xiàng)不能和 RESTRICT 一起使用,否則會(huì)報(bào)錯(cuò);
(4)在回收權(quán)限時(shí),設(shè)定不同的回收選項(xiàng),其意義不同。 若不設(shè)定回收選項(xiàng),無法回收授予時(shí)帶 WITH GRANT OPTION 的權(quán)限,但也不會(huì)檢查要回收的權(quán)限是否存在限制; 若設(shè)定為RESTRICT,無法回收授予時(shí)帶 WITH GRANT OPTION 的權(quán)限,也無法回收存在限制的權(quán)限,如角色上的某權(quán)限被別的用戶用于創(chuàng)建視圖等; 若設(shè)定為 CASCADE,可回收授予時(shí)帶或不帶
WITH GRANT OPTION 的權(quán)限,若帶 WITH GRANT OPTION 還會(huì)引起級聯(lián)回收。利用此選項(xiàng)時(shí)也不會(huì)檢查權(quán)限是否存在限制。另外,利用此選項(xiàng)進(jìn)行級聯(lián)回收時(shí),若被回收對象上存在另一條路徑授予同樣權(quán)限給該對象時(shí),則僅需回收當(dāng)前權(quán)限。
用戶A給用戶B授權(quán)且允許其轉(zhuǎn)授,用戶 B 將權(quán)限轉(zhuǎn)授給用戶 C。當(dāng)用戶 A 回收用戶 B 的權(quán)限的時(shí)候必須加 CASCADE 回收選項(xiàng)。

REVOKE INSERT 
ON TABLE J 
FROM R1 ; 

第13關(guān) 通過角色R1回收用戶2022100904的被授予J表的SELECT 、UPDATE、INSERT權(quán)限

任務(wù)描述
通過角色R1回收用戶2022100904的被授予J表的SELECT 、UPDATE、INSERT權(quán)限。

相關(guān)知識(shí)
1、現(xiàn)已創(chuàng)建用戶2022100904。
2、現(xiàn)已創(chuàng)建角色R1,角色R1mydata數(shù)據(jù)庫中被授予J表 的SELECT 、UPDATEINSERT權(quán)限。
3、用戶2022100904已被授予角色R1權(quán)限。
4、現(xiàn)在mydata數(shù)據(jù)庫中已構(gòu)建J表。
5、回收用戶角色權(quán)限語法:

REVOKE '角色名' FROM '用戶名'@'localhost';
REVOKE 'R1' FROM '2022100904'@'localhost';

第14關(guān) 編寫一個(gè)名為INSERT_S的觸發(fā)器,在S表執(zhí)行?INSERT?語句后被激發(fā)

任務(wù)描述
編寫一個(gè)名為INSERT_S的觸發(fā)器,在S表執(zhí)行?INSERT?語句后被激發(fā),此觸發(fā)器將新供應(yīng)商的SNO、SNAMESTATUS、CITY及執(zhí)行此操作的用戶(USER)插入N_S表,N_S表比S表增添操作用戶一列。
相關(guān)知識(shí)
1、供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成.
S表如下圖:
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
現(xiàn)已構(gòu)建S表,結(jié)構(gòu)信息如下:
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
2、N_S表由供應(yīng)商的SNO、SNAME、STATUS、CITY及執(zhí)行此操作的用戶USER組成,現(xiàn)已構(gòu)建該表,結(jié)構(gòu)信息如下:
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
3、Mysql觸發(fā)器語法:
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
創(chuàng)建觸發(fā)器樣例:刪除tab1表記錄后自動(dòng)將tab2表中對應(yīng)的記錄刪去。
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
注意:
1、獲取用戶名稱的函數(shù)為USER();
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)

DELIMITER $$
CREATE TRIGGER INSERT_S
AFTER INSERT ON S
FOR EACH ROW
BEGIN
INSERT INTO N_S (SNO,SNAME,STATUS,CITY,USER)VALUES(NEW.SNO,NEW.SNAME,NEW.STATUS,NEW.CITY,USER());
END $$
DELIMITER ;

第15關(guān) 編寫一個(gè)名為UPDATE_S的觸發(fā)器,檢查S表的STATUS,只允許0-100之間,如果超過100后,改為100。

任務(wù)描述
編寫一個(gè)名為UPDATE_S的觸發(fā)器,檢查S表的STATUS,只允許0-100之間,超過100后,改為100。

DELIMITER $
CREATE TRIGGER UPDATE_S BEFORE                        
UPDATE ON S
FOR EACH ROW
BEGIN
    IF NEW.STATUS>100 
    THEN SET NEW.STATUS=100;
    END IF;
END$
DELIMITER ;

第16關(guān) 編寫一個(gè)名為UPDATE_SPJ的觸發(fā)器,當(dāng)SPJ表中有更新某條記錄時(shí),自動(dòng)更新表SPJ_SUMQTY表

任務(wù)描述
編寫一個(gè)名為UPDATE_SPJ的觸發(fā)器,當(dāng)SPJ表中有更新某條記錄時(shí),自動(dòng)更新表SPJ_SUMQTY表。
相關(guān)知識(shí)
1、供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項(xiàng)目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,標(biāo)識(shí)某供應(yīng)商 供應(yīng)某種零件 給某工程項(xiàng)目的數(shù)量為QTY。
SPJ表如下圖:
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
現(xiàn)已構(gòu)建SPJ表,結(jié)構(gòu)信息如下:
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
2、SPJ_SUMQTY表為工程零件數(shù)量統(tǒng)計(jì)表,由工程項(xiàng)目代碼(JNO)、零件代碼(PNO)、統(tǒng)計(jì)供應(yīng)數(shù)量SUMQTY組成,其中SUMQTYSPJ表中的工程項(xiàng)目代碼(JNO)、零件代碼(PNO)、供應(yīng)數(shù)量(QTY),根據(jù)JNOPNO匯總得到。
SPJ_SUMQTY表如下圖:
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)
現(xiàn)已構(gòu)建SPJ_SUMQTY表,結(jié)構(gòu)信息如下:
實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)

DELIMITER $$
CREATE TRIGGER UPDATE_SPJ
AFTER UPDATE ON SPJ
FOR EACH ROW
BEGIN
    UPDATE SPJ_SUMQTY SET SUMQTY = SUMQTY + NEW.QTY - OLD.QTY 
    WHERE PNO = NEW.PNO AND JNO = NEW.JNO;
END $$
DELIMITER;

第17關(guān) 編寫一個(gè)名為DELETE_SPJ的觸發(fā)器,當(dāng)SPJ表中有刪除某條記錄時(shí),自動(dòng)更新表SPJ_SUMQTY表

任務(wù)描述
編寫一個(gè)名為DELETE_SPJ的觸發(fā)器,當(dāng)SPJ表中有刪除某條記錄時(shí),自動(dòng)更新表SPJ_SUMQTY表。

DELIMITER $$
CREATE TRIGGER DELETE_SPJ
AFTER DELETE ON SPJ
FOR EACH ROW
BEGIN
    UPDATE SPJ_SUMQTY SET SUMQTY = SUMQTY - OLD.QTY 
    WHERE SPJ_SUMQTY.PNO = OLD.PNO AND SPJ_SUMQTY.JNO = OLD.JNO;
    DELETE FROM SPJ_SUMQTY WHERE SPJ_SUMQTY.SUMQTY <=0;
END $$
DELIMITER ;

第18關(guān) 編寫一個(gè)名為INSERT_SPJ的觸發(fā)器,當(dāng)SPJ表中有插入某條記錄時(shí),自動(dòng)更新表SPJ_SUMQTY表

任務(wù)描述
編寫一個(gè)名為INSERT_SPJ的觸發(fā)器,當(dāng)SPJ表中有插入某條記錄時(shí),自動(dòng)更新表SPJ_SUMQTY表。文章來源地址http://www.zghlxwxcb.cn/news/detail-487843.html

DELIMITER $$
CREATE TRIGGER INSERT_SPJ
AFTER INSERT ON SPJ
FOR EACH ROW
BEGIN
    UPDATE SPJ_SUMQTY SET SUMQTY = SUMQTY + NEW.QTY 
    WHERE SPJ_SUMQTY.PNO = NEW.PNO AND SPJ_SUMQTY.JNO =NEW.JNO;
    IF NEW.JNO NOT IN (SELECT JNO FROM SPJ_SUMQTY)
    OR NEW.PNO NOT IN (SELECT PNO FROM SPJ_SUMQTY)
        THEN INSERT INTO SPJ_SUMQTY VALUES (NEW.JNO,NEW.PNO,NEW.QTY);
    END IF;
END $$
DELIMITER ;

到了這里,關(guān)于實(shí)驗(yàn)8 數(shù)據(jù)庫完整性、安全設(shè)計(jì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)庫系統(tǒng)概論—安全、完整性

    數(shù)據(jù)庫的安全性指保護(hù)數(shù)據(jù)庫以防 不合法 使用所造成的數(shù)據(jù)泄露、更改或破壞 2.1用戶身份鑒別 靜態(tài)口令鑒別 動(dòng)態(tài)口令鑒別 生物鑒別特征 智能卡鑒別 2.2存取控制 自主存取控制:給用戶限權(quán)(DAC,C1級) 強(qiáng)制存取控制:給數(shù)據(jù)庫對象一定的密級(MAC,B1級) 2.3自主存取控制方法(授

    2024年02月03日
    瀏覽(23)
  • 【MySQL】數(shù)據(jù)庫完整性和安全性

    【MySQL】數(shù)據(jù)庫完整性和安全性

    目錄 ? 一、完整性 1.概念 2.sql語言支持的兩種約束 ? ??2.1靜態(tài)約束 ? ? ? ? ?撤銷追加約束 ? ? ? ? ?斷言 ? ??2.3動(dòng)態(tài)約束 ? ? ? ? ??觸發(fā)器 二、安全性 用DBMS對數(shù)據(jù)庫實(shí)現(xiàn)的兩個(gè)特性? 1.概念 指dbms保證的db的一種特性,在任何情況下的正確性、有效性、一致性 原理圖

    2023年04月24日
    瀏覽(30)
  • MySQL數(shù)據(jù)庫完整性

    數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。 數(shù)據(jù)的正確性是指數(shù)據(jù)符合現(xiàn)實(shí)世界語義,反映當(dāng)前實(shí)際情況;數(shù)據(jù)的相容性是指數(shù)據(jù)庫在同一對象的不同關(guān)系表中的數(shù)據(jù)是符合邏輯的。 數(shù)據(jù)的完整性:為了防止數(shù)據(jù)庫中存在不和語義的數(shù)據(jù) 數(shù)據(jù)的安全性:為了保護(hù)數(shù)據(jù)庫防

    2024年02月15日
    瀏覽(28)
  • 深入理解數(shù)據(jù)庫事務(wù):確保數(shù)據(jù)完整性與一致性

    在現(xiàn)代信息系統(tǒng)中,數(shù)據(jù)是至關(guān)重要的資產(chǎn)之一。作為一名后端開發(fā)人員,與數(shù)據(jù)庫的交道必不可少,為了確保數(shù)據(jù)的完整性、一致性和可靠性,數(shù)據(jù)庫引入了事務(wù)的概念。本次將帶您深入了解數(shù)據(jù)庫事務(wù)的重要性、特性以及如何在應(yīng)用程序中正確地使用事務(wù)來維護(hù)數(shù)據(jù)的穩(wěn)

    2024年02月12日
    瀏覽(30)
  • 數(shù)據(jù)安全—數(shù)據(jù)完整性校驗(yàn)

    數(shù)據(jù)安全—數(shù)據(jù)完整性校驗(yàn)

    1、數(shù)據(jù)安全保障三要素即 保密性 完整性、可用性 機(jī)密性:要求數(shù)據(jù)不被他人輕易獲取,需要進(jìn)行數(shù)據(jù)加密。 完整性:要求數(shù)據(jù)不被他人隨意修改,需要進(jìn)行簽名技術(shù) 可用性:要求服務(wù)不被他人惡意攻擊,需要進(jìn)行數(shù)據(jù)校驗(yàn) 2、為保證數(shù)據(jù)完整性如下圖所示 1)將要提交的參

    2024年02月09日
    瀏覽(21)
  • 數(shù)據(jù)采集與安全:保護(hù)隱私與數(shù)據(jù)完整性

    隨著互聯(lián)網(wǎng)和大數(shù)據(jù)技術(shù)的發(fā)展,數(shù)據(jù)采集成為了企業(yè)和組織中不可或缺的一部分。數(shù)據(jù)采集的目的是為了收集和分析大量的數(shù)據(jù),以便于提取有價(jià)值的信息和洞察。然而,隨著數(shù)據(jù)采集的擴(kuò)大,隱私和數(shù)據(jù)完整性問題也逐漸成為了關(guān)注的焦點(diǎn)。 數(shù)據(jù)隱私和數(shù)據(jù)完整性是數(shù)據(jù)

    2024年04月11日
    瀏覽(21)
  • 物理安全對工控系統(tǒng)數(shù)據(jù)完整性的影響如何評估和管理?

    隨著工業(yè)自動(dòng)化和數(shù)字化程度的不斷提高, 工業(yè)控制系統(tǒng)的數(shù)據(jù)安全性和完整性日益受到重視. 工業(yè)控制系統(tǒng) (ICS) 是指那些應(yīng)用于制造、交通和其他領(lǐng)域的關(guān)鍵基礎(chǔ)設(shè)施的計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)設(shè)備. 這些系統(tǒng)通常涉及大量敏感信息如工藝參數(shù)和歷史記錄等的數(shù)據(jù)交換與存儲(chǔ). 因此

    2024年02月21日
    瀏覽(23)
  • 軌道交通信號安全完整性等級(SIL)

    軌道交通信號安全完整性等級(SIL)

    軌道交通行業(yè)中,對于信號系統(tǒng)、車輛子系統(tǒng)等安全相關(guān)的系統(tǒng)有安全完整性(SIL)等級的要求,需要進(jìn)行通用產(chǎn)品層安全評估和工程特定應(yīng)用項(xiàng)目安全評估,已經(jīng)形成了行業(yè)共識(shí)。對于初次了解SIL的人,在實(shí)際應(yīng)用中存在著對SIL的錯(cuò)誤理解,并且不恰當(dāng)?shù)貞?yīng)用SIL。本文解答

    2024年02月04日
    瀏覽(25)
  • Windows安全中心內(nèi)存完整性無法打開問題的處理方法

    Windows安全中心內(nèi)存完整性無法打開問題的處理方法

    Windows11安全中心內(nèi)存完整性無法打開 今天電腦使用過程中突然看到系統(tǒng)桌面右下角任務(wù)欄中 windows安全中心圖標(biāo)出現(xiàn)了警告信息,如下圖紅框所示: 點(diǎn)擊該圖標(biāo)進(jìn)入windows安全中心的 安全性概覽 界面,如下圖: 在該界面可以看到出現(xiàn)安全警告的原因是“內(nèi)存完整性已經(jīng)關(guān)閉

    2024年02月02日
    瀏覽(20)
  • mysql索引--普通索引,唯一索引,主鍵索引,參照完整性約束,數(shù)據(jù)完整性約束

    -- 方法1:create index -- 對employee表的員工部門號列創(chuàng)建普通索引depart_ind -- create index depart_ind on employees(員工部門號); -- 對employee表的姓名和地址列創(chuàng)建復(fù)合索引ad_ind; -- create index ad_ind on employees(姓名,地址); -- 對departments表的部門名稱列創(chuàng)建唯一索引un_ind; -- create unique index un_ind

    2023年04月21日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包