MySQL-vyer: Hur man skapar vy från tabeller med exempel

Innehållsförteckning:

Anonim

Vad är vyer i MySQL?

VIEWS är virtuella tabeller som inte lagrar några egna data men visar data lagrade i andra tabeller. Med andra ord är VIEWS bara SQL-frågor. En vy kan innehålla alla eller några rader från en tabell. En MySQL-vy kan visa data från en eller flera tabeller.

MySQL Views syntax

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

  • "CREATE VIEW` view_name "" säger till MySQL-servern att skapa ett vyobjekt i databasen med namnet "view_name"
  • "AS SELECT-sats" är de SQL-satser som ska packas i MySQL-vyer. Det kan vara ett SELECT-uttalande 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:

Låt oss nu skapa vår första vy med "myflixdb". Vi skapar en enkel vy som begränsar kolumnerna i medlemstabellen.

Antag att behörighetskraven anger att kontodelen bara kan se medlemsnummer, namn och kön från medlemmens tabell. För att uppnå detta kan du skapa en VIEW -

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

Att utföra ovanstående skript i MySQL-arbetsbänken mot myflixdb och utöka vyer-noden i databasutforskaren ger oss följande resultat.

Observera att accounts_v_members-objektet nu syns i databasvyobjekten. Låt oss nu utföra ett SELECT-uttalande som markerar alla fält från vyn som visas i nedanstående MySQL create-exempel.

SELECT * FROM `accounts_v_members`;

Att utföra ovanstående skript i MySQL-arbetsbänk 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. Andra detaljer som finns i medlemstabellen har döljts.

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

VISA SKAPA VISNING `accounts_v_members`;

Genom att utföra ovanstående skript får du namnet på vyn och SQL SELECT-uttalanden som används för att skapa vyn.

Anslutningar och åsikter i MySQL

Låt oss nu titta på ett ganska komplext exempel som involverar flera tabeller och använder sammanfogningar.

Vi kommer att paketera den skapade JOIN som får information från tre (3) tabeller, nämligen medlemmar, filmer och filmuthyrning. Nedan följer 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 utföra ovanstående skript skapas vyn som heter 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`;

Att utföra ovanstående skript i MySQL-arbetsbänken 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 filmuthyrningsinformation. Vi använde helt enkelt vyn i ett vanligt SELECT-uttalande som alla andra vanliga tabeller. Vyn kan anropas var som helst i applikationssystemet som körs ovanpå myflixdb.

Släppa vyer i MySQL

DROP-kommandot kan användas för att radera en vy från databasen som inte längre krä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 3 skäl

  • I slutändan kommer du att använda din SQL-kunskap för att skapa applikationer som använder 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 omformulerar din DB kommer din äldre kod att se det orignala schemat via vyn utan att bryta applikationen.
  • VISNINGAR ökar återanvändbarheten. Du behöver inte skapa komplexa frågor som involverar sammanfogningar upprepade gånger. All komplexitet omvandlas till en enskild rad med frågan använder VIEWS. Sådan kondenserad kod blir lättare att integrera i din applikation. Detta eliminerar risken för skrivfel 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

  • Visningar är virtuella tabeller; de innehåller inte de uppgifter som returneras. Data lagras i de tabeller som refereras till i SELECT-uttalandet.
  • Visningar förbättrar databasens säkerhet genom att endast visa avsedd data för auktoriserade användare. De döljer känslig data.
  • Visningar gör livet enkelt eftersom du inte har skriva komplexa frågor om och om igen.
  • Det är möjligt att använda INSERT, UPDATE och DELETE på en VIEW. Dessa operationer kommer att ändra de underliggande tabellerna i VIEW. Det enda som övervägs är att VIEW ska innehålla alla INTE NULL-kolumner i de tabeller som den hänvisar till. Helst bör du inte använda VIEWS för uppdatering.