MYSQL uložené procedury - tvorba, dotazy a datové přílohy

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.

Obrázek odeslán

Na kartě SQL vytvoříme naši první uloženou proceduru pro dotaz na typy vozidel. Napište nám do textového pole sql.
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é.

Obrázek odeslán

Zde vidíme výsledek provedení CALL uložené procedury pa_vehiculo_type, vrátilo výsledek a nikdo nevidí, jaké příkazy byly provedeny.

Obrázek odeslán

V následujícím příkladu uvedeme seznam vozidel, ale podle značky, bude postup následující:
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

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave