Ηλεκτρονικοί Υπολογιστές II

Σχετικά έγγραφα

Ηλεκτρονικοί Υπολογιστές II

Ηλεκτρονικοί Υπολογιστές II

Ηλεκτρονικοί Υπολογιστές II

Ηλεκτρονικοί Υπολογιστές II

Ηλεκτρονικοί Υπολογιστές II

DELETE, UPDATE, INSERT.


DELETE, UPDATE, INSERT



1 / 150

1 / 105

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Τεχνολογία Πολιτισμικού Λογισμικού

Βάσεις Περιβαλλοντικών Δεδομένων

Ηλεκτρονικοί Υπολογιστές I

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP.

Μικροβιολογία & Υγιεινή Τροφίμων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7β: SQL (Πρακτική Εξάσκηση 1) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Πιθανότητες. Συνδυαστική Ανάλυση Διδάσκων: Επίκουρος Καθηγητής Κωνσταντίνος Μπλέκας

Τεχνολογία Πολιτισμικού Λογισμικού

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

Εισαγωγή στην πληροφορική

Ηλεκτρονικοί Υπολογιστές I

Ηλεκτρονικοί Υπολογιστές IV

Ερωτήματα επιλογής με σύζευξη πινάκων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 8: SQL (Πρακτική Εξάσκηση 2) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Ηλεκτρονικοί Υπολογιστές I

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

Βάσεις Περιβαλλοντικών Δεδομένων

Ηλεκτρονικοί Υπολογιστές IV

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

1 / 87

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

1 / 97

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Τεχνολογία Πολιτισμικού Λογισμικού

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Ηλεκτρισμός & Μαγνητισμός

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Ιστορία της μετάφρασης

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας


Εισαγωγή στους Αλγορίθμους

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εκκλησιαστικό Δίκαιο

Τμήμα Πληροφορικής ΑΠΘ

Βάσεις Περιβαλλοντικών Δεδομένων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εφαρμοσμένη Στατιστική

Ηλεκτρονικοί Υπολογιστές I

Ηλεκτρονικοί Υπολογιστές I

