I MySQL, en
vy är en virtuell tabell baserad på resultatuppsättningen i ett SQL-uttalande. Det lagrar inte data direkt. Istället lagrar den * frågan * som definierar hur man hämtar uppgifterna. När du frågar en vy kör MySQL den underliggande frågan och returnerar resultatet som om det var en riktig tabell.
Tänk på det som en lagrad fråga.
Här är en uppdelning av viktiga aspekter:
Nyckelfunktioner och egenskaper hos MySQL -vyer:
* virtuellt tabell: En vy är inte ett fysiskt bord. Det tar inte upp lagringsutrymme för att lagra data. Det är bara en definition av en fråga.
* baserat på en fråga: En vy skapas med ett uttalande om "Create View", som innehåller ett "Select" -uttalande. Detta uttalande "Select" anger hur vyn ska hämta och presentera data.
* Dataderivation: Visningar härstammar från en eller flera underliggande bastabeller (eller andra vyer).
* dynamiska data: Uppgifterna som visas genom en vy är alltid uppdaterad. När du frågar en vy avvisar MySQL den underliggande frågan. Detta säkerställer att du ser de senaste uppgifterna från bastabellerna.
* Frågevisningar: Du kan fråga en vy precis som du skulle fråga en vanlig tabell med hjälp av "Select" -uttalanden.
* Uppdateringsbar kontra icke-uppdatering: Vissa vyer är uppdaterade, vilket innebär att du kan använda uttalanden "Insert", "uppdatering" och "radera" för att ändra de underliggande uppgifterna genom vyn. Många vyer är emellertid inte uppdaterade, särskilt de som involverar aggregeringar, sammanfogningar eller beräknade kolumner.
* privilegier: Du kan bevilja och återkalla privilegier på åsikter, liknande hur du hanterar privilegier på tabeller.
Fördelar med att använda vyer:
* Dataabstraktion: Visningar döljer komplexiteten i de underliggande tabellerna och frågorna. Du kan skapa vyer som endast presenterar relevanta kolumner för specifika användare eller applikationer.
* Säkerhet: Visningar kan begränsa åtkomsten till vissa kolumner eller rader i en tabell. Du kan ge användare tillgång till en vy som bara visar en delmängd av uppgifterna utan att ge dem direkt tillgång till den underliggande tabellen.
* Förenkling av komplexa frågor: Visningar gör att du kan dela upp komplexa frågor i mindre, mer hanterbara bitar. Du kan skapa en vy för varje steg i processen och sedan kombinera dessa vyer för att få det slutliga resultatet.
* Data konsistens: Om du behöver använda samma fråga på flera platser kan du definiera den som en vy. Detta säkerställer att frågan är konsekvent i alla användningsområden. Om du behöver ändra frågan behöver du bara ändra visningsdefinitionen.
* Kodens återanvändbarhet: Visningar kapslar in frågor, så att du kan återanvända dem över olika applikationer eller rapporter.
* nynamn kolumner: Visningar låter dig byta namn på kolumner från de underliggande tabellerna, vilket ger mer beskrivande eller användarvänliga namn.
Exempel:
Låt oss säga att du har en tabell som heter "Anställdas" med följande kolumner:
* `ste_id`
* `first_name`
* `Last_name`
* `Avdelning '
* "Lön"
Du kan skapa en vy som heter "chefer" som bara visar de anställda som är chefer och deras fulla namn:
`` `SQL
Skapa visningschefer som
VÄLJA
anställd_id,
Concat (first_name, '', sista_name) som full_name,
avdelning,
lön
FRÅN
anställds
DÄR
avdelning ='ledning';
`` `
Nu kan du fråga "chefer" -vyen så här:
`` `SQL
Välj * från chefer;
`` `
Detta kommer bara att returnera de anställda som arbetar i "Management" -avdelningen, tillsammans med deras ID, fullständigt namn (beräknat från första och efternamn), avdelning och lön. Du behöver inte upprepa funktionen "concat" eller "där" klausulen varje gång du vill se denna information.
Skapa en vy:
`` `SQL
Skapa View View_Name som
Välj kolumn1, kolumn2, ...
Från tabellnamn
Där tillstånd;
`` `
Släpp en vy:
`` `SQL
Drop View View_Name;
`` `
Viktiga överväganden:
* Prestanda: Medan vyer erbjuder många fördelar, kan de ibland påverka prestanda om den underliggande frågan är komplex. MySQL måste köra frågan varje gång vyn nås. Överväg att använda materialiserade vyer (om du stöds av din MySQL -version eller installation) eller optimerar noggrant frågan om prestanda blir ett problem.
* Uppdateringsbegränsningar: Inte alla vyer är uppdaterade. Visningar med sammanfogningar, aggregeringar (t.ex. `sum`,` AVG`), `distinkt ',' grupp av 'eller vissa underfrågor är vanligtvis inte uppdaterade. MySQL kommer ofta att ge dig ett fel om du försöker ändra en icke-uppdaterad vy.
* Beroenden: Visningar är beroende av de underliggande tabellerna. Om du släpper eller ändrar en tabell som används av en vy kan vyn bli ogiltig.
Sammanfattningsvis är vyer ett kraftfullt verktyg i MySQL för att förenkla frågor, förbättra dataabstraktion och förbättra säkerheten. De ger ett sätt att skapa virtuella tabeller som presenterar data på ett anpassat och återanvändbart sätt. Kom ihåg att överväga uppdaterings- och prestationskonsekvenser när du utformar och använder vyer.