Innehållsförteckning
MYSQL 5, införlivade stora förändringar för att bli den mest populära databasen och konkurrera med högpresterande företagsdatabaser.Vi ska prova några begrepp som vyer (VIEW), som lagrade frågor där vi sedan kan göra frågor som om de vore tabeller med poster och också TRIGGER, som är som procedurer som är associerade med en händelse i tabeller, lagrade funktioner och lagrade procedurer.
Vyer
De är definierade för att underlätta och begränsa åtkomst till tabelldata till begränsade användare.
Strukturen är statisk och görs vid skapandetiden: framtida fält / ändringar på tabellerna återspeglas inte i vyn.
Så om en vy har en VÄLJ * FRÅN tabell och efter att ha definierat det lägger vi till ett fält i den ursprungliga tabellen, vi kommer inte att se det i vyn.
Om vi senare ändrar definitionen av något fält i den ursprungliga tabellen då a fel / varning När du använder det kommer du säkert att behöva stympa ner värden: de raderade fälten skickas till Null.
Ett exempel på en vy för att se försäljning per säljare:
SKAPA VISNING Försäljning efter säljare SOM VÄLJ säljareid SUM (kvantitet*pris) totalt FRÅN beställningar GRUPP efter säljareid ***** BY totalt DESC
Utlösare
De är lagrade procedurer som är associerade med en specifik tabell som körs före eller efter en explicit transaktion och som kör deras kod för varje post som påverkas av transaktionen. De kan inte uttryckligen åberopas, eftersom deras körning är associerad med en tabell / transaktion / tid.
De är också kända som triggers, triggers eller speciella lagrade procedurer.
Exempel innan jag sätter in en försäljning Jag kontrollerar om produkten finns i lager, infogningshändelsen utlöser förstockutlösaren automatiskt.
SKAPA TRIGGER verstock INNAN SÄKERHET FÖR VARJE FÖR VARJE RAD BÖRJA DECLARE productid INT; OM (productid) SÅ VÄLJ lager från produkter där id = productid; SLUTA OM; SLUTET;
Lagrade procedurer
Lagrade procedurer och funktioner är nya funktioner i MySQL 5.0 -versionen.
En lagrad procedur är en uppsättning SQL -kommandon som kan lagras på servern. När detta är gjort behöver klienterna inte starta om enskilda kommandon utan kan istället hänvisa till den lagrade proceduren.
SKAPA FÖRFARANDE Save_Sale (I salestype INTEGER) BÖRJA DECLARE typ CHAR (10); OM salestype = 1 THEN SET type = Retail '; ELSE SET type = 'Grossist'; SLUTA OM; SÄTT IN I försäljning (typ) VÄRDEN (typ); SLUTET
Sedan åberopas det enligt följande
RING Spara_försäljning (1)
Ett annat exempel på lagrad procedur
SKAPA FÖRFARANDE ProcedureInsert (i Namn varchar (50), i Telefon varchar (50)) BÖRJA infoga i kontakter (namn, telefon) värden (Namn, Telefon); SLUTET
Funktioner
de lagrade funktionerna för mysql De liknar lagrade procedurer: de är en uppsättning kommandon som kan lagras på en server.
Funktioner är avsedda att returnera parametrar, funktioner kan anropas inom sql -satser som välj, infoga, etc. Funktionerna kan inte returnera sql -frågor, de tjänar bara till att utföra uppgif.webpter där vi behöver utföra viss databehandling, beräkning eller konverteringar.
Till exempel:
SKAPA FUNKTION rabatt (pris, FLOAT procent) RETURNS FLOAT DETERMINISTIC BEGIN DECLARE FLOAT rabattbelopp; SET rabattbelopp = pris * procent / 100; RETUR rabattbelopp; SLUT $$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