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.