MySQL Vaated: kuidas luua vaadet tabelitest

โšก Nutikas kokkuvรตte

MySQL Vaated on virtuaalsed tabelid, mis ei salvesta ise andmeid, vaid esitavad salvestatud SELECT-pรคringu tulemuse. See ressurss selgitab, kuidas vaateid luua, pรคringuid esitada, liita ja eemaldada, tuues nรคiteid myflixdb andmebaasist.

  • ๐Ÿงฑ Pรตhidefinitsioon: Vaade on nimega SELECT-lause, mis kรคitub nagu tabel, kuid ei sisalda andmeid.
  • ๐Ÿ” Turvalisuse eelis: Vaated nรคitavad ainult volitatud veerge ja hoiavad tundlikud vรคljad kasutajate eest varjatud.
  • โ™ป๏ธ Korduvkasutatavuse eelis: Kompleksne mitme tabeliga JOIN kirjutatakse รผks kord ja seda kasutatakse uuesti รผherealise SELECT-ina.
  • ๐Ÿ› ๏ธ Loomise sรผntaks: CREATE VIEW `vaate_nimi` AS SELECT-lause defineerib andmebaasis oleva vaate.
  • ๐Ÿ—‘๏ธ Elutsรผkli kรคsud: SHOW CREATE VIEW kuvab salvestatud pรคringu ja DROP VIEW kustutab selle baastabeleid puudutamata.

MySQL views

Milles on vaated MySQL?

VAADUSED on virtuaalsed tabelid, mis ei salvesta oma andmeid, vaid kuvavad teistes tabelites salvestatud andmeid. Teisisรตnu, VIEWS pole midagi muud kui SQL-pรคringud. Vaade vรตib sisaldada kรตiki vรตi mรตnda tabeli rida. A MySQL vaade vรตib nรคidata andmeid รผhest vรตi mitmest tabelist.

MySQL Vaatamiste sรผntaks

Vaatame nรผรผd pรตhisรผntaksit, mida kasutatakse vaate loomiseks MySQL.

CREATE VIEW `view_name` AS SELECT statement;

KUS

  • โ€žLOO VAADE โ€žvaate_nimiโ€ รผtleb MySQL serverisse, et luua andmebaasis vaateobjekt nimega "vaate_nimi".
  • "AS SELECT avaldus" on SQL-laused, mis tuleb pakkida MySQL Vaated. See vรตib olla SELECT-lause, mis vรตib sisaldada andmeid รผhest vรตi mitmest tabelist.

Miks kasutada vaateid?

Enne selle ehitamist on kasulik teada, mida vaade sulle tegelikult ostab.

Vaateid vรตiksite kasutada peamiselt jรคrgmistel kolmel pรตhjusel

  • Lรตppkokkuvรตttes kasutate oma SQL teadmisi, et luua rakendusi, mis kasutavad andmenรตuete jaoks andmebaasi. Soovitatav on rakenduses kasutada algse tabeli struktuuri VAATEID tabelite endi asemel. See tagab, et andmebaasi รผmberkujundamisel nรคeb pรคrandkood vaate kaudu algset skeemi ilma rakendust rikkumata.
  • VAADED suurendavad taaskasutatavust. Teil ei ole vaja luua keerulisi pรคringuid, mis hรตlmavad korduvalt liitumisi. Kogu keerukus teisendatakse VIEWS-i pรคringu รผheks reale. Sellist lรผhendatud koodi on teie rakendusse lihtsam integreerida. See vรคlistab kirjavigade vรตimaluse ja teie kood on loetavam.
  • VIEWS abi andmeturbe vallas. Saate kasutada vaateid, et kuvada kasutajatele ainult volitatud teavet ja peita tundlikke andmeid, nรคiteks krediitkaardinumbreid.

Kuidas luua vaateid MySQL

Kui sรผntaks ja eelised on kindlaks tehtud, loovad allolevad sammud otsast lรตpuni toimiva vaate.

Jรคrgnev on samm-sammult vaate loomise protsess MySQL:

Step 1) Looge meie esimene vaade "myflixdb" abil

Loome nรผรผd oma esimese vaate "myflixdb" abil, loome lihtsa vaate, mis piirab liikmete tabelis nรคhtavaid veerge.

Oletame, et autoriseerimisnรตuded sรคtestavad, et raamatupidamisosakond nรคeb liikmete tabelist ainult liikme numbrit, nime ja sugu. Selle saavutamiseks saate luua VAATE โ€“

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

Step 2) Vaadete sรตlme laiendamine

รœlaltoodud skripti kรคivitamine MySQL tรถรถlaud myflixdb vastu ja vaadete sรตlme laiendamine andmebaasiuurijas annab meile jรคrgmised tulemused.

Loo vaateid MySQL

Pange tรคhele, et objekt accounts_v_members on nรผรผd andmebaasivaadete objektides nรคhtav.

Step 3) Kรคivitage kรคsk SELECT

Teostame nรผรผd a SELECT avaldus mis valib vaatest kรตik vรคljad, nagu allpool nรคidatud MySQL luua vaate nรคide.

SELECT * FROM `accounts_v_members`;

Step 4) Kรคivitage skript

รœlaltoodud skripti kรคivitamine MySQL tรถรถlaud myflixdb vastu annab meile jรคrgmised allpool nรคidatud tulemused.

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

Tagastatud on ainult raamatupidamisosakonna autoriseeritud veerud. Muud liikmete tabelis olevad andmed on peidetud.

Kui tahame nรคha SQL-lauseid, mis moodustavad konkreetse vaate, saame selleks kasutada allpool nรคidatud skripti.

SHOW CREATE VIEW `accounts_v_members`;

รœlaltoodud skripti kรคivitamine annab teile vaate nime ja vaate loomiseks kasutatud SQL SELECT-laused.

Liitub ja vaatab sisse MySQL

รœhe tabeli vaade on kรตige lihtsam juhtum. Vaated muutuvad palju vรครคrtuslikumaks, kui need hรตlmavad mitme tabeli pรคringut.

Vaatame nรผรผd รผsna keerulist nรคidet, mis hรตlmab mitut tabelit ja kasutusala liitub.

Pakendame loodud JOIN-i, mis saab teavet kolmest (3) tabelist, nimelt liikmed, filmid ja filmilaenutused. Allpool on skript, mis aitab meil seda saavutada.

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`;

รœlaltoodud skriptide kรคivitamine loob meie myflixdb-s vaate nimega general_v_movie_rentals

Valime nรผรผd kรตik vรคljad tabelist nimega general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

รœlaltoodud skripti kรคivitamine MySQL tรถรถlaud myflixdb vastu annab meile jรคrgmised allpool nรคidatud tulemused.

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

Pange tรคhele, et liikmete, filmide ja filmide laenutamise รผksikasjade kohta teabe saamiseks ei pidanud me kirjutama keerulist JOIN-pรคringut. Me lihtsalt kasutasime vaadet tavalises SELECT-lauses nagu mis tahes muud tavalist tabelit. Vaadet saab kutsuda kรตikjalt myflixdb peal tรถรถtavas rakendussรผsteemis.

Dropping Vaated sisse MySQL

DROP-kรคsku saab kasutada vaate kustutamiseks andmebaas mida enam ei nรตuta. Vaate tรผhistamise pรตhisรผntaks on jรคrgmine.

DROP VIEW `general_v_movie_rentals`;

Dropping Vaade eemaldab ainult salvestatud pรคringu; aluseks olevad tabelid ja nende andmed jรครคvad puutumata.

KKK

Mรตnikord toimivad INSERT, UPDATE ja DELETE ainult lihtsate vaadete puhul, mis sisaldavad kรตiki baastabeli NOT NULL veerge. รœhendustel vรตi agregaatfunktsioonidel pรตhinevaid vaateid ei saa vรคrskendada.

Tabel salvestab ridu fรผรผsiliselt kettale. Vaade salvestab ainult SELECT-lause ja loob iga pรคringu korral oma read uuesti, nii et see kajastab alati baastabelites olevaid praeguseid andmeid.

Ei. Vaade kรคivitab oma aluseks oleva SELECT-i iga pรคringu korral, seega vastab jรตudlus algsele pรคringule. MySQL puuduvad materialiseeritud vaated ja kiirus sรตltub endiselt baastabeli indeksitest.

Jah. Tehisintellekti assistendid sellistes tรถรถriistades nagu MySQL Workbench saab kirjelduse pรตhjal koostada CREATE VIEW kรคsu. Enne selle kรคivitamist kontrollige veergude loendit ja liitmisvรตtmeid.

Osaliselt. Tehisintellekt saab mรคrgata tundlikke veerge, nรคiteks kaardinumbreid, ja pakkuda vรคlja turvalisema veergude loendi. Lรตplik otsus peab siiski jรคrgima teie organisatsiooni andmetele juurdepรครคsu poliitikat.

Vรตta see postitus kokku jรคrgmiselt: