SQL深入探究存儲的過程
現(xiàn)需要向學生表中插入新的學生數(shù)據(jù)。但在插入學生數(shù)據(jù)的時,需要同
時檢查老師表里的數(shù)據(jù)。如果插入學生的老師不在老師表里,則先向老師表中插入一條老師數(shù)據(jù),再向學生表中插入學生數(shù)據(jù)。

步驟:
使用SELECT語句查詢新學生的老師是否存在于老師表中;
- 如果不存在 ,則繼續(xù)執(zhí)行第2步;
- 如果存在,則直接跳到第3步;
向老師表中插入老師數(shù)據(jù);向學生表中插入學生數(shù)據(jù)
上方需求我們可以通過存儲過程實現(xiàn)
存儲過程簡介
現(xiàn)需要向學生表中插入新的學生數(shù)據(jù)。但在插入學生數(shù)據(jù)的時,需要同
時檢查老師表里的數(shù)據(jù)。如果插入學生的老師不在老師表里,則先向老師表中插入一條老師數(shù)據(jù),再向學生表中插入學生數(shù)據(jù)

存儲過程:一組為了完成特定功能的SQL語句集,經編譯后存儲在數(shù)據(jù)庫中,然后通過指定存儲過程的名字并給定參數(shù)(如果該存儲過程帶有參數(shù))來調用執(zhí)行它。
存儲過程的創(chuàng)建及調用
存儲過程的創(chuàng)建:使用關鍵字CREATE PROCEDURE
存儲過程的刪除
如何刪除存儲過程
比如:現(xiàn)需要向學生表中插入新的學生數(shù)據(jù)。但在插入學生數(shù)據(jù)的時,需要同時檢查老師表里的數(shù)據(jù)。如果插入學生的老師不在老師表里,則先向老師表中插入一條老師數(shù)據(jù),再向學生表中插入學生數(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;
存儲過程的調用:使用關鍵字CALL
如:
CALL sp_add_student( 'S20170091', '楊艷', '女', '2003-04-09', 15, 'G0206', 89.23, 'T0021' );
存儲過程的刪除:使用關鍵字DROP PROCEDURE
如:DROP PROCEDURE sp_add_student;
存儲過程的優(yōu)缺點
優(yōu)點:
- 功能強大、靈活性高;
- 模塊化,封裝,代碼復用;
缺點:
- 開發(fā)調試困難;
- 可移植性差,不同數(shù)據(jù)庫,語法差別很大,移植困難;
到此這篇關于SQL深入探究存儲的過程的文章就介紹到這了,更多相關SQL存儲過程內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
ubuntu系統(tǒng)中Mysql ERROR 1045 (28000): Acces
這篇文章主要介紹了ubuntu系統(tǒng)安裝mysql登陸提示 解決Mysql ERROR 1045 (28000): Access denied for user root@ localhost問題,需要的朋友可以參考下2017-05-05
解決Linux安裝mysql 在/etc下沒有my.cnf的問題
這篇文章主要介紹了解決Linux安裝mysql 在/etc下沒有my.cnf的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
mysql報錯Duplicate entry ‘xxx‘ for key&nbs
有時候對表進行操作,例如加唯一鍵,或者插入數(shù)據(jù),會報錯,本文就來介紹一下mysql報錯Duplicate entry ‘xxx‘ for key ‘字段名‘的解決方法,感興趣的可以了解一下2023-10-10
linux配置mysql數(shù)據(jù)庫遠程連接失敗的解決方法
這篇文章主要為大家詳細介紹了linux配置mysql數(shù)據(jù)庫遠程連接失敗的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
mysql 單機數(shù)據(jù)庫優(yōu)化的一些實踐
這篇文章主要介紹了mysql 單機數(shù)據(jù)庫優(yōu)化的一些實踐的相關資料,需要的朋友可以參考下2016-09-09

