MySQL Näkymät: Näkymän luominen taulukoista
⚡ Älykäs yhteenveto
MySQL Näkymät ovat virtuaalisia taulukoita, jotka eivät tallenna omaa dataa, vaan esittävät tallennetun SELECT-kyselyn tuloksen. Tässä resurssissa selitetään, miten näkymiä luodaan, kysellään, yhdistetään ja poistetaan, ja siinä annetaan ajettavia esimerkkejä myflixdb-tietokannasta.

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.
Miksi käyttää näkymiä?
Ennen sellaisen rakentamista on hyödyllistä tietää, mitä näköala todellisuudessa maksaa.
Voit halutessasi käyttää näkymiä ensisijaisesti seuraavista kolmesta syystä
- Lopulta käytät omaa SQL tietoa sovellusten luomiseen, jotka käyttävät tietokantaa tietovaatimuksia varten. On suositeltavaa käyttää sovelluksessasi alkuperäisen taulukkorakenteen NÄKYMIÄ itse taulukoiden sijaan. Tämä varmistaa, että kun refaktoroit tietokannan, 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.
Näkymien luominen sisään MySQL
Kun syntaksi ja hyödyt on selvitetty, alla olevat vaiheet rakentavat toimivan näkymän alusta loppuun.
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ä käyttöoikeusvaatimukset määräävät, että kirjanpito-osasto voi nähdä jäsenen taulukosta vain jäsenen numeron, nimen ja sukupuolen. 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 kirjanpito-osaston valtuutetut sarakkeet on palautettu. Muut jäsentaulukon 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
Yhden taulukon näkymä on yksinkertaisin tapaus. Näkymistä tulee paljon arvokkaampia, kun ne kätkevät sisäänsä monitaulukkokyselyn.
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ä.
Pudotaping Näkymät sisään 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`;
Pudotaping Näkymä poistaa vain tallennetun kyselyn; pohjana olevat taulukot ja niiden tiedot pysyvät koskemattomina.

