Inhoudsopgave
Een opgeslagen procedure (Store Procedure) is een klein algoritme in SQL-taal dat samen met de database wordt opgeslagen en waarmee taken op deze gegevens kunnen worden uitgevoerd.De voordelen van opgeslagen procedures zijn:
- Ze kunnen toegang krijgen tot van verschillende externe programma's, indien de noodzaak om de databasestructuur openbaar te maken.
- Ze kunnen hergebruiken daarom zullen we tijd besparen door al geprogrammeerd en getest te zijn.
Gebruik mysql opgeslagen procedures, met phpmyadmin
We zullen beginnen met het maken en opvragen van opgeslagen procedures met de phpmyadmin-tool, maar iedereen die SQL-query's ondersteunt vanaf MYSQL 5.0 kan worden gebruikt
In dit geval nemen we de database van een auto- of voertuigagentschap.
1) We voeren phpmyadmin in en van daaruit naar de database
Er zijn 2 soorten engines die gegevens verwerken in Mysql
- MijnISAM: standaard engine, zeer snel voor queries, biedt geen data-integriteit of referentiële bescherming. Ideale systemen met veel vragen
- InnoDB: biedt referentiële bescherming en gegevensintegriteit, evenals recordvergrendeling, ideaal als veel informatie voortdurend wordt ingevoegd, bewerkt of verwijderd. Over het algemeen is het voor opgeslagen procedures beter om InnoDB te gebruiken.
Op het tabblad SQL maken we onze eerste opgeslagen procedure om de voertuigtypen op te vragen. Schrijf ons in het tekstveld van sql.
PROCEDURE MAKEN consult_vehicle_type () ---> procedurenaam
SELECT * FROM vehicle_type ---> SQL om op te lossen
Als we de SQL-query uitvoeren, ontvangen we een succesbericht wanneer de procedure is gemaakt.
Om de procedures te zien die zijn gemaakt vanaf het tabblad SQL, raadplegen we de opdracht SHOW PROCEDURE STATUS, die niet alle opgeslagen procedures toont.
Nu zullen we laten zien hoe u de opgeslagen procedure uitvoert met het commando OPROEP procedurenaam (Elke programmeertaal heeft zijn eigen bibliotheek om toegang te krijgen tot een opgeslagen procedure, maar ze lijken allemaal op elkaar.
Hier kunnen we het resultaat zien van het uitvoeren van de CALL-opgeslagen procedure pa_vehiculo_type, het heeft het resultaat geretourneerd en niemand ziet welke opdrachten zijn uitgevoerd.
In het volgende voorbeeld zullen we voertuigen vermelden, maar per merk zou de procedure zijn:
PROCEDURE MAKEN pa_vehiculos_por_brand (mark varchar (50))
SELECTEER UIT
voertuigen, merken
WHERE vehiculos.brand = marks.id
EN merken.merk = merk
Aan de naam van de procedure voegen we een variabele toe om te kunnen zoeken naar een voorbeeld van voertuigen van het merk Honda
Om het voorbeeld uit te voeren, noemen we de opgeslagen procedure in een SQL-tabblad
BEL pa_vehiculos_por_marca (“Honda”)
BEL pa_vehiculos_por_marca (“Ford”)
U kunt ook de opgeslagen procedures gebruiken voor het invoegen van taken, bijvoorbeeld een procedure om gegevens van een klant vast te leggen
PROCEDURE MAKEN pa_cliente_insertar (
vnaam VARCHAR (64),
achternaam VARCHAR (64)
)
INSERT INTO client (naam, achternaam) VALUES (vname, achternaam);
Om het te gebruiken noemen we het als volgt:
BEL pa_cliente_insertar ('José', 'Gonzales');
Een ander zou kunnen zijn Controleer het aantal provincies
PROCEDURE MAKEN `pa_provincias_cantidad` ()
SELECTEER AANTAL (*) als provincies UIT provincies
Om elke procedure te elimineren wordt gebruikt DROP-PROCEDURE procedurenaam
Oproepen naar procedures vanuit verschillende talen.
In PHP, ervan uitgaande dat de gegevens uit een formulier komen
$ mysqli = nieuwe mysqli ("localhost", "root", "root");
$ mysqli-> select_db ("auto_agency");
$ mysqli-> query ("CALL pa_client_insert ('$ voornaam', '$ achternaam')");
Nu voeren we de procedure uit die is opgeslagen in Java (de code is ingekort))
conn = MySQL Connection.connect ("127,0,0,1", "root", "*******", "root");
CallableStatement Procedure = conn.prepareCall ("{CALL pa_customer_insert ('$ voornaam', '$ achternaam'))}");
Procedure.setString ("vname", $ naam);
Procedure.setString ("achternaam", $ achternaam);
Procedure.uitvoeren ();
connM.commit ();
Op deze manier wordt getoond dat dezelfde procedures zijn gebruikt in verschillende omgevingen en talen, op een transparante manier voor de gebruiker. Het procedureonderwerp is uitgebreid, maar iedereen met kennis van SQL zal in staat zijn om grote prestaties te onderzoeken en te bereiken met het gebruik van opgeslagen procedures, waardoor ze hun projecten kunnen optimaliseren op het gebied van tijd en gegevensbeveiliging.Vond je deze tutorial leuk en hielp je hem?Je kunt de auteur belonen door op deze knop te drukken om hem een positief punt te geven