MySQL Προβολές: Πώς να δημιουργήσετε προβολή από πίνακες
⚡ Έξυπνη Σύνοψη
MySQL Οι προβολές είναι εικονικοί πίνακες που δεν αποθηκεύουν δικά τους δεδομένα και παρουσιάζουν το αποτέλεσμα ενός αποθηκευμένου ερωτήματος SELECT. Αυτός ο πόρος εξηγεί πώς να δημιουργείτε, να υποβάλλετε ερωτήματα, να ενώνετε και να αποθέτετε προβολές, με εκτελέσιμα παραδείγματα από τη βάση δεδομένων myflixdb.

Σε τι περιλαμβάνονται οι Προβολές MySQL?
ΠΡΟΒΟΛΈΣ είναι εικονικοί πίνακες που δεν αποθηκεύουν δικά τους δεδομένα αλλά εμφανίζουν δεδομένα που είναι αποθηκευμένα σε άλλους πίνακες. Με άλλα λόγια, τα VIEWS δεν είναι παρά τα ερωτήματα SQL. Μια προβολή μπορεί να περιέχει όλες ή μερικές σειρές από έναν πίνακα. ΕΝΑ MySQL Η προβολή μπορεί να εμφανίζει δεδομένα από έναν πίνακα ή πολλούς πίνακες.
MySQL Σύνταξη προβολών
Ας δούμε τώρα τη βασική σύνταξη που χρησιμοποιείται για τη δημιουργία μιας προβολής MySQL.
CREATE VIEW `view_name` AS SELECT statement;
ΠΟΥ
- "ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΒΟΛΗ "Όνομα_προβολής"" λέει MySQL διακομιστή για να δημιουργήσετε ένα αντικείμενο προβολής στη βάση δεδομένων με το όνομα "view_name".
- "Δήλωση AS SELECT" είναι οι δηλώσεις SQL που θα συσκευαστούν στο MySQL Προβολές. Μπορεί να είναι μια πρόταση SELECT μπορεί να περιέχει δεδομένα από έναν πίνακα ή πολλούς πίνακες.
Γιατί να χρησιμοποιήσετε προβολές;
Πριν δημιουργήσετε ένα, είναι χρήσιμο να γνωρίζετε τι πραγματικά σας προσφέρει μια προβολή.
Μπορεί να θέλετε να χρησιμοποιήσετε προβολές κυρίως για τους ακόλουθους 3 λόγους
- Τελικά, θα χρησιμοποιήσετε το δικό σας SQL γνώση, για τη δημιουργία εφαρμογών, οι οποίες θα χρησιμοποιούν μια βάση δεδομένων για τις απαιτήσεις δεδομένων. Συνιστάται να χρησιμοποιείτε ΠΡΟΒΟΛΕΣ της αρχικής δομής πίνακα στην εφαρμογή σας αντί να χρησιμοποιείτε τους ίδιους τους πίνακες. Αυτό διασφαλίζει ότι όταν αναδιαμορφώνετε τη βάση δεδομένων σας, ο παλαιός σας κώδικας θα βλέπει το αρχικό σχήμα μέσω της προβολής χωρίς να διαταράσσει την εφαρμογή.
- Οι VIEWS αυξάνουν την επαναχρησιμοποίηση. Δεν θα χρειαστεί να δημιουργήσετε σύνθετα ερωτήματα που περιλαμβάνουν επανειλημμένες συνδέσεις. Όλη η πολυπλοκότητα μετατρέπεται σε μια ενιαία γραμμή ερωτήματος χρήση VIEWS. Ένας τέτοιος συμπυκνωμένος κώδικας θα είναι ευκολότερο να ενσωματωθεί στην εφαρμογή σας. Αυτό θα εξαλείψει τις πιθανότητες τυπογραφικών σφαλμάτων και ο κώδικάς σας θα είναι πιο ευανάγνωστος.
- Οι VIEWS βοηθούν στην ασφάλεια των δεδομένων. Μπορείτε να χρησιμοποιήσετε τις προβολές για να εμφανίσετε μόνο εξουσιοδοτημένες πληροφορίες στους χρήστες και να αποκρύψετε ευαίσθητα δεδομένα, όπως αριθμούς πιστωτικών καρτών.
Πώς να δημιουργήσετε προβολές σε MySQL
Με την καθορισμένη σύνταξη και τα οφέλη, τα παρακάτω βήματα δημιουργούν μια λειτουργική προβολή από άκρο σε άκρο.
Ακολουθεί μια διαδικασία βήμα προς βήμα για τη δημιουργία προβολής MySQL:
Βήμα 1) Δημιουργήστε την πρώτη μας προβολή χρησιμοποιώντας το "myflixdb"
Ας δημιουργήσουμε τώρα την πρώτη μας προβολή χρησιμοποιώντας το "myflixdb", θα δημιουργήσουμε μια απλή προβολή που περιορίζει τις στήλες που εμφανίζονται στον πίνακα μελών.
Ας υποθέσουμε ότι οι απαιτήσεις εξουσιοδότησης ορίζουν ότι το τμήμα λογιστηρίου μπορεί να δει μόνο τον αριθμό, το όνομα και το φύλο του μέλους από τον πίνακα του μέλους. Για να το πετύχετε αυτό, μπορείτε να δημιουργήσετε μια ΠΡΟΒΟΛΗ –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Βήμα 2) Επέκταση του κόμβου προβολών
Εκτέλεση του παραπάνω σεναρίου στο MySQL Ο πάγκος εργασίας έναντι του myflixdb και η επέκταση του κόμβου προβολών στον εξερευνητή βάσης δεδομένων μας δίνει τα ακόλουθα αποτελέσματα.
Σημειώστε ότι το αντικείμενο 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.
Πτώσηping Προβολές σε MySQL
Η εντολή DROP μπορεί να χρησιμοποιηθεί για τη διαγραφή μιας προβολής από το βάσεις δεδομένων που δεν απαιτείται πλέον. Η βασική σύνταξη για την απόρριψη μιας προβολής είναι η εξής.
DROP VIEW `general_v_movie_rentals`;
Πτώσηping Μια προβολή καταργεί μόνο το αποθηκευμένο ερώτημα. Οι υποκείμενοι πίνακες και τα δεδομένα τους παραμένουν ανέπαφα.

