MySQL Näkymät: Näkymän luominen esimerkkejä sisältävistä taulukoista

Mitä näkymät sisältävät MySQL?

nÄKYMÄT ovat virtuaalisia taulukoita, jotka eivät tallenna omia tietojaan, vaan näyttävät muihin taulukoihin tallennettuja tietoja. Toisin sanoen NÄKYMÄT eivät ole muuta kuin SQL-kyselyitä. Näkymä voi sisältää kaikki tai muutaman rivin taulukosta. A MySQL näkymä voi näyttää tiedot yhdestä taulukosta tai useista taulukoista.

MySQL Näkymien syntaksi

Katsotaan nyt perussyntaksia, jota käytetään näkymän luomiseen MySQL.

CREATE VIEW `view_name` AS SELECT statement;

MISTÄ

  • "LUO NÄKYMÄ `view_name"" kertoo MySQL palvelin luo näkymäobjektin tietokantaan nimeltä "view_name".
  • "AS SELECT -lause" on SQL-käskyt, jotka pakataan MySQL Näkymät. Se voi olla SELECT-käsky, joka voi sisältää tietoja yhdestä taulukosta tai useista taulukoista.

Näkymien luominen sisään MySQL

Seuraavassa on vaiheittainen prosessi näkymän luomiseksi MySQL:

Vaihe 1) Luo ensimmäinen näkymä käyttämällä "myflixdb"

Luodaan nyt ensimmäinen näkymä käyttämällä "myflixdb":tä. Luomme yksinkertaisen näkymän, joka rajoittaa jäsentaulukossa näkyviä sarakkeita.

Oletetaan, että valtuutusvaatimusten mukaan tiliosasto voi nähdä vain jäsenen numeron , nimen ja sukupuolen 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`;

Vaihe 2) Näkymien solmun laajentaminen

Suoritetaan yllä oleva komentosarja MySQL työpenkki myflixdb:tä vastaan ​​ja näkymäsolmun laajentaminen tietokannan hallinnassa antaa meille seuraavat tulokset.

Luo näkymiä sisään MySQL

Huomaa, että accounts_v_members-objekti näkyy nyt tietokantanäkymäobjekteissa.

Vaihe 3) Suorita SELECT-käsky

Suoritetaan nyt a SELECT-lause joka valitsee kaikki kentät näkymästä alla olevan kuvan mukaisesti MySQL luo näkymäesimerkki.

SELECT * FROM `accounts_v_members`;

Vaihe 4) Suorita komentosarja

Suoritetaan yllä oleva komentosarja MySQL workbench vastaan ​​myflixdb antaa meille seuraavat alla näkyvät 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 tiedot on piilotettu.

Jos haluamme nähdä tietyn näkymän muodostavat SQL-lauseet, voimme käyttää alla olevaa komentosarjaa tehdäksesi sen.

SHOW CREATE VIEW `accounts_v_members`;

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

Liittyy ja katselee MySQL

Katsotaanpa nyt melko monimutkaista esimerkkiä, joka sisältää useita taulukoita ja käyttötarkoituksia liittyy.

Pakkaamme luodun JOINin, joka saa tiedot kolmesta (3) taulukosta eli jäsenistä, elokuvista ja elokuvavuokrauksista. 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 näkymän nimeltä general_v_movie_rentals myflixdb:ssä

Valitaan nyt kaikki kentät taulukosta nimeltä general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Suoritetaan yllä oleva komentosarja MySQL työpöytä myflixdb:tä vastaan ​​antaa meille seuraavat alla näkyvät 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 tietoa jäsenistä, elokuvista ja elokuvien vuokrauksesta. Käytimme näkymää tavallisessa SELECT-käskyssä kuten missä tahansa muussa tavallisessa taulukossa. Näkymää voidaan kutsua mistä tahansa myflixdb:n päällä olevasta sovellusjärjestelmästä.

Näkymien pudottaminen MySQL

DROP-komentoa voidaan käyttää näkymän poistamiseen tietokanta jota ei enää tarvita. Perussyntaksi näkymän pudottamiseksi on seuraava.

DROP VIEW ` general_v_movie_rentals `;

Miksi käyttää näkymiä?

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

  • Lopulta käytät omaasi SQL tietoa , luoda sovelluksia , jotka käyttävät tietokantaa tietovaatimuksiin. Suosittelemme, että käytät sovelluksessasi alkuperäisen taulukkorakenteen NÄKYMÄT itse taulukoiden sijaan. Tämä varmistaa, että kun muokkaat tietokantaa uudelleen, vanha koodisi näkee alkuperäisen skeeman näkymän kautta rikkomatta sovellusta.
  • NÄKYMÄT lisäävät uudelleenkäytettävyyttä. Sinun ei tarvitse luoda monimutkaisia ​​kyselyitä, jotka sisältävät liitoksia toistuvasti. Kaikki monimutkaisuus muunnetaan yhdeksi riviksi kyselyn VIEWS. Tällainen tiivistetty koodi on helpompi integroida sovellukseesi. Tämä eliminoi kirjoitusvirheiden mahdollisuuden ja koodisi on luettavampaa.
  • 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 virtuaalisia pöytiä; ne eivät sisällä palautettuja tietoja. Tiedot tallennetaan taulukoihin, joihin viitataan SELECT-käskyssä.
  • Näkymät parantavat tietokannan turvallisuutta näyttämällä vain tarkoitettuja tietoja valtuutetuille käyttäjille. Ne piilottavat arkaluontoiset tiedot.
  • Näkymät tekevät elämästä helppoa, koska sinun ei tarvitse kirjoittaa monimutkaisia ​​kyselyitä kerta toisensa jälkeen.
  • VIEW-tilassa on mahdollista käyttää INSERT-, UPDATE- ja DELETE-toimintoja. Nämä toiminnot muuttavat NÄKYMÄN taustalla olevia taulukoita. Ainoa huomio on, että VIEW:n tulee sisältää kaikki NOT NULL -sarakkeet niissä taulukoissa, joihin se viittaa. Ihannetapauksessa sinun ei pitäisi käyttää VIEWS-palvelua päivittämiseen.