最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)庫實(shí)驗(yàn)之?觸發(fā)器和存儲(chǔ)過程

 更新時(shí)間:2022年06月20日 14:35:53   作者:Code_流蘇  
這篇文章主要介紹了MySQL數(shù)據(jù)庫實(shí)驗(yàn)之?觸發(fā)器和存儲(chǔ)過程,通過掌握某主流DBMS支持的SQL編程語言和編程規(guī)范,規(guī)范設(shè)計(jì)存儲(chǔ)過程展開詳細(xì)介紹,感興趣的朋友可以參考一下

觀前提示:本篇內(nèi)容為mysql數(shù)據(jù)庫實(shí)驗(yàn),代碼內(nèi)容經(jīng)測試過,可能一小部分有所疏漏,也有會(huì)不符合每個(gè)人實(shí)驗(yàn)的要求的地方,因此以下內(nèi)容建議僅做思路參考。

一、實(shí)驗(yàn)?zāi)康?/h2>
  • 1、掌握某主流DBMS支持的SQL編程語言和編程規(guī)范,規(guī)范設(shè)計(jì)存儲(chǔ)過程;
  • 2、能夠理解不同類型觸發(fā)器的作用和執(zhí)行原理,驗(yàn)證觸發(fā)器的有效性;
  • 3、培養(yǎng)學(xué)生的系統(tǒng)思維,提升解決復(fù)雜工程問題所需的編程能力。

二、實(shí)驗(yàn)要求

掌握某主流DBMS的SQL編程語言,在前面創(chuàng)建的數(shù)據(jù)庫基礎(chǔ)上,定義BEFORE(for)觸發(fā)器和AFTER觸發(fā)器;掌握數(shù)據(jù)庫存儲(chǔ)過程定義、存儲(chǔ)過程運(yùn)行,存儲(chǔ)過程更名,存儲(chǔ)過程刪除,存儲(chǔ)過程的參數(shù)傳遞。

溫馨提示:以下內(nèi)容均已經(jīng)過測試,不過難免會(huì)有疏漏,但是代碼實(shí)現(xiàn)大多數(shù)思路及實(shí)現(xiàn)經(jīng)測驗(yàn)都是正確的。

三、實(shí)現(xiàn)內(nèi)容及步驟

1、創(chuàng)建一個(gè)不帶參數(shù)的簡單存儲(chǔ)過程

  • (1)創(chuàng)建存儲(chǔ)過程sp_avggrade,實(shí)現(xiàn)查詢每門課程學(xué)生的平均成績的功能;
delimiter//
CREATE PROCEDURE sp_avggrade()
COMMENT '查詢每門課程學(xué)生的平均成績的功能'
BEGIN
SELECT cno as 課程號(hào),avg(grade)as 平均成績
FROM sc
GROUP BY cno;
end//
delimiter;

(2)調(diào)用該存儲(chǔ)過程,實(shí)現(xiàn)查詢。

call sp_avggrade();

2、創(chuàng)建一個(gè)帶輸入?yún)?shù)的存儲(chǔ)過程

(1)創(chuàng)建存儲(chǔ)過程sp_course_avggrade, 實(shí)現(xiàn)通過輸入課程編號(hào)參數(shù)查詢指定課程編號(hào)的課程平均成績的功能;

delimiter//
CREATE PROCEDURE sp_course_avggrade(IN c_no CHAR(2))
COMMENT '通過輸入課程編號(hào)參數(shù)查詢指定課程編號(hào)的課程平均成績的功能'
BEGIN
SELECT cno,AVG(grade)
FROM sc
WHERE cno=c_no;
END//
delimiter;

(2)調(diào)用該存儲(chǔ)過程,獲取指定課程的平均成績。

3、創(chuàng)建一個(gè)帶輸入輸出參數(shù)的存儲(chǔ)過程

(1)創(chuàng)建存儲(chǔ)過程sp_sdept _student,實(shí)現(xiàn)根據(jù)用戶輸入的院系編號(hào)參數(shù),查找該學(xué)院的學(xué)生人數(shù),并以變量形式輸出的功能;

delimiter//
CREATE PROCEDURE sp_sdept_student2(IN _sdept CHAR(10),OUT num int)
BEGIN
SELECT COUNT(sno) INTO num
FROM student
WHERE _sdept = sdept;
END//
delimiter;

(2)調(diào)用該存儲(chǔ)過程,以返回變量的形式獲取相應(yīng)院系的學(xué)生人數(shù)。

SET @num=10;
CALL sp_sdept_student2('計(jì)科',@num);
SELECT @num AS '人數(shù)';

4、觸發(fā)器的創(chuàng)建與使用

(1)在學(xué)生表上創(chuàng)建觸發(fā)器,實(shí)現(xiàn)學(xué)生表中刪除學(xué)生記錄時(shí),成績表中該學(xué)生成績記錄的級聯(lián)刪除;

delimiter//
CREATE TRIGGER delete_stu
BEFORE DELETE
ON student
FOR EACH ROW
BEGIN
DELETE
FROM sc
WHERE sc.sno=old.sno;
END//
delimiter;

(2)在選課表上創(chuàng)建觸發(fā)器,若錄入的成績大于100分,小于0分,則拒絕插入記錄并顯示;

delimiter//
CREATE TRIGGER scgrade
BEFORE INSERT ON sc
FOR EACH ROW
BEGIN
IF new.grade>100 or new.grade < 0 THEN
SIGNAL SQLSTATE '45000'
SET message_text='錄入成績不符合規(guī)定,拒絕插入';
END IF;
END//
delimiter;

(3)驗(yàn)證(1)、(2)中觸發(fā)器

驗(yàn)證(1)

DELETE
FROM student
WHERE sno='201513';

驗(yàn)證(2)

INSERT INTO sc(sno,cno,grade)
VALUES('2002720','1',200);

四、實(shí)驗(yàn)總結(jié)

  • 1、通過本次實(shí)驗(yàn),對存儲(chǔ)過程和觸發(fā)器有了更深的認(rèn)識(shí);
  • 2、能夠理解不同類型觸發(fā)器的作用和執(zhí)行原理, 驗(yàn)證了觸發(fā)器的有效性;
  • 3、熟練掌握了數(shù)據(jù)庫存儲(chǔ)過程定義、存儲(chǔ)過程運(yùn)行,存儲(chǔ)過程更名,存儲(chǔ)過程刪除,存儲(chǔ)過程的參數(shù)傳遞。

