SQL深入探究存儲(chǔ)的過(guò)程
現(xiàn)需要向?qū)W生表中插入新的學(xué)生數(shù)據(jù)。但在插入學(xué)生數(shù)據(jù)的時(shí),需要同
時(shí)檢查老師表里的數(shù)據(jù)。如果插入學(xué)生的老師不在老師表里,則先向老師表中插入一條老師數(shù)據(jù),再向?qū)W生表中插入學(xué)生數(shù)據(jù)。
步驟:
使用SELECT語(yǔ)句查詢新學(xué)生的老師是否存在于老師表中;
- 如果不存在 ,則繼續(xù)執(zhí)行第2步;
- 如果存在,則直接跳到第3步;
向老師表中插入老師數(shù)據(jù);向?qū)W生表中插入學(xué)生數(shù)據(jù)
上方需求我們可以通過(guò)存儲(chǔ)過(guò)程實(shí)現(xiàn)
存儲(chǔ)過(guò)程簡(jiǎn)介
現(xiàn)需要向?qū)W生表中插入新的學(xué)生數(shù)據(jù)。但在插入學(xué)生數(shù)據(jù)的時(shí),需要同
時(shí)檢查老師表里的數(shù)據(jù)。如果插入學(xué)生的老師不在老師表里,則先向老師表中插入一條老師數(shù)據(jù),再向?qū)W生表中插入學(xué)生數(shù)據(jù)
存儲(chǔ)過(guò)程:一組為了完成特定功能的SQL語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中,然后通過(guò)指定存儲(chǔ)過(guò)程的名字并給定參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)調(diào)用執(zhí)行它。
存儲(chǔ)過(guò)程的創(chuàng)建及調(diào)用
存儲(chǔ)過(guò)程的創(chuàng)建:使用關(guān)鍵字CREATE PROCEDURE
存儲(chǔ)過(guò)程的刪除
如何刪除存儲(chǔ)過(guò)程
比如:現(xiàn)需要向?qū)W生表中插入新的學(xué)生數(shù)據(jù)。但在插入學(xué)生數(shù)據(jù)的時(shí),需要同時(shí)檢查老師表里的數(shù)據(jù)。如果插入學(xué)生的老師不在老師表里,則先向老師表中插入一條老師數(shù)據(jù),再向?qū)W生表中插入學(xué)生數(shù)據(jù)。
CREATE PROCEDURE sp_add_student( IN i_student_id VARCHAR(50), IN i_student_name VARCHAR(100), IN i_gender VARCHAR(10), IN i_birth_day DATE, IN i_age INT, IN i_class_id VARCHAR(50), IN i_score DECIMAL(18,2), IN i_teacher_id VARCHAR(20) ) BEGIN IF NOT EXISTS(SELECT 1 FROM teacher WHERE teacher_id = 'i_teacher_id') THEN INSERT INTO teacher(teacher_id) VALUES (i_teacher_id); END IF; INSERT INTO student VALUES( i_student_id,i_student_name,i_gender,i_birth_day, i_age, i_class_id, i_score, i_teacher_id ); END;
存儲(chǔ)過(guò)程的調(diào)用:使用關(guān)鍵字CALL
如:
CALL sp_add_student( 'S20170091', '楊艷', '女', '2003-04-09', 15, 'G0206', 89.23, 'T0021' );
存儲(chǔ)過(guò)程的刪除:使用關(guān)鍵字DROP PROCEDURE
如:DROP PROCEDURE sp_add_student;
存儲(chǔ)過(guò)程的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
- 功能強(qiáng)大、靈活性高;
- 模塊化,封裝,代碼復(fù)用;
缺點(diǎn):
- 開(kāi)發(fā)調(diào)試?yán)щy;
- 可移植性差,不同數(shù)據(jù)庫(kù),語(yǔ)法差別很大,移植困難;
到此這篇關(guān)于SQL深入探究存儲(chǔ)的過(guò)程的文章就介紹到這了,更多相關(guān)SQL存儲(chǔ)過(guò)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MYSQL8 通過(guò)ibd文件恢復(fù)表數(shù)據(jù)的方法
這篇文章主要介紹了MYSQL8 通過(guò)ibd文件恢復(fù)表數(shù)據(jù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01使用Linux的Shell腳本定時(shí)處理MySQL超時(shí)
本文提供使用Linux的Shell腳本定時(shí)處理MySQL超時(shí)Locked進(jìn)程腳本2013-11-11mysql如何通過(guò)my.ini更改默認(rèn)字符集
這篇文章主要介紹了mysql如何通過(guò)my.ini更改默認(rèn)字符集問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12windows下mysql 8.0.16 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了windows下mysql 8.0.16 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05MySQL Version確認(rèn)問(wèn)題(版本確認(rèn))
這篇文章主要介紹了MySQL Version確認(rèn)問(wèn)題(版本確認(rèn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12