Βάσεις Δεδομένων. Βασίλειος Βεσκούκης

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

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

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

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

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

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

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

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

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

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

SQL Data Manipulation Language

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

Η Γλώσσα SQL. Μέρος α. Η Γλώσσα SQL Σελίδα 1

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

Certified Data Base Designer (CDBD)

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

ΑΣΚΗΣΕΙΣ ΣΕ ΔΙΑΓΡΑΜΜΑΤΑ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ

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

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

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

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

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

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

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

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

Lecture 14: SQL DML I

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

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

SQL: Συναρτήσεις Συνάθροισης

1 / 97

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

1 / 87

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

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


Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

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

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

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

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

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

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

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

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

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

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

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

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

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

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

Βάσεις εδοµένων Βασίλειος Βεσκούκης Κανονικοποίηση σχήµατος Β Σύνοψη

Τελεστής Προβολής - Παράδειγμα. Π Πόλη, Εξάμηνο (Φοιτητές)

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

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

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

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

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

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

SQL Data Manipulation Language

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

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

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

Το εσωτερικό ενός Σ Β

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

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

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

Επεξεργασία Ερωτήσεων

Κεφ 4: Προχωρημένες Εντολές SQL

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

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

Transcript:

Εθνικό Μετσόβιο ολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Βάσεις Δεδομένων Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr Εισαγωγή στη γλώσσα SQL (μέρος( ) Η γλώσσα SQL Η γλώσσα SQL (Structured Query Language) Είναι μια δηλωτική γλώσσα δηλαδή περιγράφουμε τι θέλουμε κι όχι πώς θα το αποκτήσουμε Μπορεί να ενσωματωθεί σε άλλες γλώσσες προγραμματισμού (embedded SQL) Οι λεπτομέρειες υλοποίησης είναι θέμα του ΣΔΒΔ H SQL αποτελείται από δύο μέρη γλώσσα ορισμού δεδομένων (Data Definition Language, DDL) Δημιουργία πινάκων και ευρετηρίων γλώσσα χειρισμού δεδομένων (Data Manipulation Language, DML) Εισαγωγή, διαγραφή, τροποποίηση των τιμών των πλειάδων ενός πίνακα Οριστική καταχώρηση ή ακύρωση των εργασιών που έγιναν στη ΒΔ Επιλογή εγγραφών από τη ΒΔ

SELECT - βασική μορφή εντολής SELECT [DISTINCT] A, A,..., An FROM r, r,..., rm WHERE P Τα Ai είναι τα πεδία που επιλέγονται Τα ri είναιοισχέσεις(πίνακες) από τις οποίες επιλέγονται Η P είναι μια συνθήκη την οποία πληρούν τα πεδία * όλα τα πεδία της σχέσης που αναφέρεται στο FROM DISTINCT παραλείπει τις διπλές εγγραφές (Η SQL δεν απαλείφει αυτόματα τις διπλοεγγραφές) FROM Αντιστοιχεί στην πράξη καρτεσιανού γινομένου της σχεσιακής άλγεβρας WHERE Αντιστοιχεί στην πράξη επιλογής της σχεσιακής άλγεβρας Τελεστές συνθήκης >, <, <>, >=, <=, = AND, NOT, OR LIKE IS [NOT] NULL ισότητας λογικοί σύγκρισης συμβολοσειρών αναζήτησης [μη] κενών τιμών SELECT - βασική μορφή : αραδείγματα Εστω η ΒΔ TEACHERS ΕΤΡΟ ΕΤΡΟΣ ΚΑΤΕΡΙΝΗ 6 ΕΛΕΘΕΡΙΟ ΕΛΕΘΕΡΙΟΣ ΤΟΟΓΡΑΦΟΣ ΚΟΡΙΝΘΙΑ PROVIDED_BY COURSE UNIVERSITY YEAR 800 0 80-8 ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ 000 8 8-8 0000 000 8-8 000 00 0- - COURSES 00 00 8-86 -000 COURSEID CNAME CHOURS CTYPE 00 00-00 ΜΑΘΗΜΑΤΙΚΑ 00 00-00 00-000 00 ΒΔ 000-00 0 ΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 00-00

SELECT - βασική μορφή : αραδείγματα οια είναι όλα τα στοιχεία όλων των καθηγητών; SELECT * FROM TEACHERS; ΕΤΡΟ ΕΤΡΟΣ ΚΑΤΕΡΙΝΗ 6 ΕΛΕΘΕΡΙΟ ΕΛΕΘΕΡΙΟΣ ΤΟΟΓΡΑΦΟΣ ΚΟΡΙΝΘΙΑ οιο είναι το όνομα, το επώνυμο και το ίδρυμα όλων των καθηγητών; SELECT, TLNAME, FROM TEACHERS; ΕΤΡΟ ΕΛΕΘΕΡΙΟ TLNAME ΕΤΡΟΣ ΕΛΕΘΕΡΙΟΣ SELECT - βασική μορφή : αραδείγματα οια είναι όλα τα στοιχεία όλων των καθηγητών του ; SELECT * from TEACHERS where =''; 6 ΕΛΕΘΕΡΙΟ ΕΛΕΘΕΡΙΟΣ ΤΟΟΓΡΑΦΟΣ ΚΟΡΙΝΘΙΑ οιό είναι το όνομα και το επώνυμο όλων των καθηγητών του ; SELECT, TLNAME from TEACHERS where =''; ΕΛΕΘΕΡΙΟ TLNAME ΕΛΕΘΕΡΙΟΣ

SELECT - βασική μορφή : αραδείγματα οιες ειδικότητες καθηγητών υπάρχουν; SELECT DISTINCT FROM TEACHERS; ΤΟΟΓΡΑΦΟΣ οια ΑΕΙ βρίσκονται στην Αττική; SELECT, FROM WHERE =''; οια προαιρετικά μαθήματα μπορούν να διδαχθούν από όλους τους καθηγητές; SELECT * FROM TEACHERS, COURSES WHERE COURSES.CTYPE=''; TLNAME COURSEID CNAME CHOURS CTYPE ΕΤΡΟ ΕΤΡΟΣ ΚΑΤΕΡΙΝΗ 6 ΕΛΕΘΕΡΙΟ ΕΛΕΘΕΡΙΟΣ ΤΟΟΓΡΑΦΟΣ ΚΟΡΙΝΘΙΑ SELECT - γενική μορφή SELECT A, A,..., An,f(A, f(a), FROM r, r,..., rm WHERE P GROUP BY A, A,..., An HAVING Q ORDER BY Ax,.., Ay A [ASC DESC] ORDER BY: Ταξινόμηση αποτελεσμάτων ως προς τα καθοριζόμενα πεδία κατά σειρά αύξουσα (ASCending) ή φθίνουσα (DESCending) GROUP BY: Ομαδοποίηση αποτελεσμάτων και εφαρμογή της συνάρτησης f(a) σε κάθε ομάδα χωριστά. Η πρόταση having καθορίζει μια συνθήκη αναζήτησης για τις ομάδες Συναρτήσεις συνάθροισης (aggregate functions) AVG(A) μέσος όρος τιμών του Α SUM(A) άθροισμα τιμών του Α MIN(A) ηελάχιστητωντιμώντουα MAX(A) ημέγιστητωντιμώντουα COUNT(A) το πλήθος των τιμών του Α

SELECT: παρατηρήσεις Επιβεβαιώνεται ο δηλωτικός χαρακτήρας της SQL Ζητάμε αυτό που θέλουμε Με τρόπο "σχεδόν" αντίστοιχο με φυσική γλώσσα (αγγλικά) Το σύστημα (DBMS) φροντίζει να λάβουμε τα αποτελέσματα Μια εντολή SELECT εκτελείται πάντα πάνω σε σχέσεις (πίνακες) οι οποίες... πάρχουν ήδη στη βάση SELECT * FROM Δημιουργούνται κατά την εκτέλεση SELECT * FROM TEACHERS, COURSES Μια εντολή SELECT έχει πάντα ως αποτέλεσμα μια ΣΧΕΣΗ SELECT FROM SELECT FROM WHERE ='' SELECT Avg(CHOURS) FROM COURSES Φωλιασμένες υποερωτήσεις Φώλιασμα Η σχέση πάνω στην οποία θα εκτελεστεί μια (απλή) εντολή SQL μπορεί να είναι αποτέλεσμα μιας άλλης απλής εντολής. Οι δύο εντολές αυτές μπορούν να δίνονται ως μία σύνθετη εντολή, όπου η μία (απλή) εντολή φωλιάζει μέσα στην άλλη. TEACHERS ΙΝΑΚΑΣ ΤΗΣ ΒΔ ΕΤΡΟ ΕΤΡΟΣ ΚΑΤΕΡΙΝΗ 6 ΕΛΕΘΕΡΙΟ ΕΛΕΘΕΡΙΟΣ ΤΟΟΓΡΑΦΟΣ ΚΟΡΙΝΘΙΑ SELECT * FROM TEACHERS WHERE =' ' ΑΟΤΕΛΕΣΜΑ ΤΗΣ SELECT 6 ΕΛΕΘΕΡΙΟ ΕΛΕΘΕΡΙΟΣ ΤΟΟΓΡΑΦΟΣ ΚΟΡΙΝΘΙΑ

Φωλιασμένες υποερωτήσεις TEACHERS ΙΝΑΚΑΣ ΤΗΣ ΒΔ ΕΤΡΟ ΕΤΡΟΣ ΚΑΤΕΡΙΝΗ 6 ΕΛΕΘΕΡΙΟ ΕΛΕΘΕΡΙΟΣ ΤΟΟΓΡΑΦΟΣ ΚΟΡΙΝΘΙΑ ΡΟΣΔΙΟΡΙΣΜΟΣ ΤΟ ΕΔΙΟ ΕΦΑΡΜΟΓΗΣ ΤΗΣ SELECT SELECT * FROM TEACHERS WHERE =' ' 6 ΕΛΕΘΕΡΙΟ ΕΛΕΘΕΡΙΟΣ ΤΟΟΓΡΑΦΟΣ ΚΟΡΙΝΘΙΑ SELECT FNAME, LNAME FROM (SELECT * FROM TEACHERS WHERE =' ') WHERE =' ' ΡΟΣΔΙΟΡΙΣΜΟΣ ΤΟ ΕΔΙΟ ΕΦΑΡΜΟΓΗΣ ΤΗΣ SELECT Ισοδύναμο (ασφαλώς): SELECT FNAME, LNAME FROM TEACHERS WHERE =' ' AND =' ' Φωλιασμένες υποερωτήσεις Χρησιμοποιούνται για τη σύγκριση συνόλων τον έλεγχο αριθμού στοιχείων συνόλων τον έλεγχο της κατάστασης μέλους στοιχείων σε σύνολα Τελεστές πράξεων συνόλων () ΙΝ (Ε) ΝΟΤ ΙΝ (Ε) EXISTS (Ε) ΝΟΤ EXISTS (Ε) Έλεγχοςκατάστασηςμέλουςστοιχείων. Επιστρέφει ΑΛΗΘΕΣ γιαεκείναταστοιχείαπουείναιμέλη στο σύνολο αποτελεσμάτων της Ε. Έλεγχοςκατάστασηςμημέλουςστοιχείων. Επιστρέφει ΑΛΗΘΕΣ γιαεκείναταστοιχείατουαπουδεν είναι μέλη στο σύνολο αποτελεσμάτων της Ε. Έλεγχος ύπαρξης απαντήσεων στην υποερώτηση Ε. Επιστρέφει ΑΛΗΘΕΣ αν υπάρχει έστω και μια απάντηση στην υποερώτηση Ε. Έλεγχος μη ύπαρξης απαντήσεων στην υποερώτηση Ε. Επιστρέφει ΑΛΗΘΕΣ αν δεν υπάρχει καμία απάντηση στην υποερώτηση Ε. ΕείναιμιαυποερώτησηSQL 6

Φωλιασμένες υποερωτήσεις Τελεστές πράξεων συνόλων () (>,<,<>,>=,<=,=) ALL (Ε) (>,<,<>,>=,<=,=) ANY (Ε) UNIQUE (Ε)( UNION INTERSECT CONTAINS EXCEPT Έλεγχος αν τα στοιχεία είναι (>,<,<>,>=,<=,=) από όλα τα στοιχεία του συνόλου αποτελεσμάτων της Ε. Επιστρέφει ΑΛΗΘΕΣ για εκείνα τα στοιχεία που ικανοποιούν την παραπάνω συνθήκη. Έλεγχος αν τα στοιχεία είναι (>,<,<>,>=,<=,=) από κάποιο/ένα τουλάχιστον από τα στοιχεία του συνόλου αποτελεσμάτων της Ε. Επιστρέφει ΑΛΗΘΕΣ για εκείνα τα στοιχεία που ικανοποιούν την παραπάνω συνθήκη. Έλεγχος ύπαρξης διπλών εγγραφών το αποτέλεσμα της Ε. Επιστρέφει αληθές αν δεν υπάρχουν διπλές εγγραφές Ένωση Τομή Έλεγχος υποσυνόλου. Επιστρέφει ΑΛΗΘΕΣ αν το σύνολο στοιχείων είναι υποσύνολο του συνόλου αποτελεσμάτων της υποερώτησης Ε. Διαφορά Αλλο ένα παράδειγμα Ενα τμήμα μιας τραπεζικής ΒΔ 7

αραδείγματα φωλιασμένων ερωτήσεων οιοι πελάτες έχουν και λογαριασμό και δάνειο στην τράπεζα; select distinct customer-name from borrower where customer-name in (select customer-name from depositor) οιοι πελάτες έχουν δάνειο, αλλά δεν έχουν λογαριασμό στην τράπεζα; select distinct customer-name from borrower where customer-name not in (select customer-name from depositor) Βρες τα ονόματα όλων των καταστημάτων που έχουν μεγαλύτερα περιουσιακά στοιχεία (assets) από όλα τα καταστήματα της Ηλιούπολης select branch-name from branch where assets > all (select assets from branch where branch-city = 'Ηλιούπολη') Φυσική σύνδεση (natural join) στην SQL Τρόπος Απλή μορφή select A, A,..., A n from (r inner join r on r.x = r.x) Γενική μορφή select A, A,..., A n from ( (r inner join r on r.x = r.x)... inner join r m on r m-.y = r m.y) Τρόπος Απλή μορφή select A, A,..., A n from r, r,..., r m where r.x = r.x and and r m-.y = r m.y Γενική μορφή select A, A,..., A n from r, r,..., r m where r.x = r.x and and r m-.y = r m.y 8

αραδείγματα φυσικής σύνδεσης στην SQL Βρες όλους τους πελάτες που έχουν δάνειο και τα καταστήματα με τα οποία το έχουν συνάψει Τρόπος select customer-name, branch-name from loan,borrower where loan.loan-number = borrower.loan-number Τρόπος select customer-name, branch-name from loan inner join borrower on loan.loan-number = borrower.loan-number αραδείγματα φυσικής σύνδεσης στην SQL Μια γνωστή μας ΒΔ TEACHERS TLNAME COURSES COURSEID CNAME ΜΑΘΗΜΑΤΙΚΑ CHOURS CTYPE COURSES COURSEID CNAME CHOURS CTYPE PROVIDED_BY COURSE UNIVERSITY YEAR 00 ΒΔ 0 ΡΟΓΡΑΜΜΑΤΙΣΜΟΣ TEACHERS PROVIDED_BY COURSE UNIVERSITY YEAR 80-8 8-8 8-8 0- - 00 00-00 800 0 00 00-00 ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ 000 8 00-000 0000 000 000-00 000 00 00-00

αραδείγματα φυσικής σύνδεσης στην SQL οιο είναι το ονοματεπώνυμο και το πλήρες όνομα του πανεπιστημίου όπου υπηρετούν όλοι οι καθηγητές; TEACHERS 800 0 ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ 000 8 0000 000 000 00...... ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ... αραδείγματα φυσικής σύνδεσης στην SQL Εκδοχή SELECT TEACHERS., TEACHERS.TLNAME,. FROM TEACHERS, TLNAME ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ 0

αραδείγματα φυσικής σύνδεσης στην SQL Εκδοχή (Σωστή!) SELECT TEACHERS., TEACHERS.TLNAME,. FROM TEACHERS, WHERE TEACHERS.=.; TEACHERS ΑΡΙΣΤΟΤΕΛΕΙΟ ΑΝΕΙΣΤΗΜΙΟ 800 0 Σ ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ 000 8 0000 000 TLNAME 000 00 ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ αραδείγματα φυσικής σύνδεσης στην SQL Εκδοχή (Ισοδύναμη( Ισοδύναμη) SELECT TEACHERS., TEACHERS.TLNAME,. FROM TEACHERS INNER JOIN ON TEACHERS.=.; TEACHERS ΑΡΙΣΤΟΤΕΛΕΙΟ ΑΝΕΙΣΤΗΜΙΟ 800 0 Σ ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ 000 8 0000 000 TLNAME 000 00 ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ

αραδείγματα φυσικής σύνδεσης στην SQL Σε ποια πανεπιστήμια διδάσκεται το μάθημα "Βάσεις Δεδομένων"; COURSES PROVIDED_BY COURSEID CNAME CHOURS CTYPE COURSE UNIVERSITY YEAR ΜΑΘΗΜΑΤΙΚΑ 80-8 8-8 00 ΒΔ 8-8 0 ΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 0- - 00 00-00 800 0 00 00-00 ΔΗΜΟΚΡΙΤΕΙΟ ΑΝΕΙΣΤΗΜΙΟ Σ 000 8 00-000 0000 000 000-00 000 00 00-00 αραδείγματα φυσικής σύνδεσης στην SQL COURSES PROVIDED_BY COURSEID CNAME CHOURS CTYPE COURSE UNIVERSITY YEAR Εκδοχή SELECT. FROM, COURSES, PROVIDED_BY WHERE COURSES.COURSEID=00 AND PROVIDED_BY.COURSE=COURSES.COURSEID AND.=PROVIDED_BY.UNIVERSITY ΕΙΛΟΓΗ ΣΝΔΕΣΗ

αραδείγματα φυσικής σύνδεσης στην SQL COURSES PROVIDED_BY COURSEID CNAME CHOURS CTYPE COURSE UNIVERSITY YEAR Εκδοχή (τελικό) SELECT DISTINCT. FROM, COURSES, PROVIDED_BY WHERE COURSES.COURSEID=00 AND PROVIDED_BY.COURSE=COURSES.COURSEID AND.=PROVIDED_BY.UNIVERSITY ΕΙΛΟΓΗ ΣΝΔΕΣΗ αραδείγματα φυσικής σύνδεσης στην SQL COURSES PROVIDED_BY COURSEID CNAME CHOURS CTYPE COURSE UNIVERSITY YEAR Εκδοχή SELECT DISTINCT. FROM (PROVIDED_BY INNER JOIN COURSES ON PROVIDED_BY.COURSE=COURSES.COURSEID) INNER JOIN ON PROVIDED_BY.UNIVERSITY=. WHERE COURSES.COURSEID=00; ΣΝΔΕΣΗ ΕΙΛΟΓΗ

αραδείγματα φυσικής σύνδεσης στην SQL Να υπολογιστεί το άθροισμα των εβδομαδιαίων ωρών των μαθημάτων που έχουν διδαχτεί στο COURSES PROVIDED_BY COURSEID CNAME CHOURS CTYPE COURSE UNIVERSITY YEAR ΜΑΘΗΜΑΤΙΚΑ 80-8 8-8 00 ΒΔ 8-8 ΡΟΓΡΑΜΜΑΤΙΣΜΟΣ SELECT SUM(COURSES.CHOURS) AS TOTALHOURS FROM COURSES, PROVIDED_BY WHERE PROVIDED_BY.UNIVERSITY='' Και το σωστό: SELECT SUM(COURSES.CHOURS) AS TOTALHOURS FROM COURSES, PROVIDED_BY WHERE COURSES.COURSEID=PROVIDED_BY.COURSE AND PROVIDED_BY.UNIVERSITY='' Ακόμη καλύτερα: SELECT SUM(COURSES.CHOURS) AS TOTALHOURS FROM COURSES INNER JOIN PROVIDED_BY ON COURSES.COURSEID=PROVIDED_BY.COURSE WHERE PROVIDED_BY.UNIVERSITY=''; 0 TOTALHOURS 0- - 00 00-00 00 00-00 00-000 000-00 00-00 TOTALHOURS Κατασκευάζοντας εντολές SQL που περιέχουν συνδέσεις Για να γράψουμε σωστές εντολές που επιστρέφουν στοιχεία από περισσότερους του ενός πίνακες, καλό είναι να έχουμε: Το διάγραμμα οντοτήτων συσχετίσεων της ΒΔ Το σχεσιακό σχήμα της ΒΔ (πίνακεςμεσημειωμένατακύριακαιταξένα κλειδιά) αίρνουμε την ερώτηση (σε φυσική γλώσσα) για την οποία θέλουμε να κατασκευάσουμε SQL και κάνουμε τα εξής: A. Εντοπίζουμε ποια είναι τα πεδία που θα περιέχονται στον πίνακα-αποτέλεσμα B. Εντοπίζουμε ποια είναι τα πεδία που αποτελούν κριτήρια για την επιλογή C. Εντοπίζουμε σε ποιους πίνακες βρίσκονται τα προηγούμενα πεδία αρατηρούμε ότι Τα πεδία του (A) είναι η λίστα που ακολουθεί τη λέξη SELECT Τα πεδία του (Β) είναι το πρώτο μέρος της λογικής έκφρασης που ακολουθεί το WHΕRE Οι πίνακες του (C) είναι αυτό που ακολουθεί το FROM Ησύνδεσητωνπινάκωντου(C) μέσω λογικών εκφράσεων ισότητας μεταξύ κυρίων και ξένων κλειδιών είναι το δεύτερο μέρος της λογικής έκφρασης που ακολουθεί το WHERE

SQL με σωστές συνδέσεις () DNA ONOMA ΦΣΙΚΟ ΡΟΣΩΟ ΤΑΤΟΟΙΗΣΗ ΔΕΛΤΙΟ ΤΑΤΟΤΗΤΑΣ ΑΔΤ ΑΡΧΗ ΕΩΝΜΟ ΗΜ/ΝΙΑ ΦΣΙΚΟ ΡΟΣΩΟ ΤΑΤΟΤΗΤΑ DNA ΟΝΟΜΑ ΕΩΝΜΟ ΑΔΤ ΑΡΧΗ ΗΜΕΡΟΜΗΝΙΑ DNA(FK) Ερώτηση (σε φυσική γλώσσα): οιο είναι το ονοματεπώνυμο και η αρχή έκδοσης ταυτότητας όσων εξέδωσαν την ταυτότητά τους την..00 ; εδία στον πίνακα αποτέλεσμα Φ.ΕΩΝΜΟ, Φ.ΟΝΟΜΑ, Τ.ΑΡΧΗ εδία-κριτήρια Τ.ΗΜΕΡΟΜΗΝΙΑ=..00 ΙΝΑΚΕΣ ΦΣΙΚΟ ΡΟΣΩΟ (Φ), ΤΑΤΟΤΗΤΑ (Τ) : Φ.DNA=T.DNA SQL με σωστές συνδέσεις () ΦΣΙΚΟ ΡΟΣΩΟ ΤΑΤΟΤΗΤΑ DNA ΟΝΟΜΑ ΕΩΝΜΟ ΑΔΤ ΑΡΧΗ ΗΜΕΡΟΜΗΝΙΑ DNA(FK) SELECT (πεδία( που περιέχονται στο αποτέλεσμα) FROM (πίνακες( που συμμετέχουν) WHERE (κριτήρια( κριτήρια) AND (ισότητα( κλειδιών για συνδέσεις)* Η ζητούμενη εντολή SQL SELECT Φ.ΕΩΝΜΟ ΕΩΝΜΟ, Φ.ΟΝΟΜΑ ΟΝΟΜΑ, Τ.ΑΡΧΗ FROM Φ, Τ WHERE T.ΗΜΕΡΟΜΗΝΙΑ ΗΜΕΡΟΜΗΝΙΑ=..00 AND Φ.DNA=T.DNA(FK)

SQL με σωστές συνδέσεις () ΚΩΔ ΕΡΙΓΡΑΦΗ ΚΑΤΗΓΟΡΙΑ ΗΡΕΣΙΩΝ ΓΙΝΟΝΤΑΙ Ν ΑΙΤΗΣΕΙΣ ΘΕΣΗ ΑΡ ΤΗΛ TIMESTAMP ΗΡΕΣΙΑ ΑΙΤΗΣΗ ΚΩΔ ΕΡΙΓΡΑΦΗ ΑΡ_ΤΗΛ. TIMESTAMP ΘΕΣΗ ΗΡΕΣΙΑ(FK) Ερώτηση (σε φυσική γλώσσα): οιες είναι οι περιγραφές των υπηρεσιών που έχει ζητήσει ο κάτοχος του τηλεφώνου 6 ; εδία στον πίνακα αποτέλεσμα.εριγραφη εδία-κριτήρια ΑΙΤΗΣΗ.ΑΡ_ΤΗΛ= 6 ΙΝΑΚΕΣ ΗΡΕΣΙΑ (), ΑΙΤΗΣΗ :.ΚΩΔ=ΑΙΤΗΣΗ.ΗΡΕΣΙΑ SQL με σωστές συνδέσεις () ΗΡΕΣΙΑ ΑΙΤΗΣΗ ΚΩΔ ΕΡΙΓΡΑΦΗ ΑΡ_ΤΗΛ. TIMESTAMP ΘΕΣΗ ΗΡΕΣΙΑ(FK) SELECT (πεδία( που περιέχονται στο αποτέλεσμα) FROM (πίνακες( που συμμετέχουν) WHERE (κριτήρια( κριτήρια) AND (ισότητα( κλειδιών για συνδέσεις)* Η ζητούμενη εντολή SQL SELECT.ΕΡΙΓΡΑΦΗ ΕΡΙΓΡΑΦΗ FROM, ΑΙΤΗΣΗ WHERE ΑΙΤΗΣΗ.ΑΡ ΑΡ_ΤΗΛ= 6 AND.ΚΩΔΙΚΟΣ ΚΩΔΙΚΟΣ=ΑΙΤΗΣΗ.ΗΡΕΣΙΑ(FK) 6

SQL με σωστές συνδέσεις () ΚΩΔ Μ Ν ΚΑΕΚ ΔΙΚΑΙΟΧΟΣ ΙΔΙΟΚΤΗΣΙΑ ΓΕΩΤΕΜΑΧΙΟ ΧΡΗΣΗ ΟΝΟΜΑΤΕΩΝΜΟ ΕΜΒΑΔΟ ΔΙΚΑΙΟΧΟΣ ΙΔΙΟΚΤΗΣΙΑ ΓΕΩΤΕΜΑΧΙΟ ΚΩΔ ΟΝΟΜΑΤΕΩΝΜΟ ΙΔΙΟΚΤΗΤΗΣ(FK) ΚΑΕΚ ΧΡΗΣΗ ΓΕΩΤΕΜΑΧΙΟ(FK) ΕΜΒΑΔΟ Ερώτηση (σε φυσική γλώσσα): οιες είναι οι χρήσεις των γεωτεμαχίων που κατέχει ο κ. Ανδρέου Ανδρέας ; εδία στον πίνακα αποτέλεσμα ΓΕΩΤΕΜΑΧΙΟ.ΧΡΗΣΗ εδία-κριτήρια ΔΙΚΑΙΟΧΟΣ.ΟΝΟΜΑΤΕΩΝΜΟ= Ανδρέου Ανδρέας ΙΝΑΚΕΣ ΔΙΚΑΙΟΧΟΣ(Δ), ΙΔΙΟΚΤΗΣΙΑ(ΙΔ), ΓΕΩΤΕΜΑΧΙΟ(ΓΤ) : Δ.ΚΩΔ=ΙΔ.ΙΔΙΟΚΤΗΤΗΣ(FK) και ΙΔ.ΓΕΩΤΕΜΑΧΙΟ(FK)=ΓΤ.ΚΑΕΚ SQL με σωστές συνδέσεις () ΔΙΚΑΙΟΧΟΣ ΙΔΙΟΚΤΗΣΙΑ ΓΕΩΤΕΜΑΧΙΟ ΚΩΔ ΟΝΟΜΑΤΕΩΝΜΟ ΙΔΙΟΚΤΗΤΗΣ(FK) ΚΑΕΚ ΧΡΗΣΗ ΓΕΩΤΕΜΑΧΙΟ(FK) ΕΜΒΑΔΟ SELECT (πεδία( που περιέχονται στο αποτέλεσμα) FROM (πίνακες( που συμμετέχουν) WHERE (κριτήρια( κριτήρια) AND (ισότητα( κλειδιών για συνδέσεις)* Η ζητούμενη εντολή SQL SELECT ΓΤ.ΧΡΗΣΗ FROM Δ, ΙΔ, ΓΤ WHERE Δ.ΟΝΟΜΑΤΕΩΝΜΟ= ΑνδρέουΑνδρέου Ανδρέας AND Δ.ΚΩΔ=ΙΔ.ΙΔΙΟΚΤΗΤΗΣ(FK) AND ΙΔ.ΓΕΩΤΕΜΑΧΙΟ ΓΕΩΤΕΜΑΧΙΟ(FK)= FK)=ΓΤ.ΚΑΕΚ 7