到此這篇關(guān)于MySQL數(shù)據(jù)庫實(shí)驗(yàn)之 觸發(fā)器和存儲(chǔ)過程的文章就介紹到這了,更多相關(guān)MySQ存儲(chǔ)過程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql忘記密碼重置的方法實(shí)現(xiàn)

    mysql忘記密碼重置的方法實(shí)現(xiàn)

    本文主要介紹了mysql忘記密碼重置的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 一臺(tái)電腦(windows系統(tǒng))安裝兩個(gè)版本MYSQL方法步驟

    一臺(tái)電腦(windows系統(tǒng))安裝兩個(gè)版本MYSQL方法步驟

    由于新舊項(xiàng)目數(shù)據(jù)庫版本差距太大,編碼格式不同,引擎也不同,所以只好裝兩個(gè)數(shù)據(jù)庫,這篇文章主要給大家介紹了關(guān)于一臺(tái)電腦(windows系統(tǒng))安裝兩個(gè)版本MYSQL的方法步驟,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • MySQL數(shù)據(jù)庫常用命令小結(jié)

    MySQL數(shù)據(jù)庫常用命令小結(jié)

    這篇文章主要介紹了MySQL數(shù)據(jù)庫命令,主要包括對數(shù)據(jù)庫常用命令及數(shù)據(jù)庫中對表的命令,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • MySQL報(bào)錯(cuò)Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre

    MySQL報(bào)錯(cuò)Expression #1 of SELECT list 

    這篇文章主要介紹了MySQL報(bào)錯(cuò)Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Mysql子查詢IN中使用LIMIT應(yīng)用示例

    Mysql子查詢IN中使用LIMIT應(yīng)用示例

    有3張表,infor信息表,mconfig物料配置表,maaply物料申請表,要求是讀出申請表中哪些人申請哪些物料,接下來為大家介紹下Mysql子查詢IN中使用LIMIT
    2014-01-01
  • 通過ibd文件恢復(fù)MySql數(shù)據(jù)的操作方法

    通過ibd文件恢復(fù)MySql數(shù)據(jù)的操作方法

    文章介紹通過.ibd文件恢復(fù)MySQL數(shù)據(jù)的過程,包括知道表結(jié)構(gòu)和不知道表結(jié)構(gòu)兩種情況,對于知道表結(jié)構(gòu)的情況,可以直接將.ibd文件復(fù)制到新的數(shù)據(jù)庫目錄并重啟MySQL,對于不知道表結(jié)構(gòu)的情況,可以使用ibd2sql工具生成對應(yīng)的SQL腳本,然后執(zhí)行該腳本恢復(fù)數(shù)據(jù),感興趣的朋友看看吧
    2025-03-03
  • MySQL查詢優(yōu)化:用子查詢代替非主鍵連接查詢實(shí)例介紹

    MySQL查詢優(yōu)化:用子查詢代替非主鍵連接查詢實(shí)例介紹

    對多的兩張表,一般是一張表的外鍵關(guān)聯(lián)到另一個(gè)表的主鍵,接下來為大家介紹下用子查詢代替非主鍵連接查詢,感興趣的朋友可以參考下哈,希望對你有所幫助
    2013-04-04
  • MySQL中刪除重復(fù)數(shù)據(jù)SQL的三種寫法

    MySQL中刪除重復(fù)數(shù)據(jù)SQL的三種寫法

    這篇文章主要介紹了MySQL中刪除重復(fù)數(shù)據(jù)SQL的三種寫法,文中通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2025-01-01
  • MybatisPlus攔截器如何實(shí)現(xiàn)數(shù)據(jù)表分表

    MybatisPlus攔截器如何實(shí)現(xiàn)數(shù)據(jù)表分表

    為了解決MySQL中大數(shù)據(jù)量的查詢效率問題,采用水平拆分策略,通過取模運(yùn)算確定表后綴,實(shí)現(xiàn)數(shù)據(jù)的有效管理,設(shè)計(jì)分表時(shí),需利用線程變量存取請求參數(shù),并通過攔截器確定操作的具體表名,從而優(yōu)化數(shù)據(jù)處理性能,此方法適用于業(yè)務(wù)表數(shù)據(jù)量大或快速增長的場景
    2024-11-11
  • mysql中varchar和text的區(qū)別和比較

    mysql中varchar和text的區(qū)別和比較

    在存儲(chǔ)字符串時(shí)可以使用char、varchar或者text類型,下面這篇文章主要給大家介紹了關(guān)于mysql中varchar和text的區(qū)別和比較的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10

最新評論

镇远县| 尚义县| 安乡县| 石阡县| 石首市| 龙岩市| 台南县| 绥芬河市| 黑水县| 漯河市| 泽库县| 新丰县| 正安县| 运城市| 上杭县| 德化县| 遵义市| 育儿| 保康县| 日土县| 商水县| 城口县| 曲麻莱县| 哈尔滨市| 遂平县| 建瓯市| 德清县| 大厂| 汶上县| 绥滨县| 巨野县| 巴林右旗| 肇庆市| 博爱县| 永春县| 澜沧| 兴海县| 财经| 板桥市| 沐川县| 黑河市|