Εισαγωγή στους Αλγορίθμους

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Βασικοί άξονες Μαθηματικά στην εκπαίδευση:

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Εκκλησιαστικό Δίκαιο

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 6: SQL (Συζεύξεις, Εμφώλευση, Ομαδοποίηση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ανοικτά Ακαδημαϊκά Μαθήματα

Μαθηματικά και Φυσική με Υπολογιστές

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Ηλεκτρονικοί Υπολογιστές I

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Σύγxρονη Φυσική II. Ατομική Δομή ΙΙ Διδάσκων : Επίκ. Καθ. Μ. Μπενής

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

Ηλεκτρισμός & Μαγνητισμός

Βασικές Αρχές Φαρμακοκινητικής

Βασικές Αρχές Φαρμακοκινητικής

Μηχανολογικό Σχέδιο Ι

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Εργαστήριο Χημείας Ενώσεων Συναρμογής

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Ηλεκτρονικοί Υπολογιστές IV

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διδακτική της Πληροφορικής

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Διοικητική Λογιστική

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΦΥΣΙΚΟΧΗΜΕΙΑ ΙΙ

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Αρχεία και Βάσεις Δεδομένων

Ιστορία της μετάφρασης

Μαγνητικά Υλικά Υπεραγωγοί

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

Ηλεκτρισμός & Μαγνητισμός

Ανοικτά Ακαδημαϊκά Μαθήματα

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Όψεις (views) στην SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

Οψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 55

Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων 4 Ενημέρωση όψεων 2 / 55

Σκοπός του μαθήματος Δημιουργείτε όψεις με βάση ερωτήματα επιλογής SELECT. 3 / 55

Σκοπός του μαθήματος Δημιουργείτε όψεις με βάση ερωτήματα επιλογής SELECT. Χρησιμοποιήσετε την εντολή CREATE VIEW. 4 / 55

Σκοπός του μαθήματος Δημιουργείτε όψεις με βάση ερωτήματα επιλογής SELECT. Χρησιμοποιήσετε την εντολή CREATE VIEW. Χρησιμοποιήσετε όψεις ως πίνακες σε νέα ερωτήματα. 5 / 55

Σκοπός του μαθήματος Δημιουργείτε όψεις με βάση ερωτήματα επιλογής SELECT. Χρησιμοποιήσετε την εντολή CREATE VIEW. Χρησιμοποιήσετε όψεις ως πίνακες σε νέα ερωτήματα. Χρησιμοποιήσετε όψεις σε ερωτήματα σύνοψης. 6 / 55

Σκοπός του μαθήματος Δημιουργείτε όψεις με βάση ερωτήματα επιλογής SELECT. Χρησιμοποιήσετε την εντολή CREATE VIEW. Χρησιμοποιήσετε όψεις ως πίνακες σε νέα ερωτήματα. Χρησιμοποιήσετε όψεις σε ερωτήματα σύνοψης. Δημιουργείτε όψεις για προσαρμοζόμενη αλληλεπίδραση του χρήστη με τη βάση δεδομένων. 7 / 55

Σκοπός του μαθήματος Δημιουργείτε όψεις με βάση ερωτήματα επιλογής SELECT. Χρησιμοποιήσετε την εντολή CREATE VIEW. Χρησιμοποιήσετε όψεις ως πίνακες σε νέα ερωτήματα. Χρησιμοποιήσετε όψεις σε ερωτήματα σύνοψης. Δημιουργείτε όψεις για προσαρμοζόμενη αλληλεπίδραση του χρήστη με τη βάση δεδομένων. Ενημερώνετε τη βάση δεδομένων με χρήση όψεων. 8 / 55

Δημιουργία όψης Η όψη είναι ένα αποθηκευμένο επώνυμο ερώτημα 1 CREATE VIEW ViewName AS 2 SELECT... 1 Οι όψεις δημιουργούνται με την εντολή CREATE VIEW. 2 Οι όψεις πρέπει να έχουν ένα μοναδικό όνομα στη βάση δεδομένων. 3 Μπορούν να οριστούν με βάση οποιοδήποτε έγκυρο ερώτημα SELECT. 9 / 55

Παράδειγμα δημιουργίας/χρήσης μιας όψης Δημιουργία της όψης «Τμήμα 3» 1 CREATE VIEW dep3 AS 2 SELECT * 3 FROM employees 4 WHERE depid = 3; 10 / 55

Παράδειγμα δημιουργίας/χρήσης μιας όψης Δημιουργία της όψης «Τμήμα 3» 1 CREATE VIEW dep3 AS 2 SELECT * 3 FROM employees 4 WHERE depid = 3; Χρήση της dep3 1 SELECT empid, salary 2 FROM dep3 3 WHERE salary > 1300; 4 5 empid salary 6 --------------- 7 412 1320.83 8 543 1321.77 9 801 2312.56 11 / 55

Παράδειγμα δημιουργίας μιας όψης σύνοψης «Πλήθος υπαλλήλων ανά τμήμα» 1 CREATE VIEW depcount AS 2 SELECT depid, COUNT(depid) as nemp 3 FROM employees 4 GROUP BY depid; 12 / 55

Παράδειγμα δημιουργίας μιας όψης σύνοψης «Πλήθος υπαλλήλων ανά τμήμα» 1 CREATE VIEW depcount AS 2 SELECT depid, COUNT(depid) as nemp 3 FROM employees 4 GROUP BY depid; Προβολή των περιεχομένων της όψης depcount 1 SELECT * 2 FROM depcount; 3 depid nemp 4 ------------- 5 1 3 6 2 4 7 3 9 8 4 5 9 5 2 13 / 55

Οψεις και πίνακες Παρατηρήσεις: Η όψη μπορεί να χρησιμοποιηθεί ως πίνακας σε ερωτήματα ή υποερώτημα SELECT. 14 / 55

Οψεις και πίνακες Παρατηρήσεις: Η όψη μπορεί να χρησιμοποιηθεί ως πίνακας σε ερωτήματα ή υποερώτημα SELECT. Το όνομα μιας όψης πρέπει να είναι διαφορετικό από τα ονόματα των πινάκων και άλλων όψεων της βάσης δεδομένων. 15 / 55

Οψεις και πίνακες Παρατηρήσεις: Η όψη μπορεί να χρησιμοποιηθεί ως πίνακας σε ερωτήματα ή υποερώτημα SELECT. Το όνομα μιας όψης πρέπει να είναι διαφορετικό από τα ονόματα των πινάκων και άλλων όψεων της βάσης δεδομένων. Οι πίνακες αντιστοιχούν σε βασικές σχέσεις, οι όψεις αντιστοιχούν σε παράγωγες σχέσεις. 16 / 55

Οψεις και πίνακες Παρατηρήσεις: Η όψη μπορεί να χρησιμοποιηθεί ως πίνακας σε ερωτήματα ή υποερώτημα SELECT. Το όνομα μιας όψης πρέπει να είναι διαφορετικό από τα ονόματα των πινάκων και άλλων όψεων της βάσης δεδομένων. Οι πίνακες αντιστοιχούν σε βασικές σχέσεις, οι όψεις αντιστοιχούν σε παράγωγες σχέσεις. Οι όψεις δεν αποθηκεύουν δεδομένα. 17 / 55

Οψεις και πίνακες Παρατηρήσεις: Η όψη μπορεί να χρησιμοποιηθεί ως πίνακας σε ερωτήματα ή υποερώτημα SELECT. Το όνομα μιας όψης πρέπει να είναι διαφορετικό από τα ονόματα των πινάκων και άλλων όψεων της βάσης δεδομένων. Οι πίνακες αντιστοιχούν σε βασικές σχέσεις, οι όψεις αντιστοιχούν σε παράγωγες σχέσεις. Οι όψεις δεν αποθηκεύουν δεδομένα. Τα δεδομένα αποθηκεύονται σε πίνακες. 18 / 55

Οψεις και πίνακες Παρατηρήσεις: Η όψη μπορεί να χρησιμοποιηθεί ως πίνακας σε ερωτήματα ή υποερώτημα SELECT. Το όνομα μιας όψης πρέπει να είναι διαφορετικό από τα ονόματα των πινάκων και άλλων όψεων της βάσης δεδομένων. Οι πίνακες αντιστοιχούν σε βασικές σχέσεις, οι όψεις αντιστοιχούν σε παράγωγες σχέσεις. Οι όψεις δεν αποθηκεύουν δεδομένα. Τα δεδομένα αποθηκεύονται σε πίνακες. Η διαγραφή μιας όψης δε σημαίνει διαγραφή δεδομένων από τη βάση δεδομένων. 19 / 55

Οψη με περιορισμό σε ένα πίνακα Οψη για τους υπαλλήλους του τμήματος 3 1 CREATE VIEW dep3 AS 2 SELECT * 3 FROM employees 4 WHERE depid = 3; 1 Πρόσβαση στην όψη δεπ3 σημαίνει πρόσβαση μόνο στους υπαλλήλους του τμήματος 3 2 Διαγραφή, τροποποίηση, ή εισαγωγή δεδομένων για τους υπαλλήλους του τμήματος 3 στον πίνακα εμπλοψεες σημαίνει αυτόματη ενημέρωση των περιεχομένων της όψης 20 / 55

Οψη με προβολή πεδίων σε ένα πίνακα Να δημιουργηθεί μια όψη με τους κωδικούς και τα ονοματεπώνυμα όλων των υπαλλήλων 1 CREATE VIEW enames AS 2 SELECT empid, lastname, firstname 3 FROM employees; 1 Πρόσβαση στην όψη enames σημαίνει πρόσβαση σε όλους τους υπαλλήλους αλλά μόνο σε ορισμένες πληροφορίες, πχ όχι στο μισθό salary. 2 Διαγραφή, τροποποίηση, ή εισαγωγή δεδομένων για υπαλλήλους στον πίνακα employees σημαίνει αυτόματη ενημέρωση των περιεχομένων την όψης. 21 / 55

Ορισμός ονομάτων πεδίων όψης Αλλαγή στα ονόματα: 1 CREATE VIEW depcount(d_id, n_emp) AS 2 SELECT depid, COUNT(depid) 3 FROM employees 4 GROUP BY depid; Αν δεν δώσουμε ονόματα, τότε κληρονομούνται από τα ονόματα του πίνακα. Το πλήθος ονομάτων μέσα στις παρενθέσεις και το πλήθος των πεδίων στη φράση SELECT πρέπει να είναι το ίδιο. 22 / 55

Πλεονεκτήματα στη χρήση των όψεων 23 / 55

Πλεονεκτήματα στη χρήση των όψεων 1 Κάθε χρήστης μπορεί να έχει διαφορετική εξουσιοδότηση για το χειρισμό δεδομένων (χρηστικότητα, ασφάλεια). 24 / 55

Πλεονεκτήματα στη χρήση των όψεων 1 Κάθε χρήστης μπορεί να έχει διαφορετική εξουσιοδότηση για το χειρισμό δεδομένων (χρηστικότητα, ασφάλεια). 2 Η χρήση των όψεων στα ερωτήματα μπορεί να απλοποιήσει μερικά σύνθετα ερωτήματα. 25 / 55

Πλεονεκτήματα στη χρήση των όψεων 1 Κάθε χρήστης μπορεί να έχει διαφορετική εξουσιοδότηση για το χειρισμό δεδομένων (χρηστικότητα, ασφάλεια). 2 Η χρήση των όψεων στα ερωτήματα μπορεί να απλοποιήσει μερικά σύνθετα ερωτήματα. 3 Δεν υπάρχει ανάγκη ο κάθε χρήστης να γνωρίζει το πλήρες σχήμα της βάσης δεδομένων. 26 / 55

Πλεονεκτήματα στη χρήση των όψεων 1 Κάθε χρήστης μπορεί να έχει διαφορετική εξουσιοδότηση για το χειρισμό δεδομένων (χρηστικότητα, ασφάλεια). 2 Η χρήση των όψεων στα ερωτήματα μπορεί να απλοποιήσει μερικά σύνθετα ερωτήματα. 3 Δεν υπάρχει ανάγκη ο κάθε χρήστης να γνωρίζει το πλήρες σχήμα της βάσης δεδομένων. 4 Με μικρές μόνο τροποποιήσεις, οι όψεις μπορεί να παραμείνουν αναλλοίωτες, σε πιθανές αλλαγές του σχήματος της βάσης δεδομένων. 27 / 55

Πλεονεκτήματα στη χρήση των όψεων 1 Κάθε χρήστης μπορεί να έχει διαφορετική εξουσιοδότηση για το χειρισμό δεδομένων (χρηστικότητα, ασφάλεια). 2 Η χρήση των όψεων στα ερωτήματα μπορεί να απλοποιήσει μερικά σύνθετα ερωτήματα. 3 Δεν υπάρχει ανάγκη ο κάθε χρήστης να γνωρίζει το πλήρες σχήμα της βάσης δεδομένων. 4 Με μικρές μόνο τροποποιήσεις, οι όψεις μπορεί να παραμείνουν αναλλοίωτες, σε πιθανές αλλαγές του σχήματος της βάσης δεδομένων. 5 Οι όψεις υποστηρίζουν την ακεραιότητα δεδομένων, όπως ακριβώς και οι πίνακες από τους οποίους προέρχονται. 28 / 55

Μειονεκτήματα στη χρήση των όψεων 29 / 55

Μειονεκτήματα στη χρήση των όψεων 1 Το μεγαλύτερο μειονέκτημα στη χρήση όψεων είναι η μικρότερη απόδοση των ερωτημάτων, η μειωμένη ταχύτητα με την οποία εκτελούνται 30 / 55

Μειονεκτήματα στη χρήση των όψεων 1 Το μεγαλύτερο μειονέκτημα στη χρήση όψεων είναι η μικρότερη απόδοση των ερωτημάτων, η μειωμένη ταχύτητα με την οποία εκτελούνται 2 Οι όψεις μπορούν να δεχτούν ενημέρωση (INSERT, DELETE ή UPDATE), αλλά κάτω από περιορισμούς. Πολλές φορές, είναι αδύνατη η ενημέρωση όψεων (Read only iews). 31 / 55

Οψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 32 / 55

Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων 4 Ενημέρωση όψεων 33 / 55

Οψη προβολής μετά από σύζευξη πινάκων Ονόματα τμημάτων και υπαλλήλων 1 CREATE VIEW depemps AS 2 SELECT d.depname, e.lastname, e.firstname 3 FROM departments d INNER JOIN employees e 4 ON d.depid=e.depid 5 ORDER BY d.depid ASC, e.lastname ASC; 1 Η όψη παρέχει συνδυασμό πληροφοριών από δύο πίνακες. 2 Ενημέρωση των πινάκων employees ή/και departments, θα έχει αποτέλεσμα την αυτόματη ενημέρωση της όψης depemps. 3 Μεταβολή (UPDATE) της τιμής του μισθού ενός υπαλλήλου δε θα επηρεάσει τα αποτελέσματα της όψης. 4 Μεταβολή (UPDATE) του τμήματος υπαλλήλου θα επηρεάσει τα αποτελέσματα της όψης. 34 / 55

Σύζευξη πίνακα και όψης Να βρεθεί το όνομα του τμήματος με τους περισσότερους υπαλλήλους 1 SELECT depname 2 FROM depcount, departments 3 WHERE depcount.depid = departments.depid 4 AND nemp = ( SELECT MAX(nemp) 5 FROM depcount ); Το ίδιο, αλλά με φυσική σύζευξη 1 SELECT depname 2 FROM depcount NATURAL JOIN departments 3 WHERE nemp = ( SELECT MAX(nemp) 4 FROM depcount ); 35 / 55

Σύγκριση με υποερώτημα στη φράση HAVING Να βρεθεί το όνομα του τμήματος με τους περισσότερους υπαλλήλους 1 SELECT depname 2 FROM depcount NATURAL JOIN departments 3 WHERE nemp = ( SELECT MAX(nemp) 4 FROM depcount ); Με υποερώτημα στη φράση HAVING, χωρίς τη χρήση της όψης 1 SELECT depname 2 FROM departments NATURAL JOIN employees 3 GROUP BY depname 4 HAVING COUNT(*) >= ALL ( SELECT COUNT(depid) 5 FROM employees 6 GROUP BY depid ); 36 / 55

Οψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 37 / 55

Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων 4 Ενημέρωση όψεων 38 / 55

Ορισμός όψης με βάση άλλη όψη Δημιουργία της όψης emp3 με βάση τον πίνακα employees 1 CREATE VIEW emp3 AS 2 SELECT empid, lastname, firstname, salary 3 FROM employees 4 WHERE depid = 3; 39 / 55

Ορισμός όψης με βάση άλλη όψη Δημιουργία της όψης emp3 με βάση τον πίνακα employees 1 CREATE VIEW emp3 AS 2 SELECT empid, lastname, firstname, salary 3 FROM employees 4 WHERE depid = 3; Δημιουργία της όψης emp3_s1300 με βάση την όψη emp3 1 CREATE VIEW emp3_s1300 AS 2 SELECT * 3 FROM emp3 4 WHERE salary > 1300; Μια όψη μπορεί να οριστεί με βάση μια άλλη όψη. 40 / 55

Διαγραφή όψης Διαγραφή της όψης viewname 1 DROP VIEW viewname; 41 / 55

Διαγραφή όψης Διαγραφή της όψης viewname 1 DROP VIEW viewname; Διαδοχική διαγραφή της όψης viewname και όσων εξαρτώνται από αυτή 1 DROP VIEW viewname CASCADE; 42 / 55

Διαγραφή όψης Διαγραφή της όψης viewname 1 DROP VIEW viewname; Διαδοχική διαγραφή της όψης viewname και όσων εξαρτώνται από αυτή 1 DROP VIEW viewname CASCADE; Αποφυγή διαδοχική διαγραφής της όψης viewname και όσων εξαρτώνται από αυτή 1 DROP VIEW viewname RESTRICT; 43 / 55

Οψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 44 / 55

Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων 4 Ενημέρωση όψεων 45 / 55

Ενημέρωση όψεων 46 / 55

Ενημέρωση όψεων 1 Οι όψεις μπορούν να ενημερωθούν με τις εντολές INSERT, DELETE, UPDATE, όπως και οι πίνακες μιας βάσης δεδομένων. 47 / 55

Ενημέρωση όψεων 1 Οι όψεις μπορούν να ενημερωθούν με τις εντολές INSERT, DELETE, UPDATE, όπως και οι πίνακες μιας βάσης δεδομένων. 2 Ενημέρωση γίνεται σε όψεις που έχουν δημιουργηθεί με βάση ένα μόνο πίνακα, όχι περισσότερους. 48 / 55

Ενημέρωση όψεων 1 Οι όψεις μπορούν να ενημερωθούν με τις εντολές INSERT, DELETE, UPDATE, όπως και οι πίνακες μιας βάσης δεδομένων. 2 Ενημέρωση γίνεται σε όψεις που έχουν δημιουργηθεί με βάση ένα μόνο πίνακα, όχι περισσότερους. 3 Δεν μπορεί να γίνει ενημέρωση μιας όψης που έχει δημιουργηθεί με ερώτημα ομαδοποίησης GROUP BY. 49 / 55

Ενημέρωση όψεων 1 Οι όψεις μπορούν να ενημερωθούν με τις εντολές INSERT, DELETE, UPDATE, όπως και οι πίνακες μιας βάσης δεδομένων. 2 Ενημέρωση γίνεται σε όψεις που έχουν δημιουργηθεί με βάση ένα μόνο πίνακα, όχι περισσότερους. 3 Δεν μπορεί να γίνει ενημέρωση μιας όψης που έχει δημιουργηθεί με ερώτημα ομαδοποίησης GROUP BY. 4 Οι εντολές INSERT, DELETE, UPDATE σε μια όψη υπόκεινται στους ίδιους περιορισμούς ενημέρωσης της βάσης δεδομένων όπως αν εκτελούνταν στους βασικούς πίνακες. 50 / 55

Ενημέρωση όψεων 1 Οι όψεις μπορούν να ενημερωθούν με τις εντολές INSERT, DELETE, UPDATE, όπως και οι πίνακες μιας βάσης δεδομένων. 2 Ενημέρωση γίνεται σε όψεις που έχουν δημιουργηθεί με βάση ένα μόνο πίνακα, όχι περισσότερους. 3 Δεν μπορεί να γίνει ενημέρωση μιας όψης που έχει δημιουργηθεί με ερώτημα ομαδοποίησης GROUP BY. 4 Οι εντολές INSERT, DELETE, UPDATE σε μια όψη υπόκεινται στους ίδιους περιορισμούς ενημέρωσης της βάσης δεδομένων όπως αν εκτελούνταν στους βασικούς πίνακες. 5 Ολες οι πράξεις ενημέρωσης εκτελούνται στην ουσία στους πίνακες που ορίζουν την όψη. 51 / 55

Παράδειγμα ενημέρωσης όψης Αύξηση του μισθού των υπαλλήλων του τμήματος 3 1 UPDATE emp3 2 SET salary = salary + 50 Η ενημέρωση θα γίνει στον πίνακα employees αλλά μόνο στους υπαλλήλους του τμήματος 3. 52 / 55

Παράδειγμα ενημέρωσης όψης Αύξηση του μισθού των υπαλλήλων του τμήματος 3 1 UPDATE emp3 2 SET salary = salary + 50 Η ενημέρωση θα γίνει στον πίνακα employees αλλά μόνο στους υπαλλήλους του τμήματος 3. Ισοδύναμα: Αύξηση του μισθού των υπαλλήλων του τμήματος 3 1 UPDATE employees 2 SET salary = salary + 50 3 WHERE depid = 3; 53 / 55

Περιορισμοί στην ενημέρωσης μιας όψης Αποτυχία εισαγωγής νέου υπαλλήλου στο τμήμα 3 1 INSERT INTO emp3 2 VALUES (980, Κάτου, Αννα, 1200); θα αποτύχει γιατί: 1 Το πεδίο depid του πίνακα employees έχει οριστεί ως NOT NULL και λείπει από τον ορισμό της όψης, οπότε η εισαγωγή δεδομένων στον πίνακα employees μέσω της όψης emp3 θα αποτύχει. 2 Το πεδίο depid του πίνακα employees έχει οριστεί ως ξένο κλειδί με αναφορική ακεραιότητα στον πίνακα departments, πρέπει οπωσδήποτε να δοθεί μια έγκυρη τιμή του. 54 / 55

Σχόλια και ερωτήσεις Σας ευχαριστώ για την προσοχή σας Είμαι στη διάθεσή σας για σχόλια, απορίες και ερωτήσεις 55 / 55

Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημειώματα

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. Έχουν προηγηθεί οι κάτωθι εκδόσεις: Έκδοση 1.0 διαθέσιμη εδώ. http://ecourse.uoi.gr/course/view.php?id=1065.

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης. «Ηλεκτρονικοί Υπολογιστές II. Όψεις (views) στην SQL». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1065.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.