Obsah
Uložené procedury jsou velmi užitečné pro zapouzdření databázových operací a úsporu času při vývoji.Když potřebujete udržovat databázi s mnoha transakcemi a určitou důvěrností, můžete mít tým vývojářů, kteří vytvářejí kód, aniž by věděli, jaká je databáze.
K tomu použijeme uložené procedury
Příklad
Vytváříme databázi nemovitostí a tabulku nemovitostí (používáme několik polí, abychom nevygenerovali rozsáhlý a matoucí kód)
VYTVOŘIT TABULKU, KDYŽ NEEXISTUJE `nemovitost` (` id` int (11) NOT NULL AUTO_INCREMENT ,`panituretype` varchar (100) DEFAULT '0', `price` decimal (10,2) DEFAULT '0.00',` description` text, PRIMARY KEY (`id`)) ENGINE = MyISAM AUTO_INCREMENT = 195 DEFAULT CHARSET = latin1;
Vytvořím uloženou proceduru nová nemovitost pro vložení vlastností do databáze. Při definování přiřadím jako parametr data, která musí přijmout, v tomto případě vlastnost, cenu a popis, každý s formátem mysql, také napíšu akci VLOŽIT
[color = # 000000] Abychom to mohli provést, musíme mít předem vytvořený kód připojení k databázi. [/ color]
[color = # 000000] Vytvoříme soubor config.php [/ color]
<? php
// Řetězec připojení k databázi
$ link = mysql_connect ('localhost', 'uživatel', 'heslo');
// připojení k databázi
if (! $ link) {
die ('Not connected:'. mysql_error ());
}
// Vyberte databázi
$ db = 'dbInmobiliaria';
if (! mysql_select_db ($ db)) {
die ('Chyba:'. mysql_error ());
}?> var13 ->
CALL newinmueble (parametr1, parametr2, …)
Vytvoříme další uloženou proceduru v databázi pro dotaz podle typu vlastnosti.VYTVOŘIT procedurální seznam procedur (typ varchar (150))
[odrážka = 1]SELECT * FROM vlastnost WHERE vlastnost LIKE typKromě použití v php můžeme dotaz provést v libovolném softwaru, který v tomto případě podporuje sql a mysql.
Seznam vlastností uložené procedury jsme testovali podle typu v tomto případě ze softwaru pro správu mysql Heidisql
CALL seznam nábytku ('dům')
Výsledek je vidět níže, protože je filtrován podle typu vlastnosti.
[color = # 000000] VYTVOŘTE proceduru odstranění vlastnosti (id vlastnost INT) [/ color]
[barva = # 000000]VYBRAT * Z nemovitosti KDE id = id nemovitosti[/Barva]
Potom voláme uloženou proceduru následovně
CALL odstranit vlastnost (172)
Zajímavé na tom je, že kdybychom byli správci databází velmi složitého systému, mohli bychom programátorům zpřístupnit pouze seznam procedur a nikoli strukturu databáze, která poskytuje větší důvěrnost.
Umožnit jim interagovat s daty, ale ne se strukturou, i když mohou pouze číst, ale nemodifikovat. To by byl problém pro velké databázové systémy s mnoha lidmi, kteří interagují tam, kde je důležitá bezpečnost a důvěrnost.
Nejpopulárnější databáze, které podporují uložené procedury, jsou mysql, firebird, ms sql server, oracle, db2 postgresql, sybase (první pro vytvoření databázového transakčního jazyka pro sql s názvem Transact-SQL).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