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