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

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

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


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

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

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

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

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


SQL Data Manipulation Language

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

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

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

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

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

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

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

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

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

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

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

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

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

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

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

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

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

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

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

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

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

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

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

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL

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

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL)

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

Βάσεις Δεδομένων. Ενότητα 7.1: Structured Query Language - 1 ο Μέρος. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

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

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

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

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

Βάσεις Δεδομένων Ι 8. Ερωτήματα (B) Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

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

Certified Data Base Designer (CDBD)

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

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

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

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

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

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

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

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

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

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

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης

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

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

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

PHP 3. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - SQL

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) ΤΕΙ ΔυτικήςΜακεδονίας

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2013

MOCϦϣΎϬϴϠϋϝϮμΤϟϢΗϊΟήϤϟ. USE northwind SELECT employeeid, lastname, firstname, title FROM employees GO


Query-by-Example (QBE)

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

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

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

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Κεφάλαιο 8 Εμφωλευμένα Ερωτήματα

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

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

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

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) Ενότητα Advanced Βάσεις Δεδομένων, Προχωρημένο Επίπεδο. Copyright 2013 ECDL Foundation Ref: SL_AM3_Syl2.

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

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

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο Εργαστηριακή Άσκηση 5 21/02/2012 Εισαγωγή στη SQL (μέρος 2ο) Η πέμπτη εργαστηριακή άσκηση έχει σαν στόχο την εξοικείωση των φοιτητών με τη γλώσσα SQL (Structured Query Language) τη πιο δημοφιλή γλώσσα για Σχεσιακά Συστήματα Διαχείρισης Βάσεων Δεδομένων. Βάση δεδομένων Για τις ανάγκες του εργαστηρίου θα χρησιμοποιηθεί η βάση δεδομένων Airport που υλοποιήθηκε στα προηγούμενα εργαστήρια. Airplane ModelNumber RegistrationNumber Capacity Airbus 319 A1 126 Airbus 320 A2 170 Flight FlightNumber From1 To1 DepartureDate DepartureTime ArrivalDate ArrivalTime RegistrationNumber CY312 Larnaca Athens 26/06/2006 10:15 26/06/2006 12:00 A2 CY337 Athens Larnaca 30/06/2006 18:50 30/06/2006 20:25 A1 Passenger GivenNames Surname EmailAddress Christina Nicolaou ch.nicolaou@gmail.com Maria Salpigidou marsal2@hotmail.com Booking EmailAddress marsal2@hotmail.com raimondo@yahoo.com FlightNumber CY337 CY312 1

Χρήση των συνθηκών LIKE, NOT LIKE Χρησιμοποιούνται όταν η σύγκριση συμβολοσειράς πρέπει να είναι πιο «ελεύθερη». Για παράδειγμα εάν επιθυμούμε να εντοπίσουμε επιβάτη το οποίου το επίθετο μπορεί να είναι Salpigides, Salpigidou, Salpigis, κτλ θα χρησιμοποιήσουμε το πιο κάτω ερώτημα: SELECT * FROM passenger WHERE Surname LIKE Salpi% Salpi% -> Η συμβολοσειρά ξεκινάει από Salpi %idou -> H συμβολοσειρά τελειώνει σε idou %alpi% -> Η συμβολοσειρά περιέχει το alpi Όρος DISTINCT, GROUP BY Ο όρος DISTINCT χρησιμοποιείται για την εξάλειψη των διπλών εγγραφών στα αποτελέσματα SELECT DISTINCT field Η συνάρτηση GROUP BY ταξινομεί τα δεδομένα σε ομάδες. Χρησιμοποιείται για να ομαδοποιήσει τα δεδομένα πριν την εφαρμογή της συνθήκης WHERE, ORDER BY κτλ. GROUP BY field1 Άσκηση 1: α) Εισαγωγή στον πίνακα Booking των πιο κάτω εγγραφών: EmailAddress FlightNumber raimondo@hotmail.com AP 5401 Rob.j@yahoo.com QR624 β) Εμφάνιση του ονόματος, επιθέτου και ηλεκτρονικής διεύθυνσης όλων των επιβατών που έχουν ταξιδέψει με τη πτήση AP 5401 ή QR624 SELECT GivenNames, Surname, EmailAddress From Passenger INNER JOIN Booking USING (EmailAddress) WHERE FlightNumber="AP 5401" OR FlightNumber="QR624" SELECT DISTINCT GivenNames, Surname, EmailAddress From Passenger INNER JOIN Booking USING (EmailAddress) WHERE FlightNumber="AP 5401" OR FlightNumber="QR624" SELECT GivenNames, Surname, EmailAddress From Passenger INNER JOIN Booking USING (EmailAddress) WHERE FlightNumber="AP 5401" OR FlightNumber="QR624" GROUP BY EmailAddress 2

Συναρτήσεις Συνάθροισης AVG ( ), MAX ( ), MIN ( ), SUM ( ), COUNT ( ) COUNT (field2) 1 GROUP BY fiedl2 Άσκηση 2: Εύρεση του αριθμού των αεροπλάνων ανά μοντέλο SELECT ModelNumber, COUNT(*) AS '# Airplanes' FROM Airplane GROUP BY ModelNumber Άσκηση 3: Εμφάνιση των στοιχείων του αεροπλάνου με την μεγαλύτερη χωρητικότητα SELECT ModelNumber, MAX(Capacity) AS Capacity FRΟΜ Airplane Άσκηση 4: Εμφάνιση του αριθμού αεροπλάνων και του μέγιστου αριθμού επιβατών που μπορεί να ταξιδέψει εάν ταξιδεύουν ταυτόχρονα όλα τα αεροπλάνα SELECT COUNT(RegistrationNumber) AS '# Airplanes', SUM(Capacity) AS '# passengers' FROM Airplane Χρήση του όρου HAVING Ο όρος HAVING χρησιμοποιείται για να εφαρμόσουμε επιπρόσθετο έλεγχο στη συνάθροιση των γραμμών. Ακολουθεί τον όρο GROUP BY., COUNT (*) GROUP BY field1 HAVING COUNT (*) > 5 Άσκηση 5: Εύρεση των μοντέλων αεροπλάνου για τα οποία υπάρχουν τουλάχιστον 2 καταχωρήσεις στο πίνακα airplane SELECT ModelNumber, COUNT (*) AS '# Airplanes' FROM Airplane GROUP BY ModelNumber HAVING COUNT (*) > 1 3

Φωλιασμένα ερωτήματα Φωλιασμένα ονομάζονται τα ερωτήματα που περιέχονται μέσα σε κάποιο άλλο. Εκτελείται πρώτα το φωλιασμένο και μετά το εξωτερικό ερώτημα. Άσκηση 6: Εύρεση του κωδικού πτήσης και της ώρας αναχώρησης για την πτήση που αναχώρησε πιο πρόσφατα SELECT FlightNumber, DepartureDate From Flight WHERE DepartureDate=(SELECT MAX(DepartureDate) FROM Flight) Άσκηση 7: Εμφάνιση της ηλεκτρονικής διεύθυνσης των επιβατών που ταξίδεψαν με τη τελευταία πτήση SELECT EmailAddress From Booking INNER JOIN Flight USING(FlightNumber) WHERE DepartureDate=(SELECT MAX(DepartureDate) FROM Flight) Τι αλλαγές πρέπει να κάνουμε για να συμπεριλάβουμε το όνομα και επίθετο των επιβατών στα αποτελέσματα; SELECT GivenNames, Surname, FlightNumber, DepartureDate FROM Passenger INNER JOIN Booking USING (EmailAddress) INNER JOIN Flight USING(FlightNumber) WHERE DepartureDate=(SELECT MAX(DepartureDate) FROM Flight) Τελεστές σύγκρισης συνόλων Οι τελεστές EXISTS, IN συνδυαζόμενοι επίσης με το NOT στην άρνηση τους αποτελούν παραδείγματα τελεστών για τη σύγκριση συνόλων. Στην ίδια κατηγορία εμπίπτουν και τα op ANY, op ALL όπου το op συμβολίζει ένα τελεστή από το σύνολο {<, <=, =, <>, >=, >}. Επίσης υποστηρίζεται και η συνιστώσα σύνταξης SOME η οποία είναι συνώνυμη του τελεστή ANY. WHERE field2 IN (SELECT ) WHERE field2 >ANY (SELECT ) WHERE EXISTS (SELECT ) 4

Άσκηση 8: Εύρεση των επιβατών που έχουν ταξιδέψει με πτήση που πραγματοποιήθηκε στις 10/07/2007 (2007-07-10) SELECT Surname FROM Passenger INNER JOIN Booking USING (EmailAddress) WHERE FlightNumber IN (SELECT FlightNumber FROM Flight WHERE DepartureDate='2007-07-10') Άσκηση 9: Εύρεση των επιβατών που δεν έχουν ταξιδέψει με πτήση που πραγματοποιήθηκε στις 10/07/2007 (2007-07- 10) SELECT DISTINCT Surname FROM Passenger INNER JOIN Booking USING (EmailAddress) WHERE FlightNumber NOT IN (SELECT FlightNumber FROM Flight WHERE DepartureDate='2007-07-10') Άσκηση 10: Στον πίνακα Airplane, στην εγγραφή με RegistrationNumber=A6, αλλάξετε το Capacity από 170 σε 180. Εύρεση των πτήσεων που έγιναν με αεροσκάφος που έχει χωρητικότητα μεγαλύτερη από αυτή που έχει τουλάχιστον ένα αεροσκάφος Airbus320 SELECT FlightNumber FROM Flight INNER JOIN Airplane USING (RegistrationNumber) WHERE Capacity > ANY (SELECT Capacity FROM Airplane WHERE ModelNumber="Airbus320") 1) Τι αποτελέσματα θα έχουμε εάν χρησιμοποιήσετε το τελεστή SOME αντί του τελεστή ANY; 2) Τι αποτελέσματα θα έχουμε εάν χρησιμοποιήσετε το τελεστή ALL αντί του τελεστή ANY; Άσκηση 11: Εμφάνιση των στοιχείων των επιβατών που βρισκόταν στην πτήση «CY312» SELECT t1.surname, t1.givennames FROM Passenger AS t1 WHERE EXISTS (SELECT * FROM Booking AS t2 WHERE FlightNumber='CY312' AND t1.emailaddress=t2.emailaddress) Εμφάνιση των στοιχείων των επιβατών που δεν βρίσκονταν στη πτήση «CY312» SELECT t1.surname, t1.givennames FROM Passenger AS t1 WHERE NOT EXISTS (SELECT * FROM Booking AS t2 WHERE FlightNumber='CY312' AND t1.emailaddress=t2.emailaddress) 5

Χρήση μεταβλητών Κάποιες τιμές που επιστρέφονται από ερωτήματα μπορούν να αποθηκευτούν σε μεταβλητές και να χρησιμοποιηθούν στη συνέχεια από μεταγενέστερα ερωτήματα. Το προηγούμενο αίτημα θα μπορούσε να υλοποιηθεί με δύο ερωτήματα χρησιμοποιώντας κάποια μεταβλητή SELECT @DATE:=MAX(DepartureDate) FROM Flight SELECT EmailAddress From Booking INNER JOIN Flight USING (FlightNumber) WHERE DepartureDate=@DATE 6