Satura rādītājs
Saglabāta procedūra (uzglabāšanas procedūra) ir mazs algoritms SQL valodā, kas tiek saglabāts kopā ar datu bāzi un ļauj veikt uzdevumus ar šiem datiem.Uzglabāto procedūru priekšrocības ir šādas:
- Viņi var piekļūt no dažādām ārējām programmām, ja ir nepieciešams publiskot datu bāzes struktūru.
- Viņi var atkārtoti izmantot tāpēc mēs ietaupīsim laiku, jo esam jau ieprogrammēti un pārbaudīti.
Izmantojiet mysql saglabātās procedūras ar phpmyadmin
Mēs sāksim darbu, lai izveidotu un vaicātu saglabātās procedūras, izmantojot rīku phpmyadmin, taču var izmantot ikvienu, kas atbalsta SQL vaicājumus no MYSQL 5.0
Šajā gadījumā mēs ņemsim automašīnu vai transportlīdzekļu aģentūras datu bāzi.
1) Mēs ievadām phpmyadmin un no turienes uz datu bāzi
Ir 2 veidu dzinēji, kas apstrādā datus Mysql
- MyISAM: noklusējuma dzinējs, ļoti ātrs vaicājumiem, nenodrošina datu integritāti vai atsauces aizsardzību. Ideālas sistēmas ar daudziem jautājumiem
- InnoDB: nodrošina atsauces aizsardzību un datu integritāti, kā arī ierakstu bloķēšanu, ideāli, ja daudz informācijas tiek pastāvīgi ievietota, rediģēta vai dzēsta. Parasti uzglabātām procedūrām labāk ir izmantot InnoDB.
Cilnē SQL mēs izveidojam savu pirmo saglabāto procedūru, lai vaicātu transportlīdzekļu tipus. Ierakstiet mūs sql teksta laukā.
CREATE PROCEDURE consult_vehicle_type () ---> procedūras nosaukums
SELECT * FROM vehicle_type ---> SQL, lai atrisinātu
Ja mēs izpildām SQL vaicājumu, tad, izveidojot procedūru, mēs saņemsim paziņojumu par veiksmi.
Lai redzētu no cilnes SQL izveidotās procedūras, mēs skatāmies komandu RĀDĪT PROCEDŪRAS STATUSU, kurā netiks parādītas visas saglabātās procedūras.
Tagad mēs parādīsim, kā izpildīt saglabāto procedūru ar komandu CALL procedras_nosaukums (Katrai programmēšanas valodai ir sava bibliotēka, lai piekļūtu saglabātajai procedūrai, taču tās visas ir līdzīgas.
Šeit mēs varam redzēt CALL saglabātās procedūras pa_vehiculo_type izpildes rezultātu, tas atdeva rezultātu, un neviens neredz, kādas komandas ir izpildītas.
Šajā piemērā mēs uzskaitīsim transportlīdzekļus, bet pēc markas procedūra būtu šāda:
IZVEIDOT PROCEDŪRU pa_vehiculos_por_brand (atzīmēt varchar (50))
SELECT * FROM
transportlīdzekļiem, zīmoliem
KUR vehiculos.brand = atzīmes.id
UN zīmoli. Zīmols = zīmols
Procedūras nosaukumam mēs pievienojam mainīgo, lai varētu meklēt Honda zīmola transportlīdzekļu piemēru
Lai izpildītu piemēru, mēs izsaucam saglabāto procedūru SQL cilnē
CALL pa_vehiculos_por_marca (“Honda”)
CALL pa_vehiculos_por_marca (“Ford”)
Saglabātās procedūras varat izmantot arī uzdevumu ievietošanai, piemēram, procedūra, lai ierakstītu datus no klienta
IZVEIDOT PROCEDŪRU pa_cliente_insertar (
vvārds VARCHAR (64),
uzvārds VARCHAR (64)
)
IEVIETOT klientā (vārds, uzvārds) VĒRTĪBAS (v vārds, uzvārds);
Lai to izmantotu, mēs to saucam šādi
CALL pa_cliente_insertar (“José”, “Gonzales”);
Vēl viens varētu būt provinču pārbaužu skaits
IZVEIDOT PROCEDŪRU "pa_provincias_cantidad" ()
ATLASIET COUNT (*) kā provinces NO provincēm
Lai novērstu jebkuru procedūru, tiek izmantota PILDĪŠANAS PROCEDŪRA procedras_nosaukums
Zvani uz procedūrām no dažādām valodām.
In PHP, pieņemot, ka dati nāk no veidlapas
$ mysqli = jauns mysqli ("localhost", "root", "root");
$ mysqli-> select_db ("auto_agency");
$ mysqli-> query ("CALL pa_client_insert ('$ first name', '$ uzvārds')");
Tagad mēs izpildām procedūru, kas saglabāta Java (kods ir saīsināts)
conn = MySQL Connection.connect ("127,0,0,1", "root", "*******", "root");
CallableStatement Procedūra = conn.prepareCall ("{{CALL pa_customer_insert ('$ first name', '$ uzvārds'))}");
Procedūra.setString ("vname", $ nosaukums);
Procedūra.setString ("uzvārds", $ uzvārds);
Procedūra.execute ();
connM.commit ();
Tādā veidā tiek parādīts, ka tās pašas procedūras ir izmantotas dažādās vidēs un valodās, lietotājam pārskatāmā veidā. Procedūras tēma ir plaša, taču ikviens, kam ir zināšanas par SQL, varēs izpētīt un sasniegt lielus sasniegumus, izmantojot saglabātās procedūras, tādējādi spējot optimizēt savus projektus laikā un datu drošībā.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu