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.

  • 🧱 Ydinmääritelmä: Näkymä on nimetty SELECT-lauseke, joka toimii kuten taulukko, mutta ei sisällä tietoja.
  • 🔐 Turvallisuusetu: Näkymät näyttävät vain valtuutetut sarakkeet ja pitävät arkaluontoiset kentät piilossa käyttäjiltä.
  • ♻️ Uudelleenkäytettävyyden etu: Monimutkainen usean taulukon JOIN kirjoitetaan kerran ja sitä käytetään uudelleen yksirivisenä SELECT-käskynä.
  • 🛠️ Luomissyntaksi: CREATE VIEW `view_name` AS SELECT -lauseke määrittää näkymän tietokannassa.
  • 🗑️ Elinkaarikomennot: SHOW CREATE VIEW näyttää tallennetun kyselyn ja DROP VIEW poistaa sen koskematta perustaulukoihin.

MySQL Näyttökerrat

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.

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

UKK

Joskus INSERT, UPDATE ja DELETE toimivat vain yksinkertaisissa näkymissä, jotka sisältävät jokaisen perustaulukon NOT NULL -sarakkeen. Liitosten tai koostefunktioiden avulla rakennettuja näkymiä ei voi päivittää.

Taulukko tallentaa fyysisesti rivejä levylle. Näkymä tallentaa vain SELECT-lausekkeen ja rakentaa rivinsä uudelleen jokaisen kyselyn yhteydessä, joten se heijastaa aina perustaulukoiden ajantasaisia ​​tietoja.

Ei. Näkymä suorittaa pohjana olevan SELECT-kyselyn jokaisella kutsulla, joten suorituskyky vastaa alkuperäistä kyselyä. MySQL ei ole materialisoituja näkymiä, ja nopeus riippuu edelleen perustaulukon indekseistä.

Kyllä. Tekoälyavustajat työkaluissa, kuten MySQL Työpöytä voi luonnostella CREATE VIEW -lausekkeen kuvauksesta. Tarkista sarakeluettelo ja liitosavaimet ennen sen suorittamista.

Osittain. Tekoäly voi merkitä arkaluontoisia sarakkeita, kuten korttinumeroita, ja ehdottaa turvallisempaa sarakeluetteloa. Lopullisen päätöksen on silti noudatettava organisaatiosi tietojen käyttöoikeuskäytäntöä.

Tiivistä tämä viesti seuraavasti: