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