MySQL-näkymät: Kuinka luoda näkymä taulukoista esimerkkien avulla

Sisällysluettelo:

Anonim

Mitä näkymiä MySQL: ssä on?

VIEWS ovat virtuaalitaulukoita, jotka eivät tallenna mitään omaa dataa, mutta näyttävät muihin taulukoihin tallennetut tiedot. Toisin sanoen VIEWS eivät ole muuta kuin SQL-kyselyt. Näkymä voi sisältää kaikki tai muutaman taulukon rivit. MySQL-näkymä voi näyttää tietoja yhdestä tai monesta taulukosta.

MySQL näkee syntaksin

Tarkastellaan nyt perussyntaksia, jota käytetään näkymän luomiseen MySQL: ssä.

CREATE VIEW `view_name` AS SELECT statement;

MISSÄ

  • "CREATE VIEW" näkymän_nimi " käskee MySQL-palvelimen luomaan näkymäobjektin tietokantaan nimeltä" näkymän_nimi "
  • "AS SELECT -lauseke" on SQL-käskyt, jotka pakataan MySQL-näkymiin. Se voi olla SELECT-käsky, joka voi sisältää tietoja yhdestä tai useammasta taulukosta.

Näkymien luominen MySQL: ssä

Seuraava on vaiheittainen prosessi, jolla luodaan näkymä MySQL: ssä:

Luodaan nyt ensimmäinen näkymä käyttämällä "myflixdb" -sovellusta. Luomme yksinkertaisen näkymän, joka rajoittaa jäsentaulukon sarakkeita.

Oletetaan, että valtuutusvaatimusten mukaan tiliosasto voi nähdä jäsenen numeron, nimen ja sukupuolen vain jäsenen taulukosta. Tämän saavuttamiseksi voit luoda NÄKYMÄN -

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

Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä myflixdb: tä vastaan ​​ja näkymäsolmun laajentaminen tietokanta-Explorerissa antaa meille seuraavat tulokset.

Huomaa, että accounts_v_members-objekti on nyt näkyvissä tietokannanäkymien objekteissa. Suoritetaan nyt SELECT-käsky, joka valitsee kaikki kentät näkymästä alla olevan MySQL create view -esimerkin mukaisesti.

SELECT * FROM `accounts_v_members`;

Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä myflixdb: tä vastaan ​​antaa meille seuraavat tulokset.

 
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

Vain tiliosaston valtuutetut sarakkeet on palautettu. Muut jäsentaulukosta löytyvät yksityiskohdat on piilotettu.

Jos haluamme nähdä SQL-käskyt, jotka muodostavat tietyn näkymän, voimme tehdä sen alla olevan komentosarjan avulla.

NÄYTÄ LUO NÄKÖ `tilit_v_jäsenet ';

Yllä olevan komentosarjan suorittaminen antaa sinulle näkymän nimen ja SQL SELECT -käskyt, joita käytetään näkymän luomiseen.

Liittyy ja tarkastelee MySQL: ää

Tarkastellaan nyt melko monimutkaista esimerkkiä, joka sisältää useita taulukoita ja käyttää liitoksia.

Pakkaamme luodun JOINin, joka saa tietoja kolmesta (3) taulukosta, nimittäin jäsenistä, elokuvista ja elokuvavuokraamoista. Alla on käsikirjoitus, joka auttaa meitä saavuttamaan sen.

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`;

Yllä olevien komentosarjojen suorittaminen luo myflixdb-näkymämme nimeltä General_v_movie_rentals.

Valitaan nyt kaikki kentät taulukosta nimeltä General_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä myflixdb: tä vastaan ​​antaa meille seuraavat tulokset.

 
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

Huomaa, että meidän ei tarvinnut kirjoittaa monimutkaista JOIN-kyselyä saadaksemme tietoja jäsenistä, elokuvista ja elokuvien vuokraustiedoista. Käytimme yksinkertaisesti näkymää tavallisessa SELECT-käskyssä kuin mitä tahansa muuta tavallista taulukkoa. Näkymää voidaan kutsua mistä tahansa sovellusjärjestelmästä, joka toimii myflixdb: n päällä.

Näkymien pudottaminen MySQL: ssä

DROP-komennolla voidaan poistaa näkymä tietokannasta, jota ei enää tarvita. Näkymän pudottamisen perussyntaksi on seuraava.

DROP VIEW ` general_v_movie_rentals `;

Miksi käyttää näkymiä?

Voit käyttää näkymiä ensisijaisesti kolmesta syystä

  • Viime kädessä käytät SQL-tietosi luomaan sovelluksia, jotka käyttävät tietokantaa tietovaatimuksiin. On suositeltavaa, että käytät sovelluksessa NÄKYMÄT alkuperäisestä taulukkorakenteesta itse taulukkojen sijaan. Tämä varmistaa, että kun muokkaat DB: täsi, vanha koodisi näkee orignal-skeeman näkymän kautta rikkomatta sovellusta.
  • NÄKÖKOHDAT lisäävät uudelleenkäytettävyyttä. Sinun ei tarvitse luoda monimutkaisia ​​kyselyjä, joihin liittyy toistuvia liittymisiä. Kaikki monimutkaisuus muunnetaan yhdeksi kyselyriviksi VIEWS. Tällainen tiivistetty koodi on helpompi integroida sovellukseesi. Tämä eliminoi kirjoitusvirheet ja koodisi on helpommin luettavissa.
  • VIEWS auttaa tietoturvassa. Näkymien avulla voit näyttää käyttäjille vain valtuutetut tiedot ja piilottaa arkaluontoiset tiedot, kuten luottokorttinumerot.

Yhteenveto

  • Näkymät ovat virtuaalitaulukoita; ne eivät sisällä palautettavia tietoja. Tiedot tallennetaan taulukoihin, joihin SELECT-käsky viittaa.
  • Näkymät parantavat tietokannan turvallisuutta näyttämällä vain tarkoitetut tiedot valtuutetuille käyttäjille. Ne piilottavat arkaluontoiset tiedot.
  • Näkymät tekevät elämästä helppoa, koska sinulla ei ole kirjoittaa monimutkaisia ​​kyselyitä kerta toisensa jälkeen.
  • Näkymässä on mahdollista käyttää INSERT, UPDATE ja DELETE. Nämä toiminnot muuttavat VIEW: n taustalla olevia taulukoita. Ainoa huomio on, että VIEW: n tulisi sisältää kaikki viittaamiensa taulukoiden kaikki EI NULL-sarakkeet. Ihannetapauksessa sinun ei pitäisi käyttää VIEWS-päivitystä.