Съдържание
Съхранена процедура (Store Procedure) е малък алгоритъм на SQL език, който се съхранява заедно с базата данни и позволява да се изпълняват задачи по тези данни.Предимствата на съхранените процедури са:
- Те могат влизам от различни външни програми, ако е необходимо да се направи публичната структура на базата данни.
- Те могат повторна употреба следователно ще спестим време, като вече сме програмирани и тествани.
Използвайте mysql съхранени процедури с phpmyadmin
Ще започнем работата по създаване и запитване на съхранени процедури с инструмента phpmyadmin, но може да се използва всеки, който поддържа SQL заявки от MYSQL 5.0
В този случай ще вземем базата данни на автомобил или агенция за превозни средства.
1) Въвеждаме phpmyadmin и оттам към базата данни
Има 2 типа двигатели, които обработват данни в Mysql
- MyISAM: двигателят по подразбиране, много бърз за заявки, не осигурява целостта на данните или референтната защита. Идеални системи с много заявки
- InnoDB: осигурява референтна защита и цялост на данните, както и заключване на записи, идеално, ако много информация постоянно се вмъква, редактира или изтрива. Като цяло за съхранени процедури е по -добре да се използва InnoDB.
В раздела SQL създаваме първата си съхранена процедура за запитване за типовете превозни средства. Пишете ни в текстовото поле на sql.
CREATE PROCEDURE advis_vehicle_type () ---> име на процедурата
SELECT * FROM vehicle_type ---> SQL за разрешаване
Ако изпълним SQL заявката, ще получим съобщение за успех, когато процедурата е създадена.
За да видите процедурите, създадени от раздела SQL, се консултираме с командата SHOW PROCEDURE STATUS, която няма да показва всички съхранени процедури.
Сега ще покажем как да изпълним съхранената процедура с командата CALL процедура_име (Всеки език за програмиране има своя собствена библиотека за достъп до съхранена процедура, но всички те са сходни.
Тук можем да видим резултата от изпълнението на съхранената процедура CALL pa_vehiculo_type, тя върна резултата и никой не вижда какви команди са изпълнени.
В следния пример ще изброим превозни средства, но по марка процедурата ще бъде:
CREATE PROCEDURE pa_vehiculos_por_brand (маркирайте varchar (50))
ИЗБЕРЕТЕ * ОТ
превозни средства, марки
КЪДЕ vehiculos.brand = marks.id
И brand.brand = марка
Към името на процедурата добавяме променлива, за да можем да търсим пример за превозни средства с марка Honda
За да стартираме примера, наричаме съхранената процедура в раздел SQL
ПОЗВАНЕ pa_vehiculos_por_marca („Honda“)
ПОЗВАНЕ pa_vehiculos_por_marca („Ford“)
Можете също да използвате съхранените процедури за вмъкване на задачи, например процедура за записване на данни от клиент
СЪЗДАВАНЕ НА ПРОЦЕДУРА pa_cliente_insertar (
vname VARCHAR (64),
фамилия ВАРЧАР (64)
)
INSERT INTO client (име, фамилия) ЦЕННОСТИ (vname, фамилия);
За да го използваме, го наричаме, както следва
ПОЗВАНЕ pa_cliente_insertar („Хосе“, „Гонсалес“);
Друг може да бъде Проверете броя на провинциите
СЪЗДАВАНЕ НА ПРОЦЕДУРА `pa_provincias_cantidad` ()
ИЗБЕРЕТЕ БРОЙ (*) като провинции ОТ провинции
За премахване се използва всяка процедура ПРОЦЕДУРА ЗА ДРОП процедура_име
Обаждания към процедури от различни езици.
В PHP, като приемем, че данните идват от формуляр
$ mysqli = нов mysqli ("localhost", "root", "root");
$ mysqli-> select_db ("auto_agency");
$ mysqli-> заявка ("CALL pa_client_insert ('$ first name', '$ last name')");
Сега изпълняваме процедурата, съхранена в Java (кодът е съкратен)
conn = MySQL Connection.connect ("127,0,0,1", "root", "*******", "root");
CallableStatement Procedure = conn.prepareCall ("{CALL pa_customer_insert ('$ first name', '$ last name'))}");
Procedure.setString ("vname", $ name);
Procedure.setString ("фамилия", $ фамилия);
Procedure.execute ();
connM.commit ();
По този начин се показва, че едни и същи процедури са били използвани в различни среди и езици, по прозрачен за потребителя начин. Темата за процедурите е обширна, но всеки с познания по SQL ще може да проучи и постигне големи постижения с използването на съхранени процедури, като по този начин ще може да оптимизира своите проекти във времето и сигурността на данните.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка