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



Σχετικά έγγραφα
Βάσεις Δεδομένων. Εργαστήριο ΙV. Τμήμα Πληροφορικής ΑΠΘ

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

Κεφάλαιο 3. Ερωτήματα SQL

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

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

ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

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

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


Διαχείριση Πολιτισμικών Δεδομένων

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

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

Σχεδιασμός Βάσεων Δεδομένων

Τμήμα Διοίκησης Επιχειρήσεων

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

Βάσεις, Αποθήκες και Εξόρυξη Δεδομένων με τον SQL Server

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

Η SQL ως γλώσσα ερωτημάτων. Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα)

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 4 7/02/2012

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

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

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)


Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Εργαστήριο Βάσεων Δεδομένων

Βάσεις, Αποθήκες και Εξόρυξη Δεδομένων με τον SQL Server

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Κεφάλαιο 2. Δημιουργία Βάσης Δεδομένων και Πινάκων

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

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

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

SQL Server 2005 Tutorial Αςκήςεισ. Γεράσιμος Μαρκέτος InfoLab, Τμήμα Ρληροφορικήσ, Ρανεπιςτήμιο Ρειραιϊσ (

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1)

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

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

Βάσεις δεδομένων. (7 ο μάθημα) Ηρακλής Βαρλάμης

Βάσεις Δεδομένων Σύνθετα SQL queries

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

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9;

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ


DELETE, UPDATE, INSERT.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

Βάσεις Δεδομένων (Databases)

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

1. ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3)

DELETE, UPDATE, INSERT

Βάσεις Δεδομένων Ι SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

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

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί

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

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

Κεφάλαιο 9 Συναθροίσεις

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

Εργαςτιριο Βάςεων Δεδομζνων

Η Γλώσσα Βάσεων εδοµένων SQL

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1

Η SQL ως γλώσσα τροποποίησης Δεδομένων

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

Βάσεις Δεδομέμωμ. Δξγαζηήξην Ι. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED. Χέρι χέρι με τον Καρατζαφέρη

Διάλεξη 13: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) I. Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων

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

Transcript:

Βάσεις Δεδομένων Εργαστήριο V Τμήμα Πληροφορικής ΑΠΘ 2013-2014

2 Σκοπός του 5 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων τροποποίησης δομής / δεδομένων η μελέτη σύνθετων ερωτημάτων σύνδεσης σε δύο ή περισσότερες σχέσεις η μελέτη σύνθετων εμφωλευμένων ερωτημάτων

3 Τροποποίηση Δομής Πινάκων μιας Βάσης Δεδομένων (1/3) Τρόποι τροποποίησης δομής πίνακα: Προσθήκης νέου πεδίου / στήλης σε ένα πίνακα Αφαίρεση κάποιου πεδίου / στήλης ενός πίνακα Αλλαγή κάποιου πεδίου / στήλης ενός πίνακα Διαγραφή κάποιου πίνακα

4 Τροποποίηση Δομής Πινάκων μιας Βάσης Δεδομένων (2/3) Βασική Σύνταξη Εντολών: ALTER TABLE Πίνακας ADD COLUMN Πεδίο Τύπος ALTER TABLE Πίνακας DROP COLUMN Πεδίο Τύπος Παραδείγματα: ALTER TABLE ΠΕΛΑΤΗΣ DROP COLUMN Τηλέφωνο ALTER TABLE ΠΕΛΑΤΗΣ ADD COLUMN email varchar(200)

5 Τροποποίηση Δομής Πινάκων μιας Βάσης Δεδομένων (3/3) Βασική Σύνταξη Εντολών: ALTER TABLE Πίνακας ALTER COLUMN Πεδίο Τύπος Παράδειγμα: ALTER TABLE ΠΕΛΑΤΗΣ ALTER COLUMN Επίθετο char(100) not null

6 Τροποποίηση Δεδομένων Πινάκων μιας Βάσης Δεδομένων Βασική Σύνταξη Εντολών: UPDATE Πίνακας SET Πεδίοi =Τιμήi, Πεδίοj =Τιμήj,... WHERE Συνθήκη; Παράδειγμα: UPDATE ΤΑΙΝΙΑ SET Χρονιά=1960 WHERE Τίτλος = Ben- Hur ; ;

7 Όψεις (Views) Όψη: ένας εικονικός πίνακας που προκύπτει από άλλους πίνακες Μπορούμε να χρησιμοποιήσουμε μία όψη σαν να είναι ένας πίνακας (για εντολές select) Η όψη δεν απαιτείται να είναι αποθηκευμένη σε φυσική μορφή.

8 Όψεις (Views) Ορισμός της όψης στην SQL: Create view < name of view > as ( sql query ) Δ ή ό SQL Διαγραφή όψης στην SQL: Drop view < name of view >

9 Όψεις (Views) Παράδειγμα δημιουργίας όψης Να ορισθεί όψη με όνομα Η, που περιέχει ε όλους τους κωδικούς των ταινιών που συμμετέχει ο Alfred Hitchcock: CREATE VIEW H AS (SELECT IDΤαινίας FROM ΤΣ INNER JOIN ΣΥΝΤΕΛΕΣΤΗΣ ON ΤΣ.IDΣυντελεστή = ΣΥΝΤΕΛΕΣΤΗΣ.ID WHERE ΣΥΝΤΕΛΕΣΤΗΣ. Όνομα = Alfred Hitchcock )

10 Όψεις (Views) Παράδειγμα χρήσης όψης σε ερωτήματα επιλογής: Να βρεθεί ο κωδικός πελάτη με το μεγαλύτερο αριθμό ενοικιάσεων: CREATE VIEW numrent AS (SELECT IDΠελάτη, COUNT (*) () as Α FROM ΕΝΟΙΚΙΑΣΗ GROUP BY IDΠελάτη) SELECT IDΠελάτη FROM numrent WHERE A = (SELECT MAX(A) FROM numrent)

11 Σύνθετα ύθ SQL ερωτήματα με δύο ή περισσότερες σχέσεις Να βρεθούν οι τίτλοι των ταινιών που γυρίστηκαν πριν το 1960 ή αυτών στις οποίες ο εςέχει συμμετάσχει η Grace Kelly. Να γίνει προβολή των διπλοεγγραφών καθώς και να δωθούν με φθίνουσα σειρά ταξινόμησης οι πλειάδες εξόδου. (SELECT Τίτλος FROM ΤΑΙΝΙΑ WHERE Χρονιά < 1960) UNION ALL (SELECT Τίτλος FROM ΤΑΙΝΙΑ, ΣΥΝΤΕΛΕΣΤΗΣ, ΤΣ WHERE ΤΣ.IDΤαινίας = ΤΑΙΝΙΑ.ID AND ΤΣ.IDΣυντελεστής = ΣΥΝΤΕΛΕΣΤΗΣ.ID AND ΣΥΝΤΕΛΕΣΤΗΣ.Όνομα = 'Grace Kelly'); ORDER BY Τίτλος

12 Σύνθετα ύθ SQL ερωτήματα με δύο ή περισσότερες σχέσεις Να βρεθούν οι τίτλοι των ταινιών για τις οποίες είτε δεν υπάρχει DVD, είτε ευπάρχει DVD και δεν έχει ενοικιαστεί ε ποτέ. οέ (να μην χρησιμοποιηθεί ο τελεστής NOT IN). SELECT Τίτλος FROM ΤΑΙΝΙΑ LEFT OUTER JOIN DVD ON DVD.IDΤαινίας = ΤΑΙΝΙΑ.ID LEFT OUTER JOIN ΕΝΟΙΚΙΑΣΗ ON ΕΝΟΙΚΙΑΣΗ.IDdvd = DVD.ID WHERE ΕΝΟΙΚΙΑΣΗ.IDdvd IS NULL

13 Σύνθετα ύθ SQL ερωτήματα με δύο ή περισσότερες σχέσεις Να βρεθούν ο κωδικός κάθε ταινίας για την οποία το dvd τύπου 3D είναι σε μεγαλύτερη διαθέσιμη ποσότητα από το αντίστοιχο dvd τύπου SD. (χρήση αυτοσύνδεσης) SELECT Α.IDΤαινίας FROM DVD AS Α, DVD AS Β WHERE Α.IDΤαινίας = Β.IDΤαινίας AND Α.Τύπος = '3D' AND Β.Τύπος= 'SD' AND Α.Ποσότητα> Β.Ποσότητα

14 Σύνθετα ύθ SQL ερωτήματα με δύο ή περισσότερες σχέσεις Για κάθε ταινία (τίτλος), να βρεθεί ο αριθμός διαφορετικών τύπων DVD που περιέχει την ταινία. α Στο αποτέλεσμα να εμφανίζονται και οι ταινίες για τις οποίες δεν υπάρχει DVD: SELECT ΤΑΙΝΙΑ.Τίτλος, count(dvd.τύπος)as πλήθος FROM ΤΑΙΝΙΑ LEFT OUTER JOIN DVD ON DVD.IDΤαινίας = ΤΑΙΝΙΑ.ID GROUP BY ΤΑΙΝΙΑ.ID, ΤΑΙΝΙΑ.Τίτλος

15 Σύνθετα ύθ SQL ερωτήματα με δύο ή περισσότερες σχέσεις Να βρεθούν οι κωδικοί των DVD που είναι τύπου 3D και έχουν ενοικιασθεί περισσότερες ερες από όμαφορές μία φορές: SELECT DVD.ID FROM DVD INNER JOIN ΕΝΟΙΚΙΑΣΗ ON DVD.ID = ΕΝΟΙΚΙΑΣΗ.IDdvd WHERE DVD.Τύπος = 3D GROUP BY DVD.ID HAVING COUNT(*) > 1;

16 Σύνθετα Εμφωλευμένα SQL ερωτήματα Να βρεθούν οι τίτλοι των ταινιών που δεν έχουν ενοικιασθεί ποτέ (Να μην γίνει χρήση του outer join): SELECT Τίτλος FROM ΤΑΙΝΙΑ WHERE NOT EXISTS (SELECT DVD.IDΤαινίας FROM ΕΝΟΙΚΙΑΣΗ INNER JOIN DVD ON ΕΝΟΙΚΙΑΣΗ.IDdvd = DVD.ID WHERE IDΤαινίας = ΤΑΙΝΙΑ.ID);

17 Σύνθετα Εμφωλευμένα SQL ερωτήματα Για κάθε πελάτη (Επίθετο) να δοθεί το πλήθος των DVD που έχει ενοικιάσει του οποίου ο τύπος είναι 3D καθώς και ο τίτλος της ταινίας ξεκινά από το γράμμα R : SELECT ΠΕΛΑΤΗΣ.Επίθετο, COUNT(DVD.ID) AS 'Πλήθος FROM ΤΑΙΝΙΑ INNER JOIN DVD ON DVD.IDΤαινίας = ΤΑΙΝΙΑ.ID INNER JOIN ΕΝΟΙΚΙΑΣΗ ON ΕΝΟΙΚΙΑΣΗ.IDdvd = DVD.ID INNER JOIN ΠΕΛΑΤΗΣ ON ΠΕΛΑΤΗΣ.ID = ΕΝΟΙΚΙΑΣΗ.IDΠελάτη WHERE ΤΑΙΝΙΑ.Τίτλος LIKE 'R%' AND DVD.Τύπος='3D' GROUP BY ΠΕΛΑΤΗΣ.ID, ΠΕΛΑΤΗΣ.Επίθετο

18 Σύνθετα Εμφωλευμένα SQL ερωτήματα Να βρεθεί ο κωδικός και το επίθετο του πελάτη με το μεγαλύτερο αριθμό ενοικιάσεων: SELECT IDΠελάτη, ΠΕΛΑΤΗΣ.Επίθετο FROM ΠΕΛΑΤΗΣ INNER JOIN ΕΝΟΙΚΙΑΣΗ ON ΠΕΛΑΤΗΣ.ID = ΕΝΟΙΚΙΑΣΗ.IDΠελάτη GROUP BY IDΠελάτη, ΠΕΛΑΤΗΣ.Επίθετο HAVING COUNT(*) >= ALL ( SELECT COUNT(*) FROM ΕΝΟΙΚΙΑΣΗ GROUP BY IDΠελάτη )

19 Σύνθετα Εμφωλευμένα SQL ερωτήματα Να βρεθούν οι κωδικοί και οι τίτλοι των ταινιών στις οποίες έχει συμμετάσχει ο Alfred Hitchcock και έχουν ενοικιαστεί περισσότερες από δύοφορές: SELECT DVD.IDΤαινίας, ΤΑΙΝΙΑ.Τίτλος FROM ΤΑΙΝΙΑ INNER JOIN DVD ON ΤΑΙΝΙΑ.ID = DVD.IDΤαινίας INNER JOIN ΕΝΟΙΚΙΑΣΗ ON ΕΝΟΙΚΙΑΣΗ.IDdvd = DVD.ID WHERE DVD.IDΤαινίας IN (SELECT IDΤαινίας FROM ΤΣ INNER JOIN ΣΥΝΤΕΛΕΣΤΗΣ ON ΤΣ.IDΣυντελεστή = ΣΥΝΤΕΛΕΣΤΗΣ.ID WHERE ΣΥΝΤΕΛΕΣΤΗΣ.Όνομα = 'Alfred Hitchcock') GROUP BY DVD.IDΤαινίας, ΤΑΙΝΙΑ.Τίτλος HAVING COUNT(*) > 2

20 Σύνθετα Εμφωλευμένα SQL ερωτήματα Να βρεθεί το όνομα και ο κωδικός του συντελεστή που έχει τις περισσότερες συμμετοχές σε ταινίες συνολικά: Βρίσκουμε το πλήθος των συμμετοχών ανά συντελεστή Βρίσκουμε το όνομα του συντελεστή SELECT ID,Όνομα FROM ΣΥΝΤΕΛΕΣΤΗΣ WHERE ID IN (SELECT IDΣυντελεστή FROM ΤΣ GROUP BY IDΣυντελεστή HAVING COUNT(IDΤαινίας) >= ALL (SELECT COUNT(*) ) Βρίσκουμε το συντελεστή με το μεγαλύτερο πλήθος συμμετοχων FROM ΤΣ GROUP BY IDΣυντελεστή)

21 Σύνθετα Εμφωλευμένα SQL ερωτήματα Να βρεθεί ο κωδικός του DVD με τη δεύτερη μεγαλύτερη ποσότητα. Στο αποτέλεσμα να εμφανίζεται μόνο ο κωδικός αυτός. (Υπόδειξη: το DVD με τη δεύτερη μεγαλύτερη ποσότητα είναι αυτή που συμμετέχει στο top2 της κατάταξης ως προς την ποσότητα, αλλά δεν συμμετέχει στο top1.) CREATE VIEW T1 as (SELECT TOP 2 ID FROM DVD ORDER BY Ποσότητα desc) CREATE VIEW T2 as (SELECT TOP 1 ID From DVD ORDER BY Ποσότητα desc) SELECT ID DROP VIEW T1 FROM T2 T 2 WHERE ID NOT IN (SELECT ID FROM T1);