Styr dataåtkomst med visningar i SQL

click fraud protection

Databas vyer minskar komplexiteten i slutanvändarupplevelsen och begränsar användarnas åtkomst till data i databastabeller. I huvudsak använder en vy resultaten av a databasfråga för att dynamiskt fylla i innehållet i en virtuell databastabell.

Varför använda vyer?

Det finns två primära skäl att ge användarna åtkomst till data via vyer snarare än att ge dem direkt tillgång till databastabeller:

  • Visningar ger enkel, detaljerad säkerhet. Använd en vy för att begränsa de data som en användare får se i en tabell. Till exempel, om du har en anställdstabell och vill ge vissa användare tillgång till posterna för heltidsanställda kan du skapa en vy som bara innehåller dessa poster. Detta är mycket enklare än alternativet (skapa och underhålla en skuggbord) och säkerställer dataintegriteten.
  • Visningar förenklar användarupplevelsen. Visningar döljer komplexa detaljer i dina databastabeller från slutanvändare som inte behöver se dem. Om en användare dumpar innehållet i en vy ser de inte de tabellkolumner som inte har valts av vyn och de kanske inte förstår. Detta skyddar dem från förvirring orsakad av dåligt namngivna kolumner, unika identifierare och
    instagram viewer
    bordsnycklar.

Skapa en vy

Att skapa en vy är helt enkelt: Skapa helt enkelt en fråga som innehåller de begränsningar som du vill genomdriva och placera den i kommandot CREATE VIEW. Här är den allmänna syntaxen:

CREATE VIEW viewname AS

Till exempel, för att skapa en heltidsanställd syn, utfärda följande kommando:

SKAPA VISNING på heltid
VÄLJ förnamn, efternamn, anställd_id
FRÅN anställda
VAR status = 'FT';

Ändra en vy

Att ändra innehållet i en vy använder exakt samma syntax som skapandet av en vy, men använd ALTER VIEW-kommandot istället för CREATE VIEW-kommandot. Om du till exempel vill lägga till en begränsning i heltidsvyn som lägger till den anställdes telefonnummer till resultaten, ska du utfärda följande kommando:

ALTER VIEW heltid AS
VÄLJ förnamn, efternamn, anställd_id, telefon
FRÅN anställda
VAR status = 'FT';

Ta bort en vy

Det är enkelt att ta bort en vy från en databas med kommandot DROP VIEW. Om du till exempel vill ta bort den heltidsanställdes vy använder du följande kommando:

DROP VIEW på heltid; 

Visningar vs. Materialiserade vyer

En vy är ett virtuellt bord. A materialiserad vy är samma vy skriven till disk och nås som om det vore en tabell i sig.

När du kör en fråga mot en vy körs den sekundära frågan som källan vyn i realtid och resultaten återförs till den ursprungliga huvudfrågan. Om dina åsikter är exceptionellt komplexa eller om din huvudfråga kräver ett stort antal hash-sammanfogningar bland flera tabeller och vyer, kommer din huvudfråga att köras med en sköldpadds hastighet.

En materialiserad vy påskyndar körningen av frågan eftersom den fungerar som en förkompilerad fråga skriven till disk och körs därför lika snabbt som en tabell. Materialiserade vyer är dock bara lika bra som händelseprocedurerna som uppdaterar dem. I det långa loppet, med bra underhåll, påskyndar materialiserade vyer saker med en liten avvägning i fördröjningstid, utan behov av en massa skuggbord som kan bli vilande och antingen äta diskutrymme eller källa någon annans frågor felaktigt.

instagram story viewer