MySQL Visninger: Sådan opretter du en visning fra tabeller
⚡ Smart opsummering
MySQL Visninger er virtuelle tabeller, der ikke lagrer deres egne data, men i stedet præsenterer resultatet af en gemt SELECT-forespørgsel. Denne ressource forklarer, hvordan man opretter, forespørger, joiner og sletter visninger med kørbare eksempler fra myflixdb-databasen.
Hvad er visninger i MySQL?
VISNINGER er virtuelle tabeller, der ikke gemmer deres egne data, men viser data gemt i andre tabeller. Med andre ord er VIEWS intet andet end SQL Queries. En visning kan indeholde alle eller nogle få rækker fra en tabel. EN MySQL visning kan vise data fra én tabel eller mange tabeller.
MySQL Syntaks
Lad os nu se på den grundlæggende syntaks, der bruges til at oprette en visning i MySQL.
CREATE VIEW `view_name` AS SELECT statement;
HVOR
- "CREATE VIEW `view_name`" fortæller MySQL server for at oprette et visningsobjekt i databasen med navnet `view_name`
- "AS SELECT-sætning" er de SQL-sætninger, der skal pakkes i MySQL Visninger. Det kan være en SELECT-sætning, der kan indeholde data fra en tabel eller flere tabeller.
Hvorfor bruge visninger?
Før du bygger en, er det en god idé at vide, hvad en visning rent faktisk giver dig.
Du vil måske primært bruge visninger af følgende 3 grunde
- I sidste ende vil du bruge din SQL viden, til at oprette applikationer, der bruger en database til datakrav. Det anbefales, at du bruger VIEWS af den oprindelige tabelstruktur i din applikation i stedet for at bruge selve tabellerne. Dette sikrer, at når du refaktorerer din database, vil din ældre kode se det oprindelige skema via viewet uden at ødelægge applikationen.
- VIEWS øger genbrugbarheden. Du behøver ikke oprette komplekse forespørgsler, der involverer joinforbindelser gentagne gange. Al kompleksiteten er konverteret til en enkelt linje med forespørgsel brug VIEWS. Sådan komprimeret kode vil være lettere at integrere i din applikation. Dette vil eliminere chancerne for stavefejl, og din kode vil være mere læsbar.
- VIEWS hjælper med datasikkerhed. Du kan bruge visninger til kun at vise autoriserede oplysninger til brugere og skjule følsomme data som kreditkortnumre.
Sådan opretter du visninger i MySQL
Med syntaksen og fordelene etableret, opbygger nedenstående trin en arbejdsvisning fra start til slut.
Følgende er en trin-for-trin-proces til at oprette visning i MySQL:
Trin 1) Opret vores første visning ved hjælp af "myflixdb"
Lad os nu oprette vores første visning ved hjælp af "myflixdb", vi vil skabe en simpel visning, der begrænser kolonnerne, der ses i medlemstabellen.
Antag at autorisationskravene angiver, at regnskabsafdelingen kun kan se medlemsnummer, navn og køn fra medlemmets tabel. For at opnå dette kan du oprette en VISNING –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Trin 2) Udvidelse af visningsknuden
Udførelse af ovenstående script i MySQL workbench mod myflixdb og udvidelse af visningsknuden i databasestifinderen giver os følgende resultater.
Bemærk, at accounts_v_members-objektet nu er synligt i databasevisningsobjekterne.
Trin 3) Udfør en SELECT-sætning
Lad os nu udføre en SELECT erklæring der vælger alle felterne fra visningen som vist i nedenstående MySQL skabe visningseksempel.
SELECT * FROM `accounts_v_members`;
Trin 4) Udfør et script
Udførelse af ovenstående script i MySQL workbench mod myflixdb giver os følgende resultater vist nedenfor.
| 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 |
Kun de autoriserede kolonner for regnskabsafdelingen er blevet returneret. Andre oplysninger, der blev fundet i medlemstabellen, er blevet skjult.
Hvis vi ønsker at se de SQL-sætninger, der udgør en bestemt visning, kan vi bruge scriptet vist nedenfor til at gøre det.
SHOW CREATE VIEW `accounts_v_members`;
Udførelse af ovenstående script giver dig visningsnavnet og SQL SELECT-sætningerne, der bruges til at oprette visningen.
Deltager og ser ind MySQL
En enkelt tabelvisning er det enkleste tilfælde. Visninger bliver langt mere værdifulde, når de omslutter en forespørgsel med flere tabeller.
Lad os nu se på et ret komplekst eksempel, som involverer flere tabeller og anvendelser slutter.
Vi vil pakke den oprettede JOIN, der får information fra tre (3) borde, nemlig medlemmer, film og lejefilm. Nedenfor er scriptet, der hjælper os med at opnå 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`;
Ved at udføre ovenstående scripts oprettes visningen med navnet general_v_movie_rentals i vores myflixdb
Lad os nu vælge alle felterne fra en tabel med navnet general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Udførelse af ovenstående script i MySQL arbejdsbord mod myflixdb giver os følgende resultater vist nedenfor.
| 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 |
Bemærk, at vi ikke behøvede at skrive den komplekse JOIN-forespørgsel for at få oplysninger om medlemmer, film og oplysninger om filmleje. Vi brugte simpelthen visningen i en almindelig SELECT-sætning som enhver anden almindelig tabel. Visningen kan kaldes fra hvor som helst i applikationssystemet, der kører oven på myflixdb.
Dropping Visninger i MySQL
DROP-kommandoen kan bruges til at slette en visning fra database det er ikke længere nødvendigt. Den grundlæggende syntaks for at droppe en visning er som følger.
DROP VIEW `general_v_movie_rentals`;
Dropping En visning fjerner kun den gemte forespørgsel; de underliggende tabeller og deres data forbliver uberørte.


