db course 2005 - NTUA

17
1 Εθνικό Εθνικό Μετσόβιο Μετσόβιο Πολυτεχνείο Πολυτεχνείο Σχολή Σχολή Αγρονόμων Αγρονόμων Τοπογράφων Τοπογράφων Μηχανικών Μηχανικών Βάσεις Βάσεις Δεδομένων Δεδομένων Βασίλειος Βασίλειος Βεσκούκης Βεσκούκης [email protected] [email protected] Εισαγωγή Εισαγωγή στη στη γλώσσα γλώσσα SQL ( SQL (μέρος μέρος 2) 2) Δρ. Βασίλειος Βεσκούκης Η γλώσσα γλώσσα SQL SQL Η γλώσσα γλώσσα SQL (Structured Query Language) SQL (Structured Query Language) Είναι μια δηλωτική γλώσσα δηλαδή περιγράφουμε τι θέλουμε κι όχι πώς θα το αποκτήσουμε Μπορεί να ενσωματωθεί σε άλλες γλώσσες προγραμματισμού (embedded SQL) Οι λεπτομέρειες υλοποίησης είναι θέμα του ΣΔΒΔ H SQL H SQL αποτελείται αποτελείται από από δύο δύο μέρη μέρη γλώσσα ορισμού δεδομένων (Data Definition Language, DDL) Δημιουργία πινάκων και ευρετηρίων γλώσσα χειρισμού δεδομένων (Data Manipulation Language, DML) Εισαγωγή, διαγραφή, τροποποίηση των τιμών των πλειάδων ενός πίνακα Οριστική καταχώρηση ή ακύρωση των εργασιών που έγιναν στη ΒΔ Επιλογή εγγραφών από τη ΒΔ

Transcript of db course 2005 - NTUA

Page 1: db course 2005 - NTUA

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)Εισαγωγή, διαγραφή, τροποποίηση των τιμών των πλειάδων ενός πίνακαΟριστική καταχώρηση ή ακύρωση των εργασιών που έγιναν στη ΒΔΕπιλογή εγγραφών από τη ΒΔ

Page 2: db course 2005 - NTUA

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

Page 3: db course 2005 - NTUA

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

Page 4: db course 2005 - NTUA

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) το πλήθος των τιμών του Α

Page 5: db course 2005 - NTUA

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

Page 6: db course 2005 - NTUA

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 (Ε)

Έλεγχος κατάστασης μη μέλους στοιχείων. Επιστρέφει ‘ΑΛΗΘΕΣ’ για εκείνα τα στοιχεία του Α που δενείναι μέλη στο σύνολο αποτελεσμάτων της Ε.

ΝΟΤ ΙΝ (Ε)

Έλεγχος κατάστασης μέλους στοιχείων. Επιστρέφει ‘ΑΛΗΘΕΣ’ για εκείνα τα στοιχεία που είναι μέληστο σύνολο αποτελεσμάτων της Ε.

ΙΝ (Ε)

Page 7: db course 2005 - NTUA

7

Δρ. Βασίλειος Βεσκούκης

ΦωλιασμένεςΦωλιασμένες υποερωτήσειςυποερωτήσεις

ΤελεστέςΤελεστές πράξεωνπράξεων συνόλωνσυνόλων (2)(2)

ΔιαφοράΔιαφοράEXCEPTEXCEPT

ΈλεγχοςΈλεγχος υποσυνόλουυποσυνόλου. . ΕπιστρέφειΕπιστρέφει ‘‘ΑΛΗΘΕΣΑΛΗΘΕΣ’’ αναν τοτο σύνολοσύνολοστοιχείωνστοιχείων είναιείναι υποσύνολουποσύνολο τουτου συνόλουσυνόλου αποτελεσμάτωναποτελεσμάτωντηςτης υποερώτησηςυποερώτησης ΕΕ. .

CONTAINSCONTAINS

ΤομήΤομήINTERSECTINTERSECT

ΈνωσηΈνωσηUNIONUNION

ΈλεγχοςΈλεγχος ύπαρξηςύπαρξης διπλώνδιπλών εγγραφώνεγγραφών τοτο αποτέλεσμααποτέλεσμα τηςτης ΕΕ. . ΕπιστρέφειΕπιστρέφει αληθέςαληθές αναν δενδεν υπάρχουνυπάρχουν διπλέςδιπλές εγγραφέςεγγραφές

UNIQUE (UNIQUE (ΕΕ))

ΈλεγχοςΈλεγχος αναν τατα στοιχείαστοιχεία είναιείναι (>,<,<>,>=,<=,=) (>,<,<>,>=,<=,=) απόαπό κάποιοκάποιο//έναένατουλάχιστοντουλάχιστον απόαπό τατα στοιχείαστοιχεία τουτου συνόλουσυνόλου αποτελεσμάτωναποτελεσμάτωντηςτης ΕΕ. . ΕπιστρέφειΕπιστρέφει ‘‘ΑΛΗΘΕΣΑΛΗΘΕΣ’’ γιαγια εκείναεκείνα τατα στοιχείαστοιχεία πουπουικανοποιούνικανοποιούν τηντην παραπάνωπαραπάνω συνθήκησυνθήκη. .

(>,<,<>,>=,<=,=) (>,<,<>,>=,<=,=) ANYANY ((ΕΕ) )

ΈλεγχοςΈλεγχος αναν τατα στοιχείαστοιχεία είναιείναι (>,<,<>,>=,<=,=) (>,<,<>,>=,<=,=) απόαπό όλαόλα ταταστοιχείαστοιχεία τουτου συνόλουσυνόλου αποτελεσμάτωναποτελεσμάτων τηςτης ΕΕ. . ΕπιστρέφειΕπιστρέφει‘‘ΑΛΗΘΕΣΑΛΗΘΕΣ’’ γιαγια εκείναεκείνα τατα στοιχείαστοιχεία πουπου ικανοποιούνικανοποιούν τηντηνπαραπάνωπαραπάνω συνθήκησυνθήκη. .

(>,<,<>,>=,<=,=) (>,<,<>,>=,<=,=) ALLALL ((ΕΕ) )

Δρ. Βασίλειος Βεσκούκης

ΑλλοΑλλο έναένα παράδειγμαπαράδειγμα

ΕναΕνα τμήματμήμα μιαςμιας τραπεζικήςτραπεζικής ΒΔΒΔ

Page 8: db course 2005 - NTUA

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

Page 9: db course 2005 - NTUA

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

Page 10: db course 2005 - NTUA

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

Page 11: db course 2005 - NTUA

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

Page 12: db course 2005 - NTUA

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

ΕΠΙΛΟΓΗ

ΣΥΝΔΕΣΗ

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Page 13: db course 2005 - NTUA

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

ΕΠΙΛΟΓΗ

ΣΥΝΔΕΣΗ

Page 14: db course 2005 - NTUA

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

Page 15: db course 2005 - NTUA

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)ΑΡΧΗΑΔΤ

Page 16: db course 2005 - NTUA

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ΑΡ_ΤΗΛ.

Page 17: db course 2005 - NTUA

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)