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