MySQL Visninger: Slik lager du en visning fra tabeller

⚡ Smart oppsummering

MySQL Visninger er virtuelle tabeller som ikke lagrer egne data, men i stedet presenterer resultatet av en lagret SELECT-spørring. Denne ressursen forklarer hvordan du oppretter, spør, kobler til og sletter visninger, med kjørbare eksempler fra myflixdb-databasen.

  • 🧱 Kjernedefinisjon: En visning er en navngitt SELECT-setning som oppfører seg som en tabell, men som ikke inneholder data.
  • 🔐 Sikkerhetsfordel: Visninger eksponerer bare de autoriserte kolonnene og holder sensitive felt skjult for brukere.
  • ♻️ Fordeler med gjenbruk: En kompleks JOIN med flere tabeller skrives én gang og brukes på nytt som en SELECT-kode på én linje.
  • 🛠️ Opprettelsessyntaks: CREATE VIEW `view_name` AS SELECT-setningen definerer visningen i databasen.
  • 🗑️ Livssykluskommandoer: VIS OPPRETT VIEW avslører den lagrede spørringen, og SLAPP VIEW sletter den uten å berøre basistabellene.

MySQL Visninger

Hva er visninger i MySQL?

uTSIKT er virtuelle tabeller som ikke lagrer egne data, men viser data lagret i andre tabeller. Med andre ord, VIEWS er ​​ingenting annet enn SQL-spørringer. En visning kan inneholde alle eller noen få rader fra en tabell. EN MySQL visning kan vise data fra én tabell eller mange tabeller.

MySQL Syntaks for visninger

La oss nå se på den grunnleggende syntaksen som brukes til å lage en visning i MySQL.

CREATE VIEW `view_name` AS SELECT statement;

HVOR

  • "LAG VISNING `view_name`" forteller MySQL server for å lage et visningsobjekt i databasen kalt "visningsnavn".
  • "AS SELECT-setning" er SQL-setningene som skal pakkes i MySQL Visninger. Det kan være en SELECT-setning som kan inneholde data fra én tabell eller flere tabeller.

Hvorfor bruke visninger?

Før du bygger en, hjelper det å vite hva en visning faktisk gir deg.

Det kan være lurt å bruke visninger primært av følgende tre grunner

  • Til syvende og sist vil du bruke din SQL kunnskap, for å lage applikasjoner, som bruker en database for datakrav. Det anbefales at du bruker VIEWS av den opprinnelige tabellstrukturen i applikasjonen din i stedet for å bruke selve tabellene. Dette sikrer at når du refaktorerer databasen din, vil den eldre koden din se det opprinnelige skjemaet via viewet uten å ødelegge applikasjonen.
  • VISNINGER øker gjenbrukbarheten. Du trenger ikke lage komplekse søk som involverer sammenføyninger gjentatte ganger. All kompleksiteten er konvertert til en enkelt linje med spørring, bruk VIEWS. Slik kondensert kode vil være lettere å integrere i applikasjonen din. Dette vil eliminere sjansene for skrivefeil og koden din vil være mer lesbar.
  • VISNINGER hjelper med datasikkerhet. Du kan bruke visninger til å vise kun autorisert informasjon til brukere og skjule sensitive data som kredittkortnumre.

Hvordan lage visninger i MySQL

Med syntaksen og fordelene etablert, bygger trinnene nedenfor en arbeidsvisning fra ende til ende.

Følgende er en trinnvis prosess for å opprette visning i MySQL:

Trinn 1) Lag vår første visning ved å bruke "myflixdb"

La oss nå lage vår første visning ved å bruke "myflixdb", vi vil lage en enkel visning som begrenser kolonnene som vises i medlemstabellen.

Anta at autorisasjonskravene sier at regnskapsavdelingen bare kan se medlemsnummer, navn og kjønn fra medlemstabellen. For å oppnå dette kan du opprette en VISNING –

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

Trinn 2) Utvider visningsnoden

Utfører skriptet ovenfor i MySQL arbeidsbenk mot myflixdb og utvidelse av visningsnoden i databaseutforskeren gir oss følgende resultater.

Opprett visninger i MySQL

Merk at accounts_v_members-objektet nå er synlig i databasevisningsobjektene.

Trinn 3) Utfør en SELECT-setning

La oss nå utføre en SELECT-setning som velger alle feltene fra visningen som vist nedenfor MySQL lage visningseksempel.

SELECT * FROM `accounts_v_members`;

Trinn 4) Utfør et skript

Utfører skriptet ovenfor i MySQL workbench 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 som ble funnet i medlemstabellen er skjult.

Hvis vi ønsker å se SQL-setningene som utgjør en bestemt visning, kan vi bruke skriptet vist nedenfor for å gjøre det.

SHOW CREATE VIEW `accounts_v_members`;

Utførelse av skriptet ovenfor gir deg visningsnavnet og SQL SELECT-setningene som brukes til å opprette visningen.

Blir med og ser inn MySQL

En enkelttabellvisning er det enkleste tilfellet. Visninger blir mye mer verdifulle når de pakker inn en spørring med flere tabeller.

La oss nå se på et ganske komplekst eksempel som involverer flere tabeller og bruksområder tiltrer.

Vi vil pakke JOIN opprettet som får informasjon fra tre (3) tabeller, nemlig medlemmer, filmer og filmutleie. Nedenfor er manuset som hjelper oss å 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`;

Ved å kjøre skriptene ovenfor opprettes 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ører 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 BLI MED-forespørselen for å få informasjon om medlemmer, filmer og detaljer om leie av filmer. Vi brukte ganske enkelt visningen i en vanlig SELECT-setning som en hvilken som helst annen vanlig tabell. Visningen kan kalles opp fra hvor som helst i applikasjonssystemet som kjører på toppen av myflixdb.

Dropping Visninger i MySQL

DROP-kommandoen kan brukes til å slette en visning fra database som ikke lenger er nødvendig. Den grunnleggende syntaksen for å slippe en visning er som følger.

DROP VIEW `general_v_movie_rentals`;

Dropping En visning fjerner bare den lagrede spørringen; de underliggende tabellene og dataene deres forblir urørt.

Spørsmål og svar

Noen ganger fungerer INSERT, UPDATE og DELETE bare på enkle visninger som inneholder alle NOT NULL-kolonner i basistabellen. Visninger som er bygget på koblinger eller aggregerte funksjoner kan ikke oppdateres.

En tabell lagrer fysisk rader på disken. En visning lagrer bare en SELECT-setning og gjenoppbygger radene i hver spørring, slik at den alltid gjenspeiler gjeldende data i basistabellene.

Nei. En visning kjører sin underliggende SELECT på hvert kall, slik at ytelsen samsvarer med den opprinnelige spørringen. MySQL har ingen materialiserte visninger, og hastigheten avhenger fortsatt av basistabellindeksene.

Ja. AI-assistenter i verktøy som MySQL Workbench kan utarbeide en CREATE VIEW-setning fra en beskrivelse. Bekreft kolonnelisten og koblingsnøklene før du kjører den.

Delvis. AI kan flagge sensitive kolonner, som kortnumre, og foreslå en tryggere kolonneliste. Den endelige avgjørelsen må fortsatt følge organisasjonens retningslinjer for datatilgang.

Oppsummer dette innlegget med: