Obsah
Uložená procedura (Store Procedure) je malý algoritmus v jazyce SQL, který je uložen společně s databází a umožňuje provádění úkolů na těchto datech.Výhody uložených procedur jsou:
- Oni mohou mít přístup z různých externích programů, pokud je potřeba zveřejnit strukturu databáze.
- Oni mohou opětovné použití proto ušetříme čas tím, že jsme již naprogramovaní a testovaní.
Použijte uložené procedury mysql s phpmyadmin
Začneme pracovat na vytváření a dotazování uložených procedur pomocí nástroje phpmyadmin, ale lze použít kohokoli, kdo podporuje dotazy SQL od MYSQL 5.0
V takovém případě vezmeme databázi agentury pro automobily nebo vozidla.
1) Zadáme phpmyadmin a odtud do databáze
V MySQL existují dva typy motorů, které zpracovávají data
- MyISAM: výchozí modul, velmi rychlý na dotazy, neposkytuje integritu dat ani referenční ochranu. Ideální systémy s mnoha dotazy
- InnoDB: poskytuje referenční ochranu a integritu dat a také zamykání záznamů, což je ideální, pokud je neustále vkládáno, upravováno nebo mazáno mnoho informací. Obecně je pro uložené procedury lepší použít InnoDB.
VYTVOŘTE POSTUP consult_vehicle_type () ---> název procedury
K vyřešení vyberte * FROM vehicle_type ---> SQL
Pokud spustíme dotaz SQL, při vytvoření procedury obdržíme zprávu o úspěchu.
Chcete -li zobrazit postupy vytvořené na kartě SQL, konzultujte příkaz ZOBRAZIT STAV POSTUPU, který nezobrazí všechny uložené procedury.
Nyní si ukážeme, jak příkazem spustit uloženou proceduru VOLEJ název_ procedury (Každý programovací jazyk má svou vlastní knihovnu pro přístup k uložené proceduře, ale všechny jsou si podobné.
VYTVOŘTE POSTUP pa_vehiculos_por_brand (označte varchar (50))
VYBRAT * OD
vozidla, značky
KDE Vehiculos.brand = marks.id
AND brands.brand = značka
K názvu postupu přidáme proměnnou, abychom mohli vyhledat příklad vozidel značky Honda
Chcete -li spustit příklad, voláme uloženou proceduru na kartě SQL
CALL pa_vehiculos_por_marca („Honda“)
CALL pa_vehiculos_por_marca („Ford“)
Uložené procedury můžete také použít pro vkládání úloh, příklad postupu pro záznam dat od zákazníka
VYTVOŘIT POSTUP pa_cliente_insertar (
vname VARCHAR (64),
příjmení VARCHAR (64)
)
INSERT INTO client (name, surname) VALUES (vname, surname);
Abychom to mohli použít, říkáme tomu následovně
CALL pa_cliente_insertar ('José', 'Gonzales');
Další by mohla být Kontrola počtu provincií
VYTVOŘIT POSTUP `pa_provincias_cantidad` ()
VYBERTE COUNT (*) jako provincie Z provincií
K odstranění jakéhokoli postupu se používá POSTUP KAPACENÍ název_ procedury
Volání procedur z různých jazyků.
v PHPza předpokladu, že data pocházejí z formuláře
$ mysqli = nový mysqli ("localhost", "root", "root");
$ mysqli-> select_db ("auto_agency");
$ mysqli-> query ("CALL pa_client_insert ('$ first name', '$ last name')");
Nyní spustíme proceduru uloženou v Jáva (kód byl zkrácen)
conn = Připojení MySQL.connect ("127,0,0,1", "root", "*******", "root");
CallableStatement Procedure = conn.prepareCall ("{CALL pa_customer_insert ('$ first name', '$ last name'))}");
Procedura.setString ("vname", $ name);
Procedura.setString ("příjmení", $ příjmení);
Procedura.execute ();
connM.commit ();
Tímto způsobem je ukázáno, že stejné postupy byly použity v různých prostředích a jazycích, transparentním způsobem pro uživatele. Téma procedury je obsáhlé, ale kdokoli se znalostí SQL bude schopen zkoumat a dosáhnout velkých úspěchů s využitím uložených procedur, a tak bude schopen optimalizovat své projekty v čase a zabezpečení dat.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod