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

Σχετικά έγγραφα
SQL Data Manipulation Language

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

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

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

SQL Data Manipulation Language

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

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Διοικητική Λογιστική

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εισαγωγή στους Αλγορίθμους

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Εισαγωγή στους Αλγορίθμους

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

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

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων περίπτωσης χρήσης (1ο Μέρος)

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Διοικητική Λογιστική

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εκπαιδευτική Διαδικασία και Μάθηση στο Νηπιαγωγείο Ενότητα 1: Εισαγωγή

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μάρκετινγκ Αγροτικών Προϊόντων

Μηχανολογικό Σχέδιο Ι

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εισαγωγή στους Υπολογιστές

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Τεχνικό Σχέδιο - CAD

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Ψηφιακή Επεξεργασία Εικόνων

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

Κβαντική Επεξεργασία Πληροφορίας

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

Μάρκετινγκ. Ενότητα 2: Αξία για τους Πελάτες

Διοικητική Λογιστική

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Οργάνωση και Διοίκηση Πωλήσεων Ενότητα 4η: Καθορισμός Περιοχής Πώλησης (sales territory)

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Διδακτική Πληροφορικής

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΚΑΛΑΘΟΣΦΑΙΡΙΣΗΣ ΙΙ

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Φυσική ΙΙΙ. Ενότητα 4: Ηλεκτρικά Κυκλώματα. Γεώργιος Βούλγαρης Σχολή Θετικών Επιστημών Τμήμα Φυσικής

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

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Πληροφορική ΙΙ Θεματική Ενότητα 5

Τεχνικό Σχέδιο - CAD

Βέλτιστος Έλεγχος Συστημάτων

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

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

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.3: Μεθοδολογία εφαρμογής προγράμματος Ολικής Ποιότητας

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

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Διδακτική των εικαστικών τεχνών Ενότητα 1

Διδακτική των εικαστικών τεχνών Ενότητα 3

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Μάρκετινγκ. Ενότητα 11: Υπηρεσίες και Μάρκετινγκ

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Μηχανολογικό Σχέδιο Ι

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Γενική Φυσική Ενότητα: Ταλαντώσεις

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Διδακτική της Πληροφορικής

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αρχεία και Βάσεις Δεδομένων Διάλεξη 9η: SQL Μέρος 2ο Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

Εμφωλευμένες επερωτήσεις (Nested Queries) Μια εντολή select μπορεί να περιέχει μια άλλη εντολή select αλλά υπό περιορισμούς Μια εντολή select που εμφανίζεται μέσα σε μια άλλη εντολή select ονομάζεται subselect. Ένα subselect μπορεί να εμφανίζεται στην πρόταση where με διάφορους τρόπους Λογικά κατηγορήματα χρησιμοποιούνται για να γίνονται έλεγχοι στα subselects Απαίτηση: μια σχέση στην πρόταση from δε μπορεί να είναι το αποτέλεσμα μιας εντολής select, πρέπει να είναι μια υπάρχουσα σχέση. 2 HY360 Lecture 9

Το κατηγόρημα ΙΝ χρησιμοποιείται για να ελέγξει αν πλειάδες ανήκουν σε μια σχέση. Χρησιμοποιείται με μια πρόταση select ρητά απαριθμημένο σύνολο Παραδείγματα: «Βρείτε τα ids των πελατών που κάνουν παραγγελίες μέσω πρακτόρων με έδρα το Duluth ή το Dallas» SQL: select cid from Orders where aid in ( select aid from agents where city= Duluth or city= Dallas ) ; Επιστρέφει τους πράκτορες των οποίων η έδρα είναι το Duluth ή το Dallas Επιστρέφει όλα τα αναγνωριστικά των πελατών από τις πλειάδες εκείνες των οποίων η τιμή aid ανήκει στα αποτελέσματα του εμφωλευμένου select. 3 HY360 Lecture 9

