MYSQL lagrede prosedyrer - oppretting, forespørsler og datainnlegg

Innholdsfortegnelse
En lagret prosedyre (Store Procedure) er en liten algoritme i SQL -språk som lagres sammen med databasen og lar oppgaver utføres på disse dataene.
Fordelene med lagrede prosedyrer er:
- De kan å få tilgang fra forskjellige eksterne programmer, hvis behovet for å gjøre databasestrukturen offentlig.
- De kan gjenbruk derfor sparer vi tid ved å allerede være programmert og testet.
Bruk mysql lagrede prosedyrer, med phpmyadmin
Vi starter arbeidet med å lage og spørre lagrede prosedyrer med phpmyadmin -verktøyet, men alle som støtter SQL -spørringer fra MYSQL 5.0 kan brukes
I dette tilfellet tar vi databasen til en bil eller et bilbyrå.
1) Vi skriver inn phpmyadmin og derfra til databasen
Det er 2 typer motorer som håndterer data i Mysql
  • MyISAM: standardmotoren, veldig rask for spørsmål, gir ikke dataintegritet eller referansebeskyttelse. Ideelle systemer med mange spørsmål
  • InnoDB: gir referansebeskyttelse og dataintegritet samt registrering av lås, ideelt hvis mye informasjon stadig settes inn, redigeres eller slettes. Vanligvis for lagrede prosedyrer er det bedre å bruke InnoDB.

Bilde sendt

I SQL -fanen oppretter vi vår første lagrede prosedyre for å spørre kjøretøytypene. Skriv oss i tekstfeltet til sql.
OPPRETT PROCEDURE consult_vehicle_type () ---> prosedyrenavn
VELG * FRA kjøretøy_type ---> SQL for å løse
Hvis vi utfører SQL -spørringen, vil vi motta en suksessmelding når prosedyren er opprettet.
For å se prosedyrene som er opprettet fra SQL -fanen, konsulterer vi kommandoen VIS PROCEDURE STATUS, som ikke viser alle de lagrede prosedyrene.
Nå vil vi vise hvordan du utfører den lagrede prosedyren med kommandoen RING prosedyrenavn (Hvert programmeringsspråk har sitt eget bibliotek for å få tilgang til en lagret prosedyre, men de er alle like.

Bilde sendt

Her kan vi se resultatet av utførelsen av den CALL lagrede prosedyren pa_vehiculo_type, den returnerte resultatet og ingen ser hvilke kommandoer som er utført.

Bilde sendt

I følgende eksempel vil vi liste kjøretøyer, men etter merke vil fremgangsmåten være:
OPPRETTE PROSEDYRE pa_vehiculos_por_brand (mark varchar (50))
VELG * FRA
kjøretøyer, merker
HVOR vehiculos.brand = marks.id
OG merker. Merke = merke
Til navnet på prosedyren legger vi til en variabel for å kunne søke etter et eksempel på kjøretøyer fra Honda
For å kjøre eksemplet kaller vi den lagrede prosedyren i en SQL -fane
RING pa_vehiculos_por_marca (“Honda”)
RING pa_vehiculos_por_marca (“Ford”)
Du kan også bruke de lagrede prosedyrene for å sette inn oppgaver, for eksempel en prosedyre for å registrere data fra en kunde
OPPRETTE PROSEDYRE pa_cliente_insertar (
vname VARCHAR (64),
etternavn VARCHAR (64)
)
SETT INN I klienten (navn, etternavn) VERDIER (vname, etternavn);
For å bruke det kaller vi det som følger
RING pa_cliente_insertar ('José', 'Gonzales');
En annen kan være Kontroller antall provinser
OPPRETTE PROSEDYRE `pa_provincias_cantidad` ()
VELG TELL (*) som provinser FRA provinser
For å eliminere noen prosedyre brukes FALLPROSEDYRE prosedyrenavn
Anrop til prosedyrer fra forskjellige språk.
I PHP, forutsatt at dataene kommer fra et skjema
$ mysqli = ny mysqli ("localhost", "root", "root");
$ mysqli-> select_db ("auto_agency");

$ mysqli-> spørring ("CALL pa_client_insert ('$ fornavn', '$ etternavn')");
Nå utfører vi prosedyren som er lagret i Java (koden er forkortet)
conn = MySQL Connection.connect ("127,0,0,1", "root", "*******", "root");
CallableStatement Procedure = conn.prepareCall ("{CALL pa_customer_insert ('$ fornavn', '$ etternavn'))}");
Procedure.setString ("vname", $ name);
Procedure.setString ("etternavn", $ etternavn);
Prosedyre.execute ();
connM.commit ();
På denne måten er det vist at de samme prosedyrene har blitt brukt i forskjellige miljøer og språk, på en transparent måte for brukeren. Prosedyreemnet er omfattende, men alle med kunnskap om SQL vil kunne undersøke og oppnå store prestasjoner ved bruk av lagrede prosedyrer, og dermed kunne optimalisere prosjektene sine i tide og datasikkerhet.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave