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.
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.