Hvad er synspunkter i MySQL?
VIEWS er virtuelle tabeller, der ikke gemmer nogen egne data, men viser data, der er gemt i andre tabeller. Med andre ord er VIEWS intet andet end SQL-forespørgsler. En visning kan indeholde alle eller et par rækker fra en tabel. En MySQL-visning kan vise data fra en eller flere tabeller.
MySQL Views syntaks
Lad os nu se på den basale 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-serveren at oprette et visningsobjekt i databasen med navnet` view_name`
- "AS SELECT-sætning" er de SQL-sætninger, der skal pakkes i MySQL Views. Det kan være en SELECT-sætning, der kan indeholde data fra en tabel eller flere tabeller.
Sådan oprettes visninger i MySQL
Følgende er en trinvis proces for at skabe visning i MySQL:
Lad os nu oprette vores første visning ved hjælp af "myflixdb", vi opretter en simpel visning, der begrænser kolonnerne set i medlemstabellen.
Antag, at autorisationskrav angiver, at kontoafdelingen 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`;
Udførelse af ovenstående script i MySQL-arbejdsbænk mod myflixdb og udvidelse af synsnoden i databaseudforskeren giver os følgende resultater.
Bemærk, at accounts_v_members-objektet nu er synligt i databasevisningsobjekterne. Lad os nu udføre en SELECT-sætning, der vælger alle felterne fra visningen som vist i nedenstående MySQL create view-eksempel.
SELECT * FROM `accounts_v_members`;
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 kontouddeling er returneret. Andre detaljer, der findes i medlemstabellen, er skjult.
Hvis vi vil se de SQL-udsagn, der udgør en bestemt visning, kan vi bruge scriptet vist nedenfor til at gøre det.
VIS Opret visning 'accounts_v_members';
Udførelse af ovenstående script giver dig visningsnavnet og de SQL SELECT-udsagn, der bruges til at oprette visningen.
Sammenslutninger og synspunkter i MySQL
Lad os nu se på et ret komplekst eksempel, der involverer flere tabeller og bruger sammenføjninger.
Vi pakker den oprettede JOIN, der får information fra tre (3) tabeller, nemlig medlemmer, film og filmudlejning. 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`;
Udførelse af ovenstående scripts skaber den visning, der hedder general_v_movie_rentals i vores myflixdb
Lad os nu vælge alle felterne fra en tabel, der hedder general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Udførelse af ovenstående script i MySQL workbench 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 filmudlejningsoplysninger. Vi brugte simpelthen udsigten 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.
Slippe visninger i MySQL
DROP-kommandoen kan bruges til at slette en visning fra databasen, der ikke længere er påkrævet. Den grundlæggende syntaks for at slippe en visning er som følger.
DROP VIEW ` general_v_movie_rentals `;
Hvorfor bruge visninger?
Det kan være en god idé at bruge visninger primært af følgende 3 grunde
- I sidste ende vil du bruge din SQL-viden til at oprette applikationer, som bruger en database til datakrav. Det anbefales, at du bruger VISNINGER af den oprindelige tabelstruktur i din applikation i stedet for at bruge selve tabellerne. Dette sikrer, at når du omlægger din DB, vil din ældre kode se det orignale skema via visningen uden at bryde applikationen.
- VISNINGER øger genanvendelighed. Du behøver ikke oprette komplekse forespørgsler, der involverer sammenføjninger gentagne gange. Al kompleksiteten konverteres til en enkelt forespørgsel ved hjælp af VIEWS. Sådan kondenseret kode bliver lettere at integrere i din applikation. Dette eliminerer chancerne for skrivefejl, 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 brugerne og skjule følsomme data som kreditkortnumre.
Resumé
- Visninger er virtuelle tabeller; de indeholder ikke de data, der returneres. Dataene gemmes i de tabeller, der henvises til i SELECT-sætningen.
- Visninger forbedrer databasens sikkerhed ved kun at vise tilsigtede data til autoriserede brugere. De skjuler følsomme data.
- Visninger gør livet let, da du ikke har skrive komplekse forespørgsler igen og igen.
- Det er muligt at bruge INSERT, UPDATE og SLET på en VISNING. Disse operationer vil ændre de underliggende tabeller i VIEW. Den eneste overvejelse er, at VIEW skal indeholde alle IKKE NULL-kolonner i de tabeller, den henviser til. Ideelt set bør du ikke bruge VIEWS til opdatering.