Το κατηγόρημα ΙΝ χρησιμοποιείται για να ελέγξει αν πλειάδες ανήκουν σε μια σχέση με μια πρόταση select ρητά απαριθμημένο σύνολο Παραδείγματα: 1. «Βρείτε τους πράκτορες με έδρα το Duluth ή το Dallas». SQL: select * from Agents where city in (Duluth, Dallas ) ; 2. «Βρείτε τα ονόματα και τις εκπτώσεις των πελατών που κάνουν παραγγελίες μέσω πρακτόρων με έδρα το Duluth ή το Dallas». SQL: select cname, discount from Customers where cid in ( select cid from Orders where aid in (select aid from Agents where city in (Duluth, Dallas ) ) ; Τα ονόματα των γνωρισμάτων σχετίζονται με της σχέσης της πλησιέστερης σχέσης select. 4 HY360 Lecture 9

Παραδείγματα: 3. «Βρείτε τα ονόματα των πελατών που παραγγέλνουν το προϊόν p05». SQL (1) : select distinct cname from Customers, Orders where Customers.cid = Orders.cid and Orders.pid = p05 SQL (2) : select distinct cname from Customers where p05 in (select pid from Orders where cid = Customers.cid) ; 5 HY360 Lecture 9

Κατηγορήματα Σύγκρισης με Ποσοδείκτες (Quantified Comparison Predicates) χρησιμοποιούνται για τη σύγκριση της τιμής μιας έκφρασης με το αποτέλεσμα μιας εντολής select γενική μορφή: expr θ {any all} (subselect), θ {,,,,, } συνολικά 12 κατηγορήματα μπορούν να οριστούν Η έκφραση expr θ any (subselect) είναι αληθής αν για τουλάχιστον ένα στοιχείο s στο αποτέλεσμα του subselect η έκφραση expr θ s είναι αληθής Η έκφραση expr θ all (subselect) είναι αληθής αν για όλα τα στοιχεία s στο αποτέλεσμα του subselect η έκφραση expr θ s είναι αληθής HY360 Lecture 9 6

Agents(aid, aname,city,percent) Παραδείγματα: 1. Βρείτε τα ids των πρακτόρων με το μικρότερο ποσοστό προμήθειας. select aid from agents where percent <= all (select percent from agents); Customers(cid, cname,city,discnt) 2. Βρείτε τα ονόματα των πελατών που έχουν την ίδια έκπτωση με τους πελάτες στις πόλεις Dallas ή Boston. select cname from customers where discnt = any (select discnt from customers where city = Dallas or city = Boston ); HY360 Lecture 9 7

Customers(cid, cname,city,discnt) 3. Βρείτε τα ids των πελατών που έχουν έκπτωση μικρότερη από αυτήν οποιουδήποτε πελάτη που ζει στο Dallas. select cid from customers where discnt < any (select discnt from customers where city = Dallas ); Η έκφραση αυτή είναι λάθος! Ορθή έκφραση: select cid from customers where discnt < all (select discnt from customers where city = Dallas ); HY360 Lecture 9 8

Παρατηρήσεις: Το κατηγόρημα expr = any (subselect) έχει την ίδια σημασιολογία με την έκφραση expr in (subselect) Η έκφραση expr not in (subselect) δεν είναι ισοδύναμη με το κατηγόρημα expr any (subselect) Είναι ισοδύναμη με το κατηγόρημα expr all (subselect) Το κατηγόρημα exists Χρησιμοποιείται για να ελεγχθεί αν το αποτέλεσμα ενός subselect είναι κενό. Γενική μορφή: [not] exists (subselect) exists (subselect) είναι αληθής αν το αποτέλεσμα του subselect είναι μη-κενό σύνολο HY360 Lecture 9 9

Orders(orderno, month,cid,aid,pid,qty,amt) Agents(aid, aname,city,percent) Customers(cid, cname,city,discnt) Παραδείγματα: 1. Βρείτε τα ονόματα των πελατών που κάνουν παραγγελίες μέσω του πράκτορα a05. select cname from customers, orders where customers.cid=orders.cid and aid= a05 ; ή select cname from customers where exists (select * from orders where customers.cid=orders.cid and aid= a05 ); Στο Σ.Λ. Πλειάδων: {t (1) u (4) (customers(u) (u[2]=t[1]) v (7) (orders(v) (v[3]=u[1]) (v[4]= a05 ) ))} HY360 Lecture 9 10

2. Βρείτε τα ids των πελατών που παραγγέλνουν τα προϊόντα p01 και p07. select cid from orders x where x.pid = p01 and exists (select * from orders where cid=x.cid and pid = p07 ); 3. Βρείτε τα ονόματα των πελατών που δεν κάνουν καμία παραγγελία μέσω του πράκτορα a05. select cname from customers where not exists (select * from orders where orders.cid = customers.cid and aid = a05 ); HY360 Lecture 9 Orders(orderno, month,cid,aid,pid,qty,amt) 11 Agents(aid, aname,city,percent) Customers(cid, cname,city,discnt)

Ποιο είναι το αποτέλεσμα της εντολής select cname from customers, orders where not (orders.cid = customers.cid and aid= a05 ); σε σχέση με την προηγούμενη ερώτηση; επιστρέφει τους πελάτες ο οποίοι δίνουν παραγγελίες με πράκτορες διαφορετικούς από τον a05 αλλά οι οποίοι ενδέχεται να δίνουν παραγγελίες και μέσω του a05. Η ερώτηση μπορεί να εκφραστεί και ως: select cname from customers where cid not in (select cid from orders where aid= a05 ); ή select cname from customers where cid all (select cid from orders where aid = a05 ); HY360 Lecture 9 12

4. Το κατηγόρημα not exists χρησιμοποιείται για την έκφραση του τελεστή της διαφοράς : αν R και S είναι συμβατές σχέσεις με σχήμα {A 1,, A n }, η διαφορά R S μπορεί να εκφραστεί ως: select A 1,, A n from R where not exists (select * from S where S.A 1 = R.A 1 and S.A 2 = R.A 2 and and S.A n = R.A n ); HY360 Lecture 9 13

Orders(orderno, month,cid,aid,pid,qty,amt) Customers(cid, cname,city,discnt) 5. Βρείτε τα ονόματα των πόλεων στις οποίες μένουν πελάτες που παραγγέλνουν το προϊόν p01. select distinct city from customers where cid in (select cid from orders where pid= p01 ); select distinct city from customers where cid = any (select cid from orders where pid= p01 ); select distinct city from customers c where exists (select * from orders where cid=c.cid and pid= p01 ); HY360 Lecture 9 14

Orders(orderno, month,cid,aid,pid,qty,amt) Customers(cid, cname,city,discnt) select distinct city from customers, orders where orders.cid=customers.cid and orders.pid = p01 ; select distinct city from customers where p01 in (select pid from orders where cid = customers. cid); Όλες αυτές οι μορφές είναι ισοδύναμες. Η γλώσσα θα είχε την ίδια εκφραστική δύναμη αν το κατηγόρημα in και τα κατηγορήματα σύγκρισης με ποσοδείκτες παραλείπονταν. Δεν μπορεί όμως να παραληφθεί το κατηγόρημα exists. HY360 Lecture 9 15

Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημειώματα

Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 4.0 Διεθνές [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί..

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Κρήτης, Δημήτρης Πλεξουσάκης. «Αρχεία και Βάσεις Δεδομένων. Διάλεξη 9η: SQL Μέρος 2ο». Έκδοση: 1.0. Ηράκλειο/Ρέθυμνο 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://www.csd.uoc.gr/~hy360/