1
ΕθνικόΕθνικό ΜετσόβιοΜετσόβιο ΠολυτεχνείοΠολυτεχνείοΣχολήΣχολή ΑγρονόμωνΑγρονόμων ΤοπογράφωνΤοπογράφων ΜηχανικώνΜηχανικών
ΒάσειςΒάσεις ΔεδομένωνΔεδομένωνΒασίλειοςΒασίλειος ΒεσκούκηςΒεσκούκης
[email protected]@cs.ntua.gr
ΕισαγωγήΕισαγωγή στηστη γλώσσαγλώσσα SQL (SQL (μέροςμέρος 2)2)
Δρ. Βασίλειος Βεσκούκης
ΗΗ γλώσσαγλώσσα SQLSQL
ΗΗ γλώσσαγλώσσα SQL (Structured Query Language) SQL (Structured Query Language) Είναι μια δηλωτική γλώσσα δηλαδή περιγράφουμε τι θέλουμε κι όχι πώς θα τοαποκτήσουμεΜπορεί να ενσωματωθεί σε άλλες γλώσσες προγραμματισμού (embedded SQL)Οι λεπτομέρειες υλοποίησης είναι θέμα του ΣΔΒΔ
H SQL H SQL αποτελείταιαποτελείται απόαπό δύοδύο μέρημέρηγλώσσα ορισμού δεδομένων (Data Definition Language, DDL)
Δημιουργία πινάκων και ευρετηρίων
γλώσσα χειρισμού δεδομένων (Data Manipulation Language, DML)Εισαγωγή, διαγραφή, τροποποίηση των τιμών των πλειάδων ενός πίνακαΟριστική καταχώρηση ή ακύρωση των εργασιών που έγιναν στη ΒΔΕπιλογή εγγραφών από τη ΒΔ
2
Δρ. Βασίλειος Βεσκούκης
SELECTSELECT -- βασικήβασική μορφήμορφή εντολήςεντολής
SELECT SELECT [[DISTINCT] DISTINCT] A1, A2, ..., AnA1, A2, ..., AnFROM FROM r1, r2, ..., r1, r2, ..., rmrmWHEREWHERE PP
Τα Ai είναι τα πεδία που επιλέγονταιΤα ri είναι οι σχέσεις (πίνακες) από τις οποίες επιλέγονταιΗ P είναι μια συνθήκη την οποία πληρούν τα πεδία* όλα τα πεδία της σχέσης που αναφέρεται στο FROMDISTINCT παραλείπει τις διπλές εγγραφές(Η SQL δενδεν απαλείφει αυτόματα τις διπλοεγγραφές)
FROM FROM ……Αντιστοιχεί στην πράξη καρτεσιανού γινομένου της σχεσιακής άλγεβρας
WHERE WHERE ……Αντιστοιχεί στην πράξη επιλογής της σχεσιακής άλγεβραςΤελεστές συνθήκης
>, <, <>, >=, <=, = ισότηταςAND, NOT, OR λογικοίLIKE σύγκρισης συμβολοσειρώνIS [NOT] NULL αναζήτησης [μη] κενών τιμών
Δρ. Βασίλειος Βεσκούκης
SELECT SELECT -- βασικήβασική μορφήμορφή : : ΠαραδείγματαΠαραδείγματα
ΕστωΕστω ηη ΒΔΒΔTEACHERS
ΘΡΑΚΗΑΠΘΗΥΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ9
ΚΟΡΙΝΘΙΑΕΜΠΤΟΠΟΓΡΑΦΟΣΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ6
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΚΑΤΕΡΙΝΗΑΠΘΜΑΘΗΜΑΤΙΚΟΣΠΕΤΡΟΣΠΕΤΡΟΥ4
ΘΕΣΣΑΛΟΝΙΚΗΔΠΘΗΥΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ3
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
UNIVERSITIES
ΑΤΤΙΚΗ1003000ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΧΠΑ
ΑΤΤΙΚΗ100010000ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΕΜΠ
ΘΡΑΚΗ3895000ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΔΠΘ
ΘΕΣΣΑΛΟΝΙΚΗ4508900ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΑΠΘ
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
Υ4ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ201
Υ4ΒΔ200
Π2ΙΣΤΟΡΙΑ199
Υ3ΜΑΘΗΜΑΤΙΚΑ 1123
CTYPECHOURSCNAMECOURSEID
COURSES
2001-2002ΧΠΑ199
2000-2001ΧΠΑ199
1999-2000ΑΠΘ200
2002-2003ΑΠΘ200
2002-2003ΕΜΠ200
1999-2000ΕΜΠ200
1985-1986ΕΜΠ200
1991-1992ΔΠΘ123
1990-1991ΔΠΘ123
1982-1983ΕΜΠ123
1981-1982ΕΜΠ123
1980-1981ΕΜΠ123
YEARUNIVERSITYCOURSE
PROVIDED_BY
3
Δρ. Βασίλειος Βεσκούκης
SELECT SELECT -- βασικήβασική μορφήμορφή : : ΠαραδείγματαΠαραδείγματα
ΠοιαΠοια είναιείναι όλαόλα τατα στοιχείαστοιχεία όλωνόλων τωντων καθηγητώνκαθηγητών;;SELECT * FROM TEACHERS;
ΠοιοΠοιο είναιείναι τοτο όνομαόνομα, , τοτο επώνυμοεπώνυμο καικαι τοτο ίδρυμαίδρυμα όλωνόλων τωντων καθηγητώνκαθηγητών;;SELECT TFNAME, TLNAME, SCHOOL FROM TEACHERS;
ΘΡΑΚΗΑΠΘΗΥΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ9
ΚΟΡΙΝΘΙΑΕΜΠΤΟΠΟΓΡΑΦΟΣΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ6
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΚΑΤΕΡΙΝΗΑΠΘΜΑΘΗΜΑΤΙΚΟΣΠΕΤΡΟΣΠΕΤΡΟΥ4
ΘΕΣΣΑΛΟΝΙΚΗΔΠΘΗΥΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ3
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
ΑΠΘΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ
ΕΜΠΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ
ΕΜΠΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ
ΑΠΘΠΕΤΡΟΣΠΕΤΡΟΥ
ΔΠΘΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ
ΕΜΠΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ
ΕΜΠΑΝΔΡΕΟΥΑΝΔΡΕΑΣ
SCHOOLTLNAMETFNAME
Δρ. Βασίλειος Βεσκούκης
SELECT SELECT -- βασικήβασική μορφήμορφή : : ΠαραδείγματαΠαραδείγματα
ΠοιαΠοια είναιείναι όλαόλα τατα στοιχείαστοιχεία όλωνόλων τωντων καθηγητώνκαθηγητών τουτου ΕΜΠΕΜΠ;;SELECT * from TEACHERS where SCHOOL='ΕΜΠ';
ΠοιόΠοιό είναιείναι τοτο όνομαόνομα καικαι τοτο επώνυμοεπώνυμο όλωνόλων τωντων καθηγητώνκαθηγητών τουτου ΕΜΠΕΜΠ;;SELECT TFNAME, TLNAME from TEACHERS where SCHOOL='ΕΜΠ';
ΚΟΡΙΝΘΙΑΕΜΠΤΟΠΟΓΡΑΦΟΣΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ6
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
ΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ
ΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ
ΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ
ΑΝΔΡΕΟΥΑΝΔΡΕΑΣ
TLNAMETFNAME
4
Δρ. Βασίλειος Βεσκούκης
SELECT SELECT -- βασικήβασική μορφήμορφή : : ΠαραδείγματαΠαραδείγματα
ΠοιεςΠοιες ειδικότητεςειδικότητες καθηγητώνκαθηγητών υπάρχουνυπάρχουν;;SELECT DISTINCT EIDIKOTHTA FROM TEACHERS;
ΠοιαΠοια ΑΕΙΑΕΙ βρίσκονταιβρίσκονται στηνστην ΑττικήΑττική;;SELECT UCODE, UNAME FROM UNIVERSITIES WHERE LOCATION='ΑΤΤΙΚΗ';
ΠοιαΠοια προαιρετικάπροαιρετικά μαθήματαμαθήματα μπορούνμπορούν νανα διδαχθούνδιδαχθούν απόαπό όλουςόλους τουςτους καθηγητέςκαθηγητές;;SELECT * FROM TEACHERS, COURSES WHERE COURSES.CTYPE='Π';
ΦΥΣΙΚΟΣ
ΤΟΠΟΓΡΑΦΟΣ
ΜΑΘΗΜΑΤΙΚΟΣ
ΗΥ
EIDIKOTHTA
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΧΠΑ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΕΜΠ
UNAMEUCODE
Π2ΙΣΤΟΡΙΑ199ΘΡΑΚΗΑΠΘΗΥΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ9
Π2ΙΣΤΟΡΙΑ199ΚΟΡΙΝΘΙΑΕΜΠΤΟΠΟΓΡΑΦΟΣΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ6
Π2ΙΣΤΟΡΙΑ199ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
Π2ΙΣΤΟΡΙΑ199ΚΑΤΕΡΙΝΗΑΠΘΜΑΘΗΜΑΤΙΚΟΣΠΕΤΡΟΣΠΕΤΡΟΥ4
Π2ΙΣΤΟΡΙΑ199ΘΕΣΣΑΛΟΝΙΚΗΔΠΘΗΥΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ3
Π2ΙΣΤΟΡΙΑ199ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
Π2ΙΣΤΟΡΙΑ199ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
CTYPECHOURSCNAMECOURSEIDNOMOSSCHOOLEIDIKOTHTATLNAMETFNAMETEACHERID
Δρ. Βασίλειος Βεσκούκης
SELECT SELECT -- γενικήγενική μορφήμορφή
SELECTSELECT AA1, 1, AA2, ..., 2, ..., An ,An ,f(Af(A), ), FROMFROM rr1, 1, rr2, ..., 2, ..., rmrmWHEREWHERE PPGROUP BYGROUP BY AA1, 1, AA2, ..., 2, ..., AnAnHAVINGHAVING QQORDERORDER BYBY AAxx,.., A,.., Ayy [ASC | DESC][ASC | DESC]
ORDER BY: ORDER BY: ΤαξινόμησηΤαξινόμηση αποτελεσμάτωναποτελεσμάτων ωςως προςπρος τατα καθοριζόμενακαθοριζόμενα πεδίαπεδία κατάκατάσειράσειρά αύξουσααύξουσα ((ASCendingASCending) ) ήή φθίνουσαφθίνουσα ((DESCendingDESCending))
GROUP BY: GROUP BY: ΟμαδοποίησηΟμαδοποίηση αποτελεσμάτωναποτελεσμάτων καικαι εφαρμογήεφαρμογή τηςτης συνάρτησηςσυνάρτησης ff((AA) ) σεσεκάθεκάθε ομάδαομάδα χωριστάχωριστά. . ΗΗ πρότασηπρόταση havinghaving καθορίζεικαθορίζει μιαμια συνθήκησυνθήκη αναζήτησηςαναζήτησης γιαγια τιςτιςομάδεςομάδες
ΣυναρτήσειςΣυναρτήσεις συνάθροισηςσυνάθροισης ((aggregate functions)aggregate functions)AVG(A) μέσος όρος τιμών του ΑSUM(A) άθροισμα τιμών του ΑMIN(A) η ελάχιστη των τιμών του ΑMAX(A) η μέγιστη των τιμών του ΑCOUNT(A) το πλήθος των τιμών του Α
5
Δρ. Βασίλειος Βεσκούκης
SELECTSELECT: : παρατηρήσειςπαρατηρήσεις
ΕπιβεβαιώνεταιΕπιβεβαιώνεται οο δηλωτικόςδηλωτικός χαρακτήραςχαρακτήρας τηςτης SQLSQLΖητάμε αυτό που θέλουμεΜε τρόπο "σχεδόν" αντίστοιχο με φυσική γλώσσα (αγγλικά)Το σύστημα (DBMS) φροντίζει να λάβουμε τα αποτελέσματα
ΜιαΜια εντολήεντολή SELECT SELECT εκτελείταιεκτελείται πάνταπάντα πάνωπάνω σεσε σχέσειςσχέσεις ((πίνακεςπίνακες) ) οιοι οποίεςοποίες......Υπάρχουν ήδη στη βάση
SELECT * FROM UNIVERSITIES
Δημιουργούνται κατά την εκτέλεσηSELECT * FROM TEACHERS, COURSES
ΜιαΜια εντολήεντολή SELECT SELECT έχειέχει πάνταπάντα ωςως αποτέλεσμααποτέλεσμα μιαμια ΣΧΕΣΗΣΧΕΣΗSELECT UNAME FROM UNIVERSITIESSELECT UNAME FROM UNIVERSITIES WHERE UCODE='ΕΜΠ'SELECT Avg(CHOURS) FROM COURSES
Δρ. Βασίλειος Βεσκούκης
ΦωλιασμένεςΦωλιασμένες υποερωτήσειςυποερωτήσεις
ΦώλιασμαΦώλιασμαΗ σχέση πάνω στην οποία θα εκτελεστεί μια (απλή) εντολή SQL μπορεί να είναιαποτέλεσμα μιας άλλης απλής εντολής. Οι δύο εντολές αυτές μπορούν να δίνονται ως μία σύνθετη εντολή, όπου η μία(απλή) εντολή φωλιάζει μέσα στην άλλη.
SELECT * FROM TEACHERS WHERE SCHOOL='SELECT * FROM TEACHERS WHERE SCHOOL='ΕΜΠΕΜΠ''
ΚΟΡΙΝΘΙΑΕΜΠΤΟΠΟΓΡΑΦΟΣΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ6
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
ΘΡΑΚΗΑΠΘΗΥΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ9
ΚΟΡΙΝΘΙΑΕΜΠΤΟΠΟΓΡΑΦΟΣΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ6
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΚΑΤΕΡΙΝΗΑΠΘΜΑΘΗΜΑΤΙΚΟΣΠΕΤΡΟΣΠΕΤΡΟΥ4
ΘΕΣΣΑΛΟΝΙΚΗΔΠΘΗΥΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ3
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
TEACHERSΠΙΝΑΚΑΣ ΤΗΣ ΒΔ
ΑΠΟΤΕΛΕΣΜΑ ΤΗΣ SELECT
6
Δρ. Βασίλειος Βεσκούκης
ΦωλιασμένεςΦωλιασμένες υποερωτήσειςυποερωτήσεις
SELECTSELECT * * FROMFROM TEACHERS TEACHERS WHEREWHERE SCHOOL='SCHOOL='ΕΜΠΕΜΠ''
SELECTSELECT FNAME, LNAME FNAME, LNAME FROMFROM ((SELECTSELECT * * FROMFROM TEACHERS TEACHERS WHEREWHERE SCHOOL='SCHOOL='ΕΜΠΕΜΠ'') ) WHEREWHERE LOCATION='LOCATION='ΑΤΤΙΚΗΑΤΤΙΚΗ''
ΙσοδύναμοΙσοδύναμο ((ασφαλώςασφαλώς): ): SELECTSELECT FNAME, LNAME FNAME, LNAME FROMFROM TEACHERS TEACHERS WHEREWHERE SCHOOL='SCHOOL='ΕΜΠΕΜΠ'' ANDAND LOCATION='LOCATION='ΑΤΤΙΚΗΑΤΤΙΚΗ''
ΚΟΡΙΝΘΙΑΕΜΠΤΟΠΟΓΡΑΦΟΣΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ6
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
ΘΡΑΚΗΑΠΘΗΥΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ9
ΚΟΡΙΝΘΙΑΕΜΠΤΟΠΟΓΡΑΦΟΣΕΛΕΥΘΕΡΙΟΣΕΛΕΥΘΕΡΙΟΥ6
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΚΑΤΕΡΙΝΗΑΠΘΜΑΘΗΜΑΤΙΚΟΣΠΕΤΡΟΣΠΕΤΡΟΥ4
ΘΕΣΣΑΛΟΝΙΚΗΔΠΘΗΥΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ3
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
TEACHERSΠΙΝΑΚΑΣ ΤΗΣ ΒΔ
ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΤΟΥΠΕΔΙΟΥ ΕΦΑΡΜΟΓΗΣΤΗΣ SELECT
ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΤΟΥΠΕΔΙΟΥ ΕΦΑΡΜΟΓΗΣΤΗΣ SELECT
Δρ. Βασίλειος Βεσκούκης
ΦωλιασμένεςΦωλιασμένες υποερωτήσειςυποερωτήσεις
ΧρησιμοποιούνταιΧρησιμοποιούνται γιαγιατη σύγκριση συνόλωντον έλεγχο αριθμού στοιχείων συνόλωντον έλεγχο της κατάστασης μέλους στοιχείων σε σύνολα
ΤελεστέςΤελεστές πράξεωνπράξεων συνόλωνσυνόλων (1)(1)
Ε είναι μια υποερώτηση SQL
Έλεγχος μη ύπαρξης απαντήσεων στην υποερώτηση Ε. Επιστρέφει ‘ΑΛΗΘΕΣ’ αν δεν υπάρχει καμία απάντηση στηνυποερώτηση Ε.
ΝΟΤ EXISTS (Ε)
Έλεγχος ύπαρξης απαντήσεων στην υποερώτηση Ε. Επιστρέφει ‘ΑΛΗΘΕΣ’ αν υπάρχει έστω και μια απάντησηστην υποερώτηση Ε.
EXISTS (Ε)
Έλεγχος κατάστασης μη μέλους στοιχείων. Επιστρέφει ‘ΑΛΗΘΕΣ’ για εκείνα τα στοιχεία του Α που δενείναι μέλη στο σύνολο αποτελεσμάτων της Ε.
ΝΟΤ ΙΝ (Ε)
Έλεγχος κατάστασης μέλους στοιχείων. Επιστρέφει ‘ΑΛΗΘΕΣ’ για εκείνα τα στοιχεία που είναι μέληστο σύνολο αποτελεσμάτων της Ε.
ΙΝ (Ε)
7
Δρ. Βασίλειος Βεσκούκης
ΦωλιασμένεςΦωλιασμένες υποερωτήσειςυποερωτήσεις
ΤελεστέςΤελεστές πράξεωνπράξεων συνόλωνσυνόλων (2)(2)
ΔιαφοράΔιαφοράEXCEPTEXCEPT
ΈλεγχοςΈλεγχος υποσυνόλουυποσυνόλου. . ΕπιστρέφειΕπιστρέφει ‘‘ΑΛΗΘΕΣΑΛΗΘΕΣ’’ αναν τοτο σύνολοσύνολοστοιχείωνστοιχείων είναιείναι υποσύνολουποσύνολο τουτου συνόλουσυνόλου αποτελεσμάτωναποτελεσμάτωντηςτης υποερώτησηςυποερώτησης ΕΕ. .
CONTAINSCONTAINS
ΤομήΤομήINTERSECTINTERSECT
ΈνωσηΈνωσηUNIONUNION
ΈλεγχοςΈλεγχος ύπαρξηςύπαρξης διπλώνδιπλών εγγραφώνεγγραφών τοτο αποτέλεσμααποτέλεσμα τηςτης ΕΕ. . ΕπιστρέφειΕπιστρέφει αληθέςαληθές αναν δενδεν υπάρχουνυπάρχουν διπλέςδιπλές εγγραφέςεγγραφές
UNIQUE (UNIQUE (ΕΕ))
ΈλεγχοςΈλεγχος αναν τατα στοιχείαστοιχεία είναιείναι (>,<,<>,>=,<=,=) (>,<,<>,>=,<=,=) απόαπό κάποιοκάποιο//έναένατουλάχιστοντουλάχιστον απόαπό τατα στοιχείαστοιχεία τουτου συνόλουσυνόλου αποτελεσμάτωναποτελεσμάτωντηςτης ΕΕ. . ΕπιστρέφειΕπιστρέφει ‘‘ΑΛΗΘΕΣΑΛΗΘΕΣ’’ γιαγια εκείναεκείνα τατα στοιχείαστοιχεία πουπουικανοποιούνικανοποιούν τηντην παραπάνωπαραπάνω συνθήκησυνθήκη. .
(>,<,<>,>=,<=,=) (>,<,<>,>=,<=,=) ANYANY ((ΕΕ) )
ΈλεγχοςΈλεγχος αναν τατα στοιχείαστοιχεία είναιείναι (>,<,<>,>=,<=,=) (>,<,<>,>=,<=,=) απόαπό όλαόλα ταταστοιχείαστοιχεία τουτου συνόλουσυνόλου αποτελεσμάτωναποτελεσμάτων τηςτης ΕΕ. . ΕπιστρέφειΕπιστρέφει‘‘ΑΛΗΘΕΣΑΛΗΘΕΣ’’ γιαγια εκείναεκείνα τατα στοιχείαστοιχεία πουπου ικανοποιούνικανοποιούν τηντηνπαραπάνωπαραπάνω συνθήκησυνθήκη. .
(>,<,<>,>=,<=,=) (>,<,<>,>=,<=,=) ALLALL ((ΕΕ) )
Δρ. Βασίλειος Βεσκούκης
ΑλλοΑλλο έναένα παράδειγμαπαράδειγμα
ΕναΕνα τμήματμήμα μιαςμιας τραπεζικήςτραπεζικής ΒΔΒΔ
8
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φωλιασμένωνφωλιασμένων ερωτήσεωνερωτήσεων
ΠοιοιΠοιοι πελάτεςπελάτες έχουνέχουν καικαι λογαριασμόλογαριασμό καικαι δάνειοδάνειο στηνστην τράπεζατράπεζα;;select distinct customer-namefrom borrowerwhere customer-name in (select customer-name
from depositor)
ΠοιοιΠοιοι πελάτεςπελάτες έχουνέχουν δάνειοδάνειο, , αλλάαλλά δενδεν έχουνέχουν λογαριασμόλογαριασμό στηνστην τράπεζατράπεζα;;select distinct customer-namefrom borrowerwhere customer-name not in (select customer-name
from depositor)
ΒρεςΒρες τατα ονόματαονόματα όλωνόλων τωντων καταστημάτωνκαταστημάτων πουπου έχουνέχουν μεγαλύτεραμεγαλύτερα περιουσιακάπεριουσιακάστοιχείαστοιχεία (assets)(assets) απόαπό όλαόλα τατα καταστήματακαταστήματα τηςτης ΗλιούποληςΗλιούπολης
select branch-namefrom branchwhere assets > all
(select assets from branchwhere branch-city = 'Ηλιούπολη')
Δρ. Βασίλειος Βεσκούκης
ΦυσικήΦυσική σύνδεσησύνδεση ((natural join) natural join) στηνστην SQLSQL
ΤρόποςΤρόπος 1 1 Απλή μορφή
select A1, A2, ..., Anfrom (r1 inner join r2 on r1.X = r2.X)
Γενική μορφήselect A1, A2, ..., Anfrom (…(r1 inner join r2 on r1.X = r2.X) ... inner join rm on rm-1.Y = rm.Y)
ΤρόποςΤρόπος 22Απλή μορφή
select A1, A2, ..., Anfrom r1, r2, ..., rmwhere r1.X = r2.X and … and rm-1.Y = rm.Y
Γενική μορφήselect A1, A2, ..., Anfrom r1, r2, ..., rmwhere r1.X = r2.X and … and rm-1.Y = rm.Y
9
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΒρεςΒρες όλουςόλους τουςτους πελάτεςπελάτες πουπου έχουνέχουν δάνειοδάνειο καικαι τατα καταστήματακαταστήματα μεμε τατα οποίαοποία τοτοέχουνέχουν συνάψεισυνάψει
ΤρόποςΤρόπος 22select customer-name, branch-namefrom loan,borrowerwhere loan.loan-number = borrower.loan-number
ΤρόποςΤρόπος 11select customer-name, branch-namefrom loan inner join borrower on loan.loan-number = borrower.loan-number
Δρ. Βασίλειος Βεσκούκης
COURSES
TEACHERS
UNIVERSITIES
COURSES PROVIDED_BY
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΜιαΜια γνωστήγνωστή μαςμας ΒΔΒΔNOMOSSCHOOLEIDIKOTHTATLNAMETFNAMETEACHERID
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
CTYPECHOURSCNAMECOURSEID YEARUNIVERSITYCOURSE
TEACHERS
ΘΡΑΚΗΑΠΘΗΥΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ9
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΘΕΣΣΑΛΟΝΙΚΗΔΠΘΗΥΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ3
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
UNIVERSITIES
ΑΤΤΙΚΗ1003000ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΧΠΑ
ΑΤΤΙΚΗ100010000ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΕΜΠ
ΘΡΑΚΗ3895000ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΔΠΘ
ΘΕΣΣΑΛΟΝΙΚΗ4508900ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΑΠΘ
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
Υ4ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ201
Υ4ΒΔ200
Π2ΙΣΤΟΡΙΑ199
Υ3ΜΑΘΗΜΑΤΙΚΑ 1123
CTYPECHOURSCNAMECOURSEID
2001-2002ΧΠΑ199
2000-2001ΧΠΑ199
1999-2000ΑΠΘ200
2002-2003ΑΠΘ200
2002-2003ΕΜΠ200
1991-1992ΔΠΘ123
1990-1991ΔΠΘ123
1982-1983ΕΜΠ123
1981-1982ΕΜΠ123
1980-1981ΕΜΠ123
YEARUNIVERSITYCOURSE
PROVIDED_BY
10
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΠοιοΠοιο είναιείναι τοτο ονοματεπώνυμοονοματεπώνυμο καικαι τοτο πλήρεςπλήρες όνομαόνομα τουτου πανεπιστημίουπανεπιστημίου όπουόπουυπηρετούνυπηρετούν όλοιόλοι οιοι καθηγητέςκαθηγητές;;
TEACHERS
ΘΡΑΚΗΑΠΘΗΥΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ9
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΘΕΣΣΑΛΟΝΙΚΗΔΠΘΗΥΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ3
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
UNIVERSITIES
ΑΤΤΙΚΗ1003000ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΧΠΑ
ΑΤΤΙΚΗ100010000ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΕΜΠ
ΘΡΑΚΗ3895000ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΔΠΘ
ΘΕΣΣΑΛΟΝΙΚΗ4508900ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΑΠΘ
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
.........
ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΑΝΔΡΕΟΥΑΝΔΡΕΑΣ
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΕκδοχήΕκδοχή 11SELECT TEACHERS.TFNAME, TEACHERS.TLNAME, UNIVERSITIES.UNAME FROM TEACHERS, UNIVERSITIES
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΑΝΔΡΕΟΥΑΝΔΡΕΑΣ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ
ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ
ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ
ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ
ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ
ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΑΝΔΡΕΟΥΑΝΔΡΕΑΣ
UNAMETLNAMETFNAME
11
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΕκδοχήΕκδοχή 22 ((ΣωστήΣωστή!)!)SELECT TEACHERS.TFNAME, TEACHERS.TLNAME, UNIVERSITIES.UNAME FROM TEACHERS, UNIVERSITIES WHERE TEACHERS.SCHOOL=UNIVERSITIES.UCODE;
TEACHERS
ΘΡΑΚΗΑΠΘΗΥΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ9
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΘΕΣΣΑΛΟΝΙΚΗΔΠΘΗΥΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ3
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
UNIVERSITIES
ΑΤΤΙΚΗ1003000ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΧΠΑ
ΑΤΤΙΚΗ100010000ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΕΜΠ
ΘΡΑΚΗ3895000ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΔΠΘ
ΘΕΣΣΑΛΟΝΙΚΗ4508900ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟΘΕΣΣΑΛΟΝΙΚΗΣ
ΑΠΘ
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ
ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΑΝΔΡΕΟΥΑΝΔΡΕΑΣ
UNAMETLNAMETFNAME
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΕκδοχήΕκδοχή 3 (3 (ΙσοδύναμηΙσοδύναμη))SELECT TEACHERS.TFNAME, TEACHERS.TLNAME, UNIVERSITIES.UNAMEFROM TEACHERS INNER JOIN UNIVERSITIES
ON TEACHERS.SCHOOL=UNIVERSITIES.UCODE;TEACHERS
ΘΡΑΚΗΑΠΘΗΥΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ9
ΑΤΤΙΚΗΕΜΠΗΥΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ5
ΘΕΣΣΑΛΟΝΙΚΗΔΠΘΗΥΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ3
ΒΟΙΩΤΙΑΕΜΠΜΑΘΗΜΑΤΙΚΟΣΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ2
ΑΤΤΙΚΗΕΜΠΦΥΣΙΚΟΣΑΝΔΡΕΟΥΑΝΔΡΕΑΣ1
NOMOSSCHOOLEIDIKOTHTAFLNAMETFNAMETEACHERID
UNIVERSITIES
ΑΤΤΙΚΗ1003000ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΧΠΑ
ΑΤΤΙΚΗ100010000ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΕΜΠ
ΘΡΑΚΗ3895000ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΔΠΘ
ΘΕΣΣΑΛΟΝΙΚΗ4508900ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟΘΕΣΣΑΛΟΝΙΚΗΣ
ΑΠΘ
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΠΑΝΑΓΙΩΤΗΣΠΑΝΑΓΙΩΤΟΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΔΗΜΗΤΡΙΟΣΔΗΜΗΤΡΙΟΥ
ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΒΑΣΙΛΕΙΟΥΒΑΣΙΛΕΙΟΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΓΕΩΡΓΙΟΥΓΕΩΡΓΙΟΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΑΝΔΡΕΟΥΑΝΔΡΕΑΣ
UNAMETLNAMETFNAME
12
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΣεΣε ποιαποια πανεπιστήμιαπανεπιστήμια διδάσκεταιδιδάσκεται τοτο μάθημαμάθημα ""ΒάσειςΒάσεις ΔεδομένωνΔεδομένων";";COURSES
UNIVERSITIES
ΑΤΤΙΚΗ1003000ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΧΠΑ
ΑΤΤΙΚΗ100010000ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΕΜΠ
ΘΡΑΚΗ3895000ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣΔΠΘ
ΘΕΣΣΑΛΟΝΙΚΗ4508900ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣΑΠΘ
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
Υ4ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ201
Υ4ΒΔ200
Π2ΙΣΤΟΡΙΑ199
Υ3ΜΑΘΗΜΑΤΙΚΑ 1123
CTYPECHOURSCNAMECOURSEID
2001-2002ΧΠΑ199
2000-2001ΧΠΑ199
1999-2000ΑΠΘ200
2002-2003ΑΠΘ200
2002-2003ΕΜΠ200
1991-1992ΔΠΘ123
1990-1991ΔΠΘ123
1982-1983ΕΜΠ123
1981-1982ΕΜΠ123
1980-1981ΕΜΠ123
YEARUNIVERSITYCOURSE
PROVIDED_BY
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΕκδοχήΕκδοχή 11SELECT UNIVERSITIES.UNAMEFROM UNIVERSITIES, COURSES, PROVIDED_BYWHERE COURSES.COURSEID=200AND PROVIDED_BY.COURSE=COURSES.COURSEIDAND UNIVERSITIES.UCODE=PROVIDED_BY.UNIVERSITY
UNIVERSITIES
COURSES PROVIDED_BY
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
CTYPECHOURSCNAMECOURSEID YEARUNIVERSITYCOURSE
ΕΠΙΛΟΓΗ
ΣΥΝΔΕΣΗ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
13
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΕκδοχήΕκδοχή 11 ((τελικότελικό))SELECT DISTINCT UNIVERSITIES.UNAMEFROM UNIVERSITIES, COURSES, PROVIDED_BYWHERE COURSES.COURSEID=200AND PROVIDED_BY.COURSE=COURSES.COURSEIDAND UNIVERSITIES.UCODE=PROVIDED_BY.UNIVERSITY
UNIVERSITIES
COURSES PROVIDED_BY
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
CTYPECHOURSCNAMECOURSEID YEARUNIVERSITYCOURSE
ΕΠΙΛΟΓΗ
ΣΥΝΔΕΣΗ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΕκδοχήΕκδοχή 22SELECT DISTINCT UNIVERSITIES.UNAMEFROM
(PROVIDED_BY INNER JOIN COURSES ON PROVIDED_BY.COURSE=COURSES.COURSEID)
INNER JOIN UNIVERSITIES ON PROVIDED_BY.UNIVERSITY=UNIVERSITIES.UCODE
WHERE COURSES.COURSEID=200;
UNIVERSITIES
COURSES PROVIDED_BY
LOCATIONUSTAFFUSTUDENTSUNAMEUCODE
CTYPECHOURSCNAMECOURSEID YEARUNIVERSITYCOURSE
ΕΠΙΛΟΓΗ
ΣΥΝΔΕΣΗ
14
Δρ. Βασίλειος Βεσκούκης
ΠαραδείγματαΠαραδείγματα φυσικήςφυσικής σύνδεσηςσύνδεσης στηνστην SQLSQL
ΝαΝα υπολογιστείυπολογιστεί τοτο άθροισμαάθροισμα τωντων εβδομαδιαίωνεβδομαδιαίων ωρώνωρών τωντων μαθημάτωνμαθημάτων πουπου έχουνέχουνδιδαχτείδιδαχτεί στοστο ΕΜΠΕΜΠ
SELECT SUM(COURSES.CHOURS) AS TOTALHOURSFROM COURSES, PROVIDED_BYWHERE PROVIDED_BY.UNIVERSITY='ΕΜΠ'
ΚαιΚαι τοτο σωστόσωστό::SELECT SUM(COURSES.CHOURS) AS TOTALHOURSFROM COURSES, PROVIDED_BYWHERE COURSES.COURSEID=PROVIDED_BY.COURSEAND PROVIDED_BY.UNIVERSITY='ΕΜΠ'
ΑκόμηΑκόμη καλύτερακαλύτερα::SELECT SUM(COURSES.CHOURS) AS TOTALHOURSFROM COURSES INNER JOIN PROVIDED_BY ONCOURSES.COURSEID=PROVIDED_BY.COURSEWHERE PROVIDED_BY.UNIVERSITY='ΕΜΠ';
COURSES
Υ4ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ201
Υ4ΒΔ200
Π2ΙΣΤΟΡΙΑ199
Υ3ΜΑΘΗΜΑΤΙΚΑ 1123
CTYPECHOURSCNAMECOURSEID
2001-2002ΧΠΑ199
2000-2001ΧΠΑ199
1999-2000ΑΠΘ200
2002-2003ΑΠΘ200
2002-2003ΕΜΠ200
1991-1992ΔΠΘ123
1990-1991ΔΠΘ123
1982-1983ΕΜΠ123
1981-1982ΕΜΠ123
1980-1981ΕΜΠ123
YEARUNIVERSITYCOURSE
PROVIDED_BY
52
TOTALHOURS
13
TOTALHOURS
Δρ. Βασίλειος Βεσκούκης
ΚατασκευάζονταςΚατασκευάζοντας εντολέςεντολές SQL SQL πουπου περιέχουνπεριέχουν συνδέσειςσυνδέσεις……
ΓιαΓια νανα γράψουμεγράψουμε σωστέςσωστές εντολέςεντολές πουπου επιστρέφουνεπιστρέφουν στοιχείαστοιχεία απόαπό περισσότερουςπερισσότερουςτουτου ενόςενός πίνακεςπίνακες, , καλόκαλό είναιείναι νανα έχουμεέχουμε::Το διάγραμμα οντοτήτων – συσχετίσεων της ΒΔΤο σχεσιακό σχήμα της ΒΔ (πίνακες με σημειωμένα τα κύρια και τα ξένακλειδιά)
ΠαίρνουμεΠαίρνουμε τηντην ερώτησηερώτηση ((σεσε φυσικήφυσική γλώσσαγλώσσα) ) γιαγια τηντην οποίαοποία θέλουμεθέλουμε νανακατασκευάσουμεκατασκευάσουμε SQL SQL καικαι κάνουμεκάνουμε τατα εξήςεξής::
A. Εντοπίζουμε ποια είναι τα πεδία που θα περιέχονται στον πίνακα-αποτέλεσμαB. Εντοπίζουμε ποια είναι τα πεδία που αποτελούν κριτήρια για την επιλογήC. Εντοπίζουμε σε ποιους πίνακες βρίσκονται τα προηγούμενα πεδία
ΠαρατηρούμεΠαρατηρούμε ότιότιΤα πεδία του (A) είναι η λίστα που ακολουθεί τη λέξη SELECTΤα πεδία του (Β) είναι το πρώτο μέρος της λογικής έκφρασης που ακολουθεί τοWHΕREΟι πίνακες του (C) είναι αυτό που ακολουθεί το FROMΗ σύνδεση των πινάκων του (C) μέσω λογικών εκφράσεων ισότητας μεταξύκυρίων και ξένων κλειδιών είναι το δεύτερο μέρος της λογικής έκφρασης πουακολουθεί το WHERE
15
Δρ. Βασίλειος Βεσκούκης
SQL SQL μεμε σωστέςσωστές συνδέσειςσυνδέσεις (1)(1)
ΕρώτησηΕρώτηση ((σεσε φυσικήφυσική γλώσσαγλώσσα):):Ποιο είναι το ονοματεπώνυμο και η αρχή έκδοσης ταυτότητας όσων εξέδωσαντην ταυτότητά τους την 1.3.2004 ;
ΠεδίαΠεδία στονστον πίνακαπίνακα αποτέλεσμααποτέλεσμαΦΠ.ΕΠΩΝΥΜΟ, ΦΠ.ΟΝΟΜΑ, Τ.ΑΡΧΗ
ΠεδίαΠεδία--κριτήριακριτήριαΤ.ΗΜΕΡΟΜΗΝΙΑ=‘1.3.2004’
ΠΙΝΑΚΕΣΠΙΝΑΚΕΣΦΥΣΙΚΟ ΠΡΟΣΩΠΟ (ΦΠ), ΤΑΥΤΟΤΗΤΑ (Τ) : ΦΠ.DNA=T.DNA
ΦΥΣΙΚΟΠΡΟΣΩΠΟ ΤΑΥΤΟΠΟΙΗΣΗ
1 ΔΕΛΤΙΟΤΑΥΤΟΤΗΤΑΣ
1DNA
ONOMA
ΕΠΩΝΥΜΟ
ΑΔΤ
ΑΡΧΗ
ΗΜ/ΝΙΑ
ΦΥΣΙΚΟ ΠΡΟΣΩΠΟ ΤΑΥΤΟΤΗΤΑΕΠΩΝΥΜΟΟΝΟΜΑDNA ΗΜΕΡΟΜΗΝΙΑ DNA(FK)ΑΡΧΗΑΔΤ
Δρ. Βασίλειος Βεσκούκης
SQL SQL μεμε σωστέςσωστές συνδέσειςσυνδέσεις (1)(1)
SELECT (SELECT (πεδίαπεδία πουπου περιέχονταιπεριέχονται στοστο αποτέλεσμααποτέλεσμα))FROM (FROM (πίνακεςπίνακες πουπου συμμετέχουνσυμμετέχουν))WHERE (WHERE (κριτήριακριτήρια) ) AND (AND (ισότηταισότητα κλειδιώνκλειδιών γιαγια συνδέσειςσυνδέσεις))**
ΗΗ ζητούμενηζητούμενη εντολήεντολή SQLSQL
SELECT SELECT ΦΠΦΠ..ΕΠΩΝΥΜΟΕΠΩΝΥΜΟ, , ΦΠΦΠ..ΟΝΟΜΑΟΝΟΜΑ, , ΤΤ..ΑΡΧΗΑΡΧΗ
FROM FROM ΦΠΦΠ, , ΤΤ
WHERE WHERE T.T.ΗΜΕΡΟΜΗΝΙΑΗΜΕΡΟΜΗΝΙΑ==‘‘1.3.20041.3.2004’’ AND AND ΦΠΦΠ..DNA=T.DNA(FK)DNA=T.DNA(FK)
ΦΥΣΙΚΟ ΠΡΟΣΩΠΟ ΤΑΥΤΟΤΗΤΑΕΠΩΝΥΜΟΟΝΟΜΑDNA ΗΜΕΡΟΜΗΝΙΑ DNA(FK)ΑΡΧΗΑΔΤ
16
Δρ. Βασίλειος Βεσκούκης
SQL SQL μεμε σωστέςσωστές συνδέσειςσυνδέσεις (2)(2)
ΕρώτησηΕρώτηση ((σεσε φυσικήφυσική γλώσσαγλώσσα):):Ποιες είναι οι περιγραφές των υπηρεσιών που έχει ζητήσει ο κάτοχος τουτηλεφώνου 6944332211 ;
ΠεδίαΠεδία στονστον πίνακαπίνακα αποτέλεσμααποτέλεσμαΥΠ.ΠΕΡΙΓΡΑΦΗ
ΠεδίαΠεδία--κριτήριακριτήριαΑΙΤΗΣΗ.ΑΡ_ΤΗΛ=‘6944332211’
ΠΙΝΑΚΕΣΠΙΝΑΚΕΣΥΠΗΡΕΣΙΑ (ΥΠ), ΑΙΤΗΣΗ : ΥΠ.ΚΩΔ=ΑΙΤΗΣΗ.ΥΠΗΡΕΣΙΑ
ΚΑΤΗΓΟΡΙΑΥΠΗΡΕΣΙΩΝ ΓΙΝΟΝΤΑΙ
ΝΑΙΤΗΣΕΙΣ
1ΚΩΔ
ΠΕΡΙΓΡΑΦΗ
ΘΕΣΗ
ΑΡ ΤΗΛ
TIMESTAMP
ΥΠΗΡΕΣΙΑ ΑΙΤΗΣΗΠΕΡΙΓΡΑΦΗΚΩΔ ΘΕΣΗ ΥΠΗΡΕΣΙΑ(FK)TIMESTAMPΑΡ_ΤΗΛ.
Δρ. Βασίλειος Βεσκούκης
SQL SQL μεμε σωστέςσωστές συνδέσειςσυνδέσεις (2)(2)
SELECT (SELECT (πεδίαπεδία πουπου περιέχονταιπεριέχονται στοστο αποτέλεσμααποτέλεσμα))FROM (FROM (πίνακεςπίνακες πουπου συμμετέχουνσυμμετέχουν))WHERE (WHERE (κριτήριακριτήρια) ) AND (AND (ισότηταισότητα κλειδιώνκλειδιών γιαγια συνδέσειςσυνδέσεις))**
ΗΗ ζητούμενηζητούμενη εντολήεντολή SQLSQL
SELECT SELECT ΥΠΥΠ..ΠΕΡΙΓΡΑΦΗΠΕΡΙΓΡΑΦΗ
FROM FROM ΥΠΥΠ, , ΑΙΤΗΣΗΑΙΤΗΣΗ
WHERE WHERE ΑΙΤΗΣΗΑΙΤΗΣΗ..ΑΡΑΡ__ΤΗΛΤΗΛ==‘‘69443322116944332211’’ ANDAND ΥΠΥΠ..ΚΩΔΙΚΟΣΚΩΔΙΚΟΣ==ΑΙΤΗΣΗΑΙΤΗΣΗ..ΥΠΗΡΕΣΙΑΥΠΗΡΕΣΙΑ(FK)(FK)
ΥΠΗΡΕΣΙΑ ΑΙΤΗΣΗΠΕΡΙΓΡΑΦΗΚΩΔ ΘΕΣΗ ΥΠΗΡΕΣΙΑ(FK)TIMESTAMPΑΡ_ΤΗΛ.
17
Δρ. Βασίλειος Βεσκούκης
ΙΔΙΟΚΤΗΣΙΑ
SQL SQL μεμε σωστέςσωστές συνδέσειςσυνδέσεις (3)(3)
ΕρώτησηΕρώτηση ((σεσε φυσικήφυσική γλώσσαγλώσσα):):Ποιες είναι οι χρήσεις των γεωτεμαχίων που κατέχει ο κ. Ανδρέου Ανδρέας ;
ΠεδίαΠεδία στονστον πίνακαπίνακα αποτέλεσμααποτέλεσμαΓΕΩΤΕΜΑΧΙΟ.ΧΡΗΣΗ
ΠεδίαΠεδία--κριτήριακριτήριαΔΙΚΑΙΟΥΧΟΣ.ΟΝΟΜΑΤΕΠΩΝΥΜΟ=‘Ανδρέου Ανδρέας’
ΠΙΝΑΚΕΣΠΙΝΑΚΕΣΔΙΚΑΙΟΥΧΟΣ(Δ), ΙΔΙΟΚΤΗΣΙΑ(ΙΔ), ΓΕΩΤΕΜΑΧΙΟ(ΓΤ) : Δ.ΚΩΔ=ΙΔ.ΙΔΙΟΚΤΗΤΗΣ(FK) και ΙΔ.ΓΕΩΤΕΜΑΧΙΟ(FK)=ΓΤ.ΚΑΕΚ
ΔΙΚΑΙΟΥΧΟΣ ΙΔΙΟΚΤΗΣΙΑΝ
ΓΕΩΤΕΜΑΧΙΟΜΚΩΔ
ΟΝΟΜΑΤΕΠΩΝΥΜΟ
ΚΑΕΚ
ΧΡΗΣΗ
ΕΜΒΑΔΟ
ΔΙΚΑΙΟΥΧΟΣ ΓΕΩΤΕΜΑΧΙΟΟΝΟΜΑΤΕΠΩΝΥΜΟΚΩΔ ΧΡΗΣΗ ΕΜΒΑΔΟΚΑΕΚΓΕΩΤΕΜΑΧΙΟ(FK)ΙΔΙΟΚΤΗΤΗΣ(FK)
Δρ. Βασίλειος Βεσκούκης
SQL SQL μεμε σωστέςσωστές συνδέσειςσυνδέσεις (3)(3)
SELECT (SELECT (πεδίαπεδία πουπου περιέχονταιπεριέχονται στοστο αποτέλεσμααποτέλεσμα))FROM (FROM (πίνακεςπίνακες πουπου συμμετέχουνσυμμετέχουν))WHERE (WHERE (κριτήριακριτήρια) ) AND (AND (ισότηταισότητα κλειδιώνκλειδιών γιαγια συνδέσειςσυνδέσεις))**
ΗΗ ζητούμενηζητούμενη εντολήεντολή SQLSQL
SELECT SELECT ΓΤΓΤ..ΧΡΗΣΗΧΡΗΣΗ
FROM FROM ΔΔ, , ΙΔΙΔ, , ΓΤΓΤ
WHERE WHERE ΔΔ..ΟΝΟΜΑΤΕΠΩΝΥΜΟΟΝΟΜΑΤΕΠΩΝΥΜΟ==‘‘ΑνδρέουΑνδρέου ΑνδρέαςΑνδρέας’’AND AND ΔΔ..ΚΩΔΚΩΔ==ΙΔΙΔ..ΙΔΙΟΚΤΗΤΗΣΙΔΙΟΚΤΗΤΗΣ((FK)FK)AND AND ΙΔΙΔ..ΓΕΩΤΕΜΑΧΙΟΓΕΩΤΕΜΑΧΙΟ((FK)=FK)=ΓΤΓΤ..ΚΑΕΚΚΑΕΚ
ΙΔΙΟΚΤΗΣΙΑΔΙΚΑΙΟΥΧΟΣ ΓΕΩΤΕΜΑΧΙΟΟΝΟΜΑΤΕΠΩΝΥΜΟΚΩΔ ΧΡΗΣΗ ΕΜΒΑΔΟΚΑΕΚΓΕΩΤΕΜΑΧΙΟ(FK)ΙΔΙΟΚΤΗΤΗΣ(FK)
Top Related