Hva er synspunkter i MySQL?
VIEWS er virtuelle tabeller som ikke lagrer egne data, men viser data som er lagret i andre tabeller. Med andre ord er VIEWS bare SQL-spørringer. En visning kan inneholde alle eller noen rader fra en tabell. En MySQL-visning kan vise data fra en eller flere tabeller.
MySQL Views syntaks
La oss nå se på den grunnleggende syntaksen som brukes til å lage en visning i MySQL.
CREATE VIEW `view_name` AS SELECT statement;
HVOR
- "CREATE VIEW` view_name` " forteller MySQL-serveren å opprette et visningsobjekt i databasen som heter` view_name`
- "AS SELECT-setning" er SQL-setningene som skal pakkes inn i MySQL Views. Det kan være en SELECT-setning som kan inneholde data fra en tabell eller flere tabeller.
Hvordan lage visninger i MySQL
Følgende er en trinnvis prosess for å lage visning i MySQL:
La oss nå lage vår første visning ved hjelp av "myflixdb", og vi vil lage en enkel visning som begrenser kolonnene sett i medlemstabellen.
Anta at autorisasjonskrav sier at regnskapsavdelingen bare kan se medlemmets nummer, navn og kjønn fra medlemmets tabell. For å oppnå dette kan du lage en VISNING -
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Å utføre ovennevnte skript i MySQL-arbeidsbenk mot myflixdb og utvide synsnoden i databaseutforskeren gir oss følgende resultater.
Merk at accounts_v_members-objektet nå er synlig i databasevisningsobjektene. La oss nå utføre en SELECT-setning som velger alle feltene fra visningen som vist under MySQL create view-eksemplet nedenfor.
SELECT * FROM `accounts_v_members`;
Å utføre ovennevnte skript i MySQL arbeidsbenk mot myflixdb gir oss 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 |
Bare de autoriserte kolonnene for regnskapsavdelingen er returnert. Andre detaljer funnet i medlemstabellen er skjult.
Hvis vi vil se SQL-setningene som utgjør en bestemt visning, kan vi bruke skriptet vist nedenfor for å gjøre det.
VIS OPPRETT `accounts_v_members`;
Å utføre skriptet ovenfor gir deg visningsnavnet og SQL SELECT-setningene som ble brukt til å lage visningen.
Bli med og visninger i MySQL
La oss nå se på et ganske komplekst eksempel som involverer flere tabeller og bruker sammenføyninger.
Vi vil pakke JOIN opprettet som får informasjon fra tre (3) tabeller, nemlig medlemmer, filmer og filmutleie. Nedenfor er skriptet som hjelper oss med å oppnå 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`;
Å utføre de ovennevnte skriptene skaper visningen som heter general_v_movie_rentals i myflixdb
La oss nå velge alle feltene fra en tabell som heter general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Å utføre skriptet ovenfor i MySQL arbeidsbenk mot myflixdb gir oss 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 |
Merk at vi ikke trengte å skrive den komplekse JOIN-spørringen for å få informasjon om medlemmer, filmer og filmutleieinformasjon. Vi brukte bare utsikten i en vanlig SELECT-uttalelse som alle andre vanlige tabeller. Visningen kan ringes fra hvor som helst i applikasjonssystemet som kjører på toppen av myflixdb.
Slippe visninger i MySQL
DROP-kommandoen kan brukes til å slette en visning fra databasen som ikke lenger er nødvendig. Den grunnleggende syntaksen for å slippe en visning er som følger.
DROP VIEW ` general_v_movie_rentals `;
Hvorfor bruke visninger?
Det kan være lurt å bruke visninger først og fremst av følgende tre grunner
- Til slutt vil du bruke SQL-kunnskapen din til å lage applikasjoner, som vil bruke en database for datakrav. Det anbefales at du bruker VISNINGER av den opprinnelige tabellstrukturen i applikasjonen din i stedet for å bruke selve tabellene. Dette sikrer at når du omformulerer DB-en din, vil den eldre koden din se det orignale skjemaet via visningen uten å bryte applikasjonen.
- VISNINGER øker gjenbrukbarheten. Du trenger ikke å lage komplekse spørsmål som involverer joins gjentatte ganger. All kompleksiteten blir konvertert til en enkelt linje med spørrebruk VIEWS. Slike kondenserte koder vil være lettere å integrere i applikasjonen din. Dette eliminerer sjansene for skrivefeil, og koden din blir mer lesbar.
- VIEWS hjelper til med datasikkerhet. Du kan bruke visninger for å bare vise autorisert informasjon til brukere og skjule sensitive data som kredittkortnumre.
Sammendrag
- Visninger er virtuelle tabeller; de inneholder ikke dataene som returneres. Dataene lagres i tabellene det er referert til i SELECT-setningen.
- Visninger forbedrer databasesikkerheten ved å vise bare tiltenkte data til autoriserte brukere. De skjuler sensitive data.
- Visninger gjør livet enkelt, ettersom du ikke har skrive komplekse spørsmål gang på gang.
- Det er mulig å bruke INSERT, UPDATE og DELETE på en VISNING. Disse operasjonene vil endre de underliggende tabellene i VIEW. Det eneste hensynet er at VIEW skal inneholde alle IKKE NULLE kolonnene i tabellene den refererer til. Ideelt sett bør du ikke bruke VIEWS til oppdatering.