MySQL Προβολές: Πώς να δημιουργήσετε προβολή από πίνακες με παραδείγματα

Σε τι περιλαμβάνονται οι Προβολές MySQL?

ΠΡΟΒΟΛΈΣ είναι εικονικοί πίνακες που δεν αποθηκεύουν δικά τους δεδομένα αλλά εμφανίζουν δεδομένα που είναι αποθηκευμένα σε άλλους πίνακες. Με άλλα λόγια, τα VIEWS δεν είναι παρά τα ερωτήματα SQL. Μια προβολή μπορεί να περιέχει όλες ή μερικές σειρές από έναν πίνακα. ΕΝΑ MySQL Η προβολή μπορεί να εμφανίζει δεδομένα από έναν πίνακα ή πολλούς πίνακες.

MySQL Σύνταξη προβολών

Ας δούμε τώρα τη βασική σύνταξη που χρησιμοποιείται για τη δημιουργία μιας προβολής MySQL.

CREATE VIEW `view_name` AS SELECT statement;

ΠΟΥ

  • "ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΒΟΛΗ "Όνομα_προβολής"" λέει MySQL διακομιστή για να δημιουργήσετε ένα αντικείμενο προβολής στη βάση δεδομένων με το όνομα "view_name".
  • "Δήλωση AS SELECT" είναι οι δηλώσεις SQL που θα συσκευαστούν στο MySQL Προβολές. Μπορεί να είναι μια πρόταση SELECT μπορεί να περιέχει δεδομένα από έναν πίνακα ή πολλούς πίνακες.

Πώς να δημιουργήσετε προβολές σε MySQL

Ακολουθεί μια διαδικασία βήμα προς βήμα για τη δημιουργία προβολής MySQL:

Βήμα 1) Δημιουργήστε την πρώτη μας προβολή χρησιμοποιώντας το "myflixdb"

Ας δημιουργήσουμε τώρα την πρώτη μας προβολή χρησιμοποιώντας το "myflixdb", θα δημιουργήσουμε μια απλή προβολή που περιορίζει τις στήλες που εμφανίζονται στον πίνακα μελών.

Ας υποθέσουμε ότι οι απαιτήσεις εξουσιοδότησης αναφέρουν ότι το τμήμα λογαριασμών μπορεί να δει μόνο τον αριθμό, το όνομα και το φύλο του μέλους από τον πίνακα του μέλους. Για να το πετύχετε αυτό, μπορείτε να δημιουργήσετε ένα VIEW –

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

Βήμα 2) Επέκταση του κόμβου προβολών

Εκτέλεση του παραπάνω σεναρίου στο MySQL Ο πάγκος εργασίας έναντι του myflixdb και η επέκταση του κόμβου προβολών στον εξερευνητή βάσης δεδομένων μας δίνει τα ακόλουθα αποτελέσματα.

Δημιουργία προβολών σε MySQL

Σημειώστε ότι το αντικείμενο accounts_v_members είναι πλέον ορατό στα αντικείμενα των προβολών της βάσης δεδομένων.

Βήμα 3) Εκτελέστε μια δήλωση SELECT

Ας εκτελέσουμε τώρα ένα Δήλωση SELECT που επιλέγει όλα τα πεδία από την προβολή όπως φαίνεται παρακάτω MySQL δημιουργία παραδείγματος προβολής.

SELECT * FROM `accounts_v_members`;

Βήμα 4) Εκτελέστε ένα σενάριο

Εκτέλεση του παραπάνω σεναρίου στο MySQL Ο πάγκος εργασίας έναντι του myflixdb μας δίνει τα ακόλουθα αποτελέσματα που φαίνονται παρακάτω.

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

Μόνο οι εξουσιοδοτημένες στήλες για το τμήμα λογαριασμών έχουν επιστραφεί. Άλλες λεπτομέρειες που βρέθηκαν στον πίνακα μελών έχουν κρυφτεί.

Εάν θέλουμε να δούμε τις προτάσεις SQL που συνθέτουν μια συγκεκριμένη προβολή, μπορούμε να χρησιμοποιήσουμε τη δέσμη ενεργειών που φαίνεται παρακάτω για να το κάνουμε αυτό.

SHOW CREATE VIEW `accounts_v_members`;

Η εκτέλεση της παραπάνω δέσμης ενεργειών σάς δίνει το όνομα της προβολής και τις δηλώσεις SQL SELECT που χρησιμοποιούνται για τη δημιουργία της προβολής.

Εγγραφές και Προβολές σε MySQL

Ας δούμε τώρα ένα αρκετά περίπλοκο παράδειγμα που περιλαμβάνει πολλούς πίνακες και χρήσεις ενώνει.

Θα συσκευάσουμε το JOIN που δημιουργήθηκε και λαμβάνει πληροφορίες από τρεις (3) πίνακες και συγκεκριμένα μέλη, ταινίες και ενοικιάσεις ταινιών. Παρακάτω είναι το σενάριο που μας βοηθά να το πετύχουμε.

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

Η εκτέλεση των παραπάνω σεναρίων δημιουργεί την προβολή με το όνομα general_v_movie_rentals στο myflixdb

Ας επιλέξουμε τώρα όλα τα πεδία από έναν πίνακα με το όνομα general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Εκτέλεση του παραπάνω σεναρίου στο MySQL πάγκος εργασίας έναντι του myflixdb μας δίνει τα ακόλουθα αποτελέσματα που φαίνονται παρακάτω.

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

Σημειώστε ότι δεν χρειάστηκε να γράψουμε το σύνθετο ερώτημα JOIN για να λάβουμε πληροφορίες σχετικά με μέλη, ταινίες και λεπτομέρειες ενοικίασης ταινιών. Απλώς χρησιμοποιήσαμε την προβολή σε μια κανονική πρόταση SELECT όπως οποιονδήποτε άλλο συνηθισμένο πίνακα. Η προβολή μπορεί να κληθεί από οπουδήποτε στο σύστημα εφαρμογής που εκτελείται πάνω από το myflixdb.

Απόρριψη προβολών MySQL

Η εντολή DROP μπορεί να χρησιμοποιηθεί για τη διαγραφή μιας προβολής από το βάσεις δεδομένων που δεν απαιτείται πλέον. Η βασική σύνταξη για την απόρριψη μιας προβολής είναι η εξής.

DROP VIEW ` general_v_movie_rentals `;

Γιατί να χρησιμοποιήσετε προβολές;

Μπορεί να θέλετε να χρησιμοποιήσετε προβολές κυρίως για τους ακόλουθους 3 λόγους

  • Τελικά, θα χρησιμοποιήσετε το δικό σας SQL γνώση , για τη δημιουργία εφαρμογών , οι οποίες θα χρησιμοποιούν βάση δεδομένων για απαιτήσεις δεδομένων. Συνιστάται να χρησιμοποιείτε VIEWS της αρχικής δομής του πίνακα στην εφαρμογή σας αντί να χρησιμοποιείτε τους ίδιους τους πίνακες. Αυτό διασφαλίζει ότι όταν κάνετε αναδιαμόρφωση του DB σας, ο κωδικός παλαιού τύπου θα βλέπει το αρχικό σχήμα μέσω της προβολής χωρίς να διακόπτεται η εφαρμογή.
  • Οι VIEWS αυξάνουν την επαναχρησιμοποίηση. Δεν θα χρειαστεί να δημιουργήσετε σύνθετα ερωτήματα που περιλαμβάνουν επανειλημμένες συνδέσεις. Όλη η πολυπλοκότητα μετατρέπεται σε μια ενιαία γραμμή ερωτήματος χρήση VIEWS. Ένας τέτοιος συμπυκνωμένος κώδικας θα είναι ευκολότερο να ενσωματωθεί στην εφαρμογή σας. Αυτό θα εξαλείψει τις πιθανότητες τυπογραφικών σφαλμάτων και ο κώδικάς σας θα είναι πιο ευανάγνωστος.
  • Οι VIEWS βοηθούν στην ασφάλεια των δεδομένων. Μπορείτε να χρησιμοποιήσετε τις προβολές για να εμφανίσετε μόνο εξουσιοδοτημένες πληροφορίες στους χρήστες και να αποκρύψετε ευαίσθητα δεδομένα, όπως αριθμούς πιστωτικών καρτών.

Σύνοψη

  • Οι προβολές είναι εικονικοί πίνακες. δεν περιέχουν τα δεδομένα που επιστρέφονται. Τα δεδομένα αποθηκεύονται στους πίνακες που αναφέρονται στη δήλωση SELECT.
  • Οι προβολές βελτιώνουν την ασφάλεια της βάσης δεδομένων εμφανίζοντας μόνο τα προβλεπόμενα δεδομένα σε εξουσιοδοτημένους χρήστες. Κρύβουν ευαίσθητα δεδομένα.
  • Οι προβολές κάνουν τη ζωή εύκολη καθώς δεν χρειάζεται να γράφετε σύνθετα ερωτήματα ξανά και ξανά.
  • Είναι δυνατή η χρήση INSERT, UPDATE και DELETE σε μια ΠΡΟΒΟΛΗ. Αυτές οι πράξεις θα αλλάξουν τους υποκείμενους πίνακες του VIEW. Το μόνο ζήτημα είναι ότι το VIEW πρέπει να περιέχει όλες τις στήλες NOT NULL των πινάκων που παραπέμπει. Στην ιδανική περίπτωση, δεν θα πρέπει να χρησιμοποιείτε VIEWS για ενημέρωση.