MYSQL -lagrade procedurer - skapande, förfrågningar och datainlägg

Innehållsförteckning
En lagrad procedur (Store Procedure) är en liten algoritm i SQL -språk som lagras tillsammans med databasen och gör det möjligt att utföra uppgif.webpter på denna data.
Fördelarna med lagrade procedurer är:
- Dom kan få tillgång till från olika externa program, om behovet av att göra databasstrukturen offentlig.
- Dom kan återanvändning därför kommer vi att spara tid genom att redan vara programmerade och testade.
Använd mysql lagrade procedurer, med phpmyadmin
Vi kommer att starta arbetet med att skapa och fråga efter lagrade procedurer med phpmyadmin -verktyget, men alla som stöder SQL -frågor från MYSQL 5.0 kan användas
I det här fallet tar vi databasen för en bil- eller fordonsbyrå.
1) Vi anger phpmyadmin och därifrån till databasen
Det finns 2 typer av motorer som hanterar data i Mysql
  • MyISAM: standardmotorn, mycket snabb för frågor, ger inte dataintegritet eller referensskydd. Idealiska system med många frågor
  • InnoDB: ger referensskydd och dataintegritet samt postlåsning, perfekt om mycket information ständigt sätts in, redigeras eller raderas. I allmänhet för lagrade procedurer är det bättre att använda InnoDB.

Bild skickad

På fliken SQL skapar vi vår första lagrade procedur för att fråga efter fordonstyperna. Skriv oss i textfältet i sql.
SKAPA PROCEDURE consult_vehicle_type () ---> procedurnamn
VÄLJ * FRÅN fordonstyp ---> SQL för att lösa
Om vi ​​kör SQL -frågan får vi ett framgångsmeddelande när proceduren skapas.
För att se procedurerna som skapats från fliken SQL, konsulterar vi kommandot VISA FÖRFARANDE STATUS, som inte visar alla lagrade procedurer.
Nu kommer vi att visa hur du utför den lagrade proceduren med kommandot CALL procedurnamn (Varje programmeringsspråk har sitt eget bibliotek för åtkomst till en lagrad procedur, men de är alla lika.

Bild skickad

Här kan vi se resultatet av körningen av den CALL -lagrade proceduren pa_vehiculo_type, den returnerade resultatet och ingen ser vilka kommandon som har utförts.

Bild skickad

I följande exempel kommer vi att lista fordon men efter märke är proceduren följande:
SKAPA FÖRFARANDE pa_vehiculos_por_brand (mark varchar (50))
VÄLJ FRÅN
fordon, märken
VAR vehiculos.brand = marks.id
OCH varumärken. Varumärke = varumärke
Till namnet på proceduren lägger vi till en variabel för att kunna söka efter ett exempel på fordon från Honda
För att köra exemplet kallar vi den lagrade proceduren på en SQL -flik
RING pa_vehiculos_por_marca (“Honda”)
RING pa_vehiculos_por_marca (“Ford”)
Du kan också använda de lagrade procedurerna för infoga uppgif.webpter, exempelvis en procedur för att registrera data från en kund
SKAPA FÖRFARANDE pa_cliente_insertar (
vname VARCHAR (64),
efternamn VARCHAR (64)
)
SÄTT IN I klienten (namn, efternamn) VÄRDEN (vname, efternamn);
För att använda det kallar vi det enligt följande
RING pa_cliente_insertar ('José', 'Gonzales');
En annan kan vara Kontrollera antal provinser
SKAPA FÖRFARANDE `pa_provincias_cantidad` ()
VÄLJ RÄKEN (*) som provinser FRÅN provinser
För att eliminera någon procedur används DROP PROCEDURE procedurnamn
Uppmaningar till procedurer från olika språk.
I PHP, förutsatt att data kommer från ett formulär
$ mysqli = ny mysqli ("localhost", "root", "root");
$ mysqli-> select_db ("auto_agency");

$ mysqli-> fråga ("CALL pa_client_insert ('$ förnamn', '$ efternamn')");
Nu utför vi proceduren som lagras i Java (koden har förkortats)
conn = MySQL Connection.connect ("127,0,0,1", "root", "*******", "root");
CallableStatement Procedure = conn.prepareCall ("{CALL pa_customer_insert ('$ förnamn', '$ efternamn'))}");
Procedure.setString ("vname", $ name);
Procedure.setString ("efternamn", $ efternamn);
Procedure.execute ();
connM.commit ();
På detta sätt visas det att samma procedurer har använts i olika miljöer och språk, på ett öppet sätt för användaren. Procedurämnet är omfattande men alla med kunskap om SQL kommer att kunna undersöka och uppnå stora prestationer med hjälp av lagrade procedurer, och därmed kunna optimera sina projekt i tid och datasäkerhet.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave