MySQL Visningar: Hur man skapar en vy från tabeller med exempel

Vad är vyer i MySQL?

VIEWS är virtuella tabeller som inte lagrar några egna data utan visar data lagrade i andra tabeller. Med andra ord, VIEWS är inget annat än SQL Queries. En vy kan innehålla alla eller några rader från en tabell. A MySQL vyn kan visa data från en tabell eller många tabeller.

MySQL Syntax för visningar

Låt oss nu titta på den grundläggande syntaxen som används för att skapa en vy i MySQL.

CREATE VIEW `view_name` AS SELECT statement;

VAR

  • "SKAPA VY `view_name`" berättar MySQL server för att skapa ett vyobjekt i databasen med namnet `view_name`
  • "AS SELECT-sats" är SQL-satserna som ska packas i MySQL Visningar. Det kan vara en SELECT-sats som kan innehålla data från en tabell eller flera tabeller.

Hur man skapar vyer i MySQL

Följande är en steg-för-steg-process för att skapa vy i MySQL:

Steg 1) Skapa vår första vy med "myflixdb"

Låt oss nu skapa vår första vy med hjälp av "myflixdb", vi kommer att skapa en enkel vy som begränsar kolumnerna som ses i medlemstabellen.

Anta att behörighetskrav anger att ekonomiavdelningen endast kan se medlemsnummer, namn och kön från medlemmens tabell. För att uppnå detta kan du skapa en VY –

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

Steg 2) Expandera vynoden

Exekvera skriptet ovan i MySQL arbetsbänk mot myflixdb och utöka visningsnoden i databasutforskaren ger oss följande resultat.

Skapa vyer i MySQL

Observera att objektet accounts_v_members nu är synligt i databasvyobjekten.

Steg 3) Kör en SELECT-sats

Låt oss nu köra en SELECT-sats som väljer alla fält från vyn som visas i nedan MySQL skapa vyexempel.

SELECT * FROM `accounts_v_members`;

Steg 4) Kör ett skript

Exekvera skriptet ovan i MySQL workbench mot myflixdb ger oss följande resultat som visas nedan.

membership_number full_names gender
1 Janet Jones Female
2 Janet Smith Jones Female
3 Robert Phil Male
4 Gloria Williams Female
5 Leonard Hofstadter Male
6 Sheldon Cooper Male
7 Rajesh Koothrappali Male
8 Leslie Winkle Male
9 Howard Wolowitz Male

Endast de auktoriserade kolumnerna för kontoavdelningen har returnerats. Övriga detaljer som finns i medlemstabellen har gömts.

Om vi ​​vill se SQL-satserna som utgör en viss vy kan vi använda skriptet som visas nedan för att göra det.

SHOW CREATE VIEW `accounts_v_members`;

Genom att köra skriptet ovan får du vynnamnet och SQL SELECT-satserna som används för att skapa vyn.

Går med och tittar in MySQL

Låt oss nu titta på ett ganska komplext exempel som involverar flera tabeller och användningsområden förenar.

Vi kommer att paketera den skapade JOIN som får information från tre (3) tabeller nämligen medlemmar, filmer och filmuthyrning. Nedan är manuset som hjälper oss att uppnå det.

CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;

Genom att köra ovanstående skript skapas vyn med namnet general_v_movie_rentals i vår myflixdb

Låt oss nu välja alla fält från en tabell som heter general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Exekvera skriptet ovan i MySQL arbetsbänk mot myflixdb ger oss följande resultat som visas nedan.

membership_number full_names title transaction_date return_date
1 Janet Jones Pirates of the Caribean 4 20-06-2012 28-06-2012
1 Janet Jones Forgetting Sarah Marshal 22-06-2012 25-06-2012
3 Robert Phil Forgetting Sarah Marshal 22-06-2012 25-06-2012
2 Janet Smith Jones Forgetting Sarah Marshal 21-06-2012 24-06-2012
3 Robert Phil X-Men 23-06-2012 28-06-2012

Observera att vi inte behövde skriva den komplexa JOIN-frågan för att få information om medlemmar, filmer och information om hyrfilmer. Vi använde helt enkelt vyn i en vanlig SELECT-sats som vilken annan vanlig tabell som helst. Vyn kan anropas från var som helst i applikationssystemet som körs ovanpå myflixdb.

Släpp in visningar MySQL

Kommandot DROP kan användas för att ta bort en vy från databas som inte längre behövs. Den grundläggande syntaxen för att släppa en vy är som följer.

DROP VIEW ` general_v_movie_rentals `;

Varför använda vyer?

Du kanske vill använda vyer främst av följande tre anledningar

  • I slutändan kommer du att använda din SQL kunskap , för att skapa applikationer som kommer att använda en databas för datakrav. Det rekommenderas att du använder VIEWS av den ursprungliga tabellstrukturen i din applikation istället för att använda själva tabellerna. Detta säkerställer att när du refaktorerar din DB kommer din äldre kod att se det ursprungliga schemat via vyn utan att bryta applikationen.
  • VIEWS ökar återanvändbarheten. Du behöver inte skapa komplexa frågor som involverar kopplingar upprepade gånger. All komplexitet omvandlas till en enda rad med frågeanvändning VIEWS. Sådan komprimerad kod blir lättare att integrera i din applikation. Detta eliminerar risken för stavfel och din kod blir mer läsbar.
  • VIEWS hjälper till med datasäkerhet. Du kan använda vyer för att endast visa behörig information för användare och dölja känslig information som kreditkortsnummer.

Sammanfattning

  • Vyer är virtuella tabeller; de innehåller inte de uppgifter som returneras. Data lagras i tabellerna som refereras till i SELECT-satsen.
  • Vyer förbättrar säkerheten för databasen genom att endast visa avsedd data för behöriga användare. De döljer känsliga uppgifter.
  • Åsikter gör livet enkelt eftersom du inte behöver skriva komplexa frågor gång på gång.
  • Det är möjligt att använda INSERT, UPPDATERA och DELETE på en vy. Dessa operationer kommer att ändra de underliggande tabellerna i VIEW. Den enda hänsynen är att VIEW bör innehålla alla NOT NULL-kolumner i tabellerna den refererar till. Helst ska du inte använda VIEWS för uppdatering.