MySQL skati: kā izveidot skatu no tabulām ar piemēriem

Satura rādītājs:

Anonim

Kādi ir skati MySQL?

VIEWS ir virtuālas tabulas, kurās netiek glabāti atsevišķi dati, bet tiek parādīti citās tabulās glabātie dati. Citiem vārdiem sakot, VIEWS nav nekas cits kā SQL vaicājumi. Skats var ietvert visas vai dažas tabulas rindas. MySQL skatā var parādīt datus no vienas tabulas vai daudzām tabulām.

MySQL skata sintakse

Apskatīsim pamata sintaksi, kas izmantota skata izveidošanai MySQL.

CREATE VIEW `view_name` AS SELECT statement;

KUR

  • "CREATE VIEW" skata_nosaukums " liek MySQL serverim izveidot skata objektu datu bāzē ar nosaukumu" view_name "
  • "AS SELECT priekšraksts" ir SQL priekšraksti, kas jāiesaiņo MySQL skatos. Tas var būt SELECT priekšraksts var saturēt datus no vienas tabulas vai vairākām tabulām.

Kā izveidot skatus MySQL

Tālāk ir soli pa solim izveidots skats MySQL:

Tagad izveidosim savu pirmo skatu, izmantojot "myflixdb", mēs izveidosim vienkāršu skatu, kas ierobežo dalībnieku tabulā redzamās kolonnas.

Pieņemsim, ka autorizācijas prasības nosaka, ka kontu nodaļa no dalībnieka tabulas var redzēt tikai dalībnieka numuru, vārdu un dzimumu. Lai to panāktu, varat izveidot SKATU -

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

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb un skatu mezgla paplašināšana datu bāzes pārlūkprogrammā dod mums šādus rezultātus.

Ņemiet vērā, ka objekts accounts_v_members tagad ir redzams datu bāzes skata objektos. Tagad izpildīsim paziņojumu SELECT, kas atlasa visus laukus no skata, kā parādīts zemāk esošajā MySQL izveides skata piemērā.

SELECT * FROM `accounts_v_members`;

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb dod mums šādus rezultātus, kas parādīti zemāk.

 
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

Ir atgrieztas tikai konta nodaļas pilnvarotās kolonnas. Cita informācija, kas atrodama dalībnieku tabulā, ir paslēpta.

Ja mēs vēlamies redzēt SQL priekšrakstus, kas veido konkrētu skatu, mēs to varam izmantot zemāk parādītajā skriptā.

RĀDĪT IZVEIDOT SKATU `konti_v_members`;

Izpildot iepriekš minēto skriptu, tiek iegūts skata nosaukums un SQL SELECT priekšraksti, kas izmantoti skata izveidošanai.

Pievienojas un skata MySQL

Apskatīsim diezgan sarežģītu piemēru, kas ietver vairākas tabulas un izmanto pievienojumus.

Mēs iesaiņosim izveidoto JOIN, kas saņem informāciju no trim (3) tabulām, proti, dalībniekiem, filmām un filmu nomām. Zemāk ir skripts, kas mums palīdz to sasniegt.

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

Veicot iepriekš minētos skriptus, mūsu myflixdb tiek izveidots skats ar nosaukumu general_v_movie_rentals.

Tagad atlasīsim visus laukus no tabulas ar nosaukumu general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb dod mums šādus rezultātus, kas parādīti zemāk.

 
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

Ņemiet vērā, ka mums nebija jāraksta sarežģīts JOIN vaicājums, lai iegūtu informāciju par dalībniekiem, filmām un filmu nomas informāciju. Mēs vienkārši izmantojām skatu parastā SELECT paziņojumā kā jebkuru citu parasto tabulu. Skatu var izsaukt no jebkuras vietas lietojumprogrammu sistēmā, kas darbojas virs myflixdb.

Skatījumu nomešana MySQL

DROP komandu var izmantot, lai izdzēstu skatu no datu bāzes, kas vairs nav vajadzīgs. Skata nomešanas pamatsintakse ir šāda.

DROP VIEW ` general_v_movie_rentals `;

Kāpēc izmantot skatus?

Skatus galvenokārt varētu vēlēties izmantot trīs iemeslu dēļ

  • Galu galā jūs izmantosiet savas SQL zināšanas, lai izveidotu lietojumprogrammas, kuras datu vajadzībām izmantos datu bāzi. Lietojumprogrammā ieteicams izmantot VIEWS sākotnējās tabulas struktūras, nevis pašas tabulas. Tas nodrošina, ka, pārveidojot savu DB, jūsu mantotais kods, izmantojot skatu, redzēs orignāla shēmu, nesalaužot lietojumprogrammu.
  • SKATI palielina atkārtotu lietojamību. Jums nebūs jāizveido sarežģīti vaicājumi, kas saistīti ar atkārtotu pievienošanos. Visa sarežģītība tiek pārvērsta vienā vaicājumu rindā, izmantojot VIEWS. Šādu saīsinātu kodu būs vieglāk integrēt jūsu lietojumprogrammā. Tas novērsīs kļūdu iespējamību, un kods būs vieglāk lasāms.
  • VIEWS palīdz datu drošībā. Skatus varat izmantot, lai lietotājiem parādītu tikai autorizētu informāciju un paslēptu sensitīvus datus, piemēram, kredītkaršu numurus.

Kopsavilkums

  • Skati ir virtuālas tabulas; tajos nav atgriezto datu. Dati tiek glabāti tabulās, uz kurām atsaucas SELECT.
  • Skati uzlabo datu bāzes drošību, autorizētiem lietotājiem parādot tikai paredzētos datus. Viņi slēpj sensitīvus datus.
  • Skati atvieglo dzīvi, jo jums nav rakstīt sarežģītus jautājumus atkal un atkal.
  • SKATĀ ir iespējams izmantot INSERT, UPDATE un DELETE. Šīs darbības mainīs VIEW pamatā esošās tabulas. Vienīgais apsvērums ir tas, ka VIEW būtu jāietver visas NELLUL kolonnas tabulās, uz kurām tā atsaucas. Ideālā gadījumā atjaunināšanai nevajadzētu izmantot VIEWS.