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

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

SQL Data Manipulation Language

1 / 97

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

1 / 87

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

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

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


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

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

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

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

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL

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

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

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

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL)

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

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

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

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

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

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

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

Query-by-Example (QBE)

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β :

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β :

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 5: SQL

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

Certified Data Base Designer (CDBD)

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

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

Η Γλώσσα SQL. What is the average salary in the Toy department? Anonymous SQL user

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

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

Κεφάλαιο 8. SQL-99: Ορισμός Σχήματος, Περιορισμοί, και Επερωτήσεις και Όψεις

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

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

SQL. Πριν µια σύντοµη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τµήµατα: Γλώσσα Χειρισµού εδοµένων (ΓΧ )

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

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

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

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

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

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

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9;

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Β. Μεγαλοοικονόμου, Δ. Χριστοδουλάκης Σχεσιακό Μοντέλο SQLΜέρος Α Ακ.Έτος 2008-09 (μεβάσητιςσημειώσειςτωνsilberchatz, Korth και Sudarshan και του C. Faloutsos CMU)

Επισκόπηση σχεσιακό μοντέλο Τυπικές γλώσσες ερωτημάτων Σχεσιακή άλγεβρα και λογισμός Εμπορικές γλώσσες ερωτημάτων SQL (συνδυασμός σχεσιακής άλγεβρας και λογισμού) QBE, (QUEL)

Επισκόπηση -αναλυτικά -SQL Θεμελιώδεις διατυπώσεις και έννοιες Έλεγχος οδηγού χρήσης για συγκεκριμένες υλοποιήσεις ΓΧΔ select, from, where, μετονομασία Πράξεις συνόλων Διάταξη Συναθροιστικές συναρτήσεις Εμφωλευμένα υπο-ερωτήματα Άλλα μέρη: ΓΟΔ, ορισμός σχήματος, εμφυτευμένη SQL, ακεραιότητα, εξουσιοδότηση, κα.

ΓΧΔ Γενική μορφή select a1, a2, an from r1, r2, rm where P [order by.] [group by ] [having ]

Θυμηθείτε: τη μικρή μας ΒΔ ΦΟΙΤΗΤΗΣ ΑΜ Όνομα Διεύθυνση 123 Σταύρου Αιόλου 234 Αντωνίου Θράκης ΜΑΘΗΜΑ Κωδ Όνομα ΔΜ cis331 ΔΒ 2 cis321 C 2 ΠΑΙΡΝΕΙ ΑΜ Κωδ βαθμός 123 cis331 A 234 cis331 B

ΓΧΔ παράδειγμα: Βρες τα ΑΜ όλων όσων ονομάζονται Αντωνίου select ΑΜ from φοιτητής where όνομα= Αντωνίου

ΓΧΔ - παρατήρηση Γενική μορφή select a1, a2, an from r1, r2, rm where P Το ισοδύναμο ερώτημα σε σχεσιακή άλγεβρα;

ΓΧΔ - παρατήρηση Γενική μορφή select a1, a2, an from r1, r2, rm where P π σ a ( ( r1 r2... rm)) 1, a 2,... an P

ΓΧΔ - παρατήρηση Γενική μορφή select distinct a1, a2, an from r1, r2, rm where P π σ a ( ( r1 r2... rm)) 1, a 2,... an P

Ηπρότασηselect select [distinct all ] όνομα from φοιτητής where διεύθυνση= Αιόλου

Ηπρότασηwhere Βρες τα ΑΜ όλων των φοιτητών με το όνομα Σταύρου που μένουν στην Αιόλου select ΑΜ from φοιτητής where διεύθυνση= Αιόλου and όνομα = Σταύρου

Ηπρότασηwhere Λογικοί τελεστές (and, or, not, ) Τελεστές σύγκρισης (<, >, =, ) Και ακόμα περισσότερα

Καιοισυμβολοσειρές; Βρες τους φοιτητές που μένουν στην (οδ. ήοδό) Αιόλου

Καιοισυμβολοσειρές; Βρες τους φοιτητές που μένουν στην (οδ. ήοδό) Αιόλου select ΑΜ from φοιτητής where διεύθυνση like %Αιόλου %: ταιριάζει οποιαδήποτε συμβολοσειρά _: ταιριάζει οποιονδήποτε χαρακτήρα

Ηπρότασηfrom Βρες τα ονόματα όσων παίρνουν το μάθημα cis331 ΦΟΙΤΗΤΗΣ ΑΜ Όνομα Διεύθυνση 123 Σταύρου Αιόλου 234 Αντωνίου Θράκης ΜΑΘΗΜΑ Κωδ Όνομα ΔΜ cis331 ΔΒ 2 cis321 C 2 ΠΑΙΡΝΕΙ ΑΜ Κωδ βαθμός 123 cis331 A 234 cis331 B

Ηπρότασηfrom Βρες τα ονόματα όσων παίρνουν το μάθημα cis331 select όνομα from φοιτητής, παίρνει where???

Ηπρότασηfrom Βρες τα ονόματα όσων παίρνουν το μάθημα cis331 select όνομα from φοιτητής, παίρνει where φοιτητής.αμ = παίρνει.αμ and παίρνει.κωδ = cis331

μετονομασία μεταβλητές πλειάδων Βρες τα ονόματα όσων παίρνουν το μάθημα cis331 select όνομα from ο δικός μας φοιτητής, φοιτητής παίρνει μαθήματα where ο δικός μας φοιτητής.αμ= φοιτητής παίρνει μαθήματα.αμ and φοιτητής παίρνει μαθήματα.κωδ = cis331

μετονομασία μεταβλητές πλειάδων Βρες τα ονόματα όσων παίρνουν το μάθημα cis331 select όνομα from ο δικός μας φοιτητής as S, φοιτητής παίρνει μαθήματα as T where S.ΑΜ =T.ΑΜ and T.κωδ = cis331

μετονομασία - self-join self -joins: βρες τους παππούδες του Θωμά Γονέας-Παιδί γονέας-ον. παιδί-ον. Μαρία Θωμάς Πέτρος Μαρία Γιάννης Θωμάς Γονέας-Παιδί γονέας-ον. παιδί-ον. Μαρία Θωμάς Πέτρος Μαρία Γιάννης Θωμάς

μετονομασία- self-join Παράδειγμα: Βρες το όνομα του παππού του Θωμά (Γονέας Παιδί (γονέας-ον, παιδί-ον)) select παππούς.γονέας-ον from ΓΟΝΕΑΣ_ΠΑΙ Ι as παππούς, ΓΟΝΕΑΣ_ΠΑΙ Ι where παππούς.παιδί-ον = ΓΟΝΕΑΣ_ΠΑΙ Ι.γονέαςον and ΓΟΝΕΑΣ_ΠΑΙ Ι.παιδί-ον = Θωμάς

μετονομασία- theta join Βρες τα ονόματα των μαθημάτων με περισσότερες ΔΜ από το μάθημα cis331 select Μ1.μάθημα-όνομα from μάθημα as Μ1, μάθημα as Μ2 where Μ1.ΔΜ > Μ2.ΔΜ and Μ2.κωδ = cis331

Τα μαθήματα με περισσότερες ΔΜ από το μάθημα cis331 select Μ1.όνομα from μάθημα as Μ1, μάθημα as Μ2 where Μ1.ΔΜ > Μ2.ΔΜ and Μ2.κωδ = cis331 { t Μ1 Μ Α Θ Η Μ Α Μ 2 Μ Α Θ Η Μ Α( Μ1[ Μ κωδ ] = cis331 Μ 2[ ΔΜ ] > Μ1[ ΔΜ ] t[ Μ όνομα ] = Μ 2[ Μ όνομα ])}

Επισκόπηση -αναλυτικά -SQL ΓΧΔ select, from, where Πράξεις συνόλων Διάταξη Συναθροιστικές Συναρτήσεις Εμφωλευμένες υπο-ερωτήσεις Άλλα μέρη: ΓΟΔ, ορισμός όψεων, εμφυτευμένη SQL, ακεραιότητα, εξουσιοδότηση, κα.

Πράξεις Συνόλων Βρες τα ΑΜ όσων παίρνουν και τα δύο μαθήματα cis351 και cis331 ΠΑΙΡΝΕΙ ΑΜ κωδ βαθμός 123 cis331 A 234 cis351 B

Πράξεις Συνόλων Βρες τα ΑΜ όσων παίρνουν και τα δύο μαθήματα cis351 και cis331 select ΑΜ from παίρνει where κωδ= cis351 and κωδ= cis331?

Πράξεις Συνόλων Βρες τα ΑΜ όσων παίρνουν και τα δύο μαθήματα cis351 και cis331 select ΑΜ from παίρνει where κωδ= cis351 and κωδ= cis331

Πράξεις Συνόλων Βρες τα ΑΜ όσων παίρνουν και τα δύο μαθήματα cis351 και cis331 (select ΑΜ from παίρνει where κωδ= cis351 ) intersect (select ΑΜ from παίρνει where κωδ= cis331 ) Άλλες επιλογές: union, except

Επισκόπηση -αναλυτικά -SQL ΓΧΔ select, from, where Πράξεις συνόλων Διάταξη Συναθροιστικές Συναρτήσεις Εμφωλευμένες υπο-ερωτήσεις Άλλα μέρη: ΓΟΔ, ορισμός όψεων, εμφυτευμένη SQL, ακεραιότητα, εξουσιοδότηση, κα.

Διάταξη Βρες τα αρχεία των φοιτητών, ταξινομημένα κατά όνομα select * from φοιτητής where

Διάταξη Βρες τα αρχεία των φοιτητών, ταξινομημένα κατά όνομα select * from φοιτητής order by όνομα asc asc εξ ορισμού

Διάταξη Βρες τα αρχεία των φοιτητών, ταξινομημένα κατά όνομα και ξεκινώντας από το μεγαλύτερο ΑΜ select * from φοιτητής order by όνομα, ΑΜ desc

Επισκόπηση -αναλυτικά -SQL ΓΧΔ select, from, where Πράξεις συνόλων Διάταξη Συναθροιστικές Συναρτήσεις Εμφωλευμένες υπο-ερωτήσεις Άλλα μέρη: ΓΟΔ, ορισμός όψεων, εμφυτευμένη SQL, ακεραιότητα, εξουσιοδότηση, κα.

Συναθροιστικές Συναρτήσεις Βρες το μέσο όρο όλων των φοιτητών select?? from παίρνει ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3

Συναθροιστικές Συναρτήσεις Βρες το μέσο όρο όλων των φοιτητών select avg(βαθμός) from παίρνει ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3 Αποτέλεσμα: ένας αριθμός Ποιεςάλλεςσυναρτήσεις;

Συναθροιστικές Συναρτήσεις A: sum, count, min, max (std)

Συναθροιστικές Συναρτήσεις Συνολικός αριθμός φοιτητών σε κάθε μάθημα select count(*) from παίρνει ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3

Συναθροιστικές Συναρτήσεις Συνολικός αριθμός φοιτητών στο μάθημα cis331 select count(*) from παίρνει where κωδ= cis331 ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3

Συναθροιστικές Συναρτήσεις Συνολικός αριθμός φοιτητών σε κάθε μάθημα select count(*) from παίρνει where??? ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3

Συναθροιστικές Συναρτήσεις Συνολικός αριθμός φοιτητών σε κάθε μάθημα select κωδ, count(*) from παίρνει group by κωδ ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3 Κωδ count cis331 2

Συναθροιστικές Συναρτήσεις Συνολικός αριθμός φοιτητών σε κάθε μάθημα select κωδ, count(*) from παίρνει group by κωδ order by κωδ ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3 Κωδ count cis331 2

Συναθροιστικές Συναρτήσεις Συνολικός αριθμός φοιτητών σε κάθε μάθημα ταξινομημένος βάσει πλήθους, σε φθίνουσα διάταξη select κωδ, count(*) as πλήθος from παίρνει group by κωδ order by πλήθος desc ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3 κωδ cis331 2 πλήθος

Συναθροιστικές Συναρτήσεις - having Φοιτητές με Μέσο Όρο > 3 ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3

Συναθροιστικές Συναρτήσεις - having Φοιτητές με Μέσο Όρο > 3 select???, avg(βαθμός) from παίρνει group by??? ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3

Συναθροιστικές Συναρτήσεις - having Φοιτητές με Μέσο Όρο > 3 select ΑΜ, avg(βαθμός) from παίρνει group by ΑΜ??? ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3 AM avg(βαθμός) 123 4 234 3

Συναθροιστικές Συναρτήσεις - having Φοιτητές με Μέσο Όρο > 3 select ΑΜ, avg(βαθμός) from παίρνει group by ΑΜ having avg(βαθμός)>3.0 ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3 ΑΜ avg(βαθμός) 123 4 234 3 having <-> where για ομάδες

Συναθροιστικές Συναρτήσεις - having Βρες τους φοιτητές και το μέσο όρο τους που έχουν πάρει περισσότερα από 5 μαθήματα select ΑΜ, avg(βαθμός) from παίρνει group by ΑΜ having count(*) > 5 ΑΜ κωδ βαθμός 123 cis331 4 234 cis331 3 ΑΜ avg(βαθμός) 123 4 234 3

Επισκόπηση -αναλυτικά -SQL ΓΧΔ select, from, where Πράξεις συνόλων Διάταξη Συναθροιστικές Συναρτήσεις Εμφωλευμένες υπο-ερωτήσεις Άλλα μέρη: ΓΟΔ, ορισμός όψεων, εμφυτευμένη SQL, ακεραιότητα, εξουσιοδότηση, κα.

ΓΧΔ Γενική μορφή select a1, a2, an from r1, r2, rm where P [order by.] [group by ] [having ]

Θυμηθείτε: τη μικρή μας ΒΔ ΦΟΙΤΗΤΗΣ ΑΜ Όνομα Διεύθυνση 123 Σταύρου Αιόλου 234 Αντωνίου Θράκης ΜΑΘΗΜΑ Κωδ Όνομα ΔΜ cis331 ΔΒ 2 cis321 C 2 ΠΑΙΡΝΕΙ ΑΜ Κωδ βαθμός 123 cis331 A 234 cis331 B

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Τα ονόματα των φοιτητών που έχουν πάρει το μάθημα cis351 select όνομα from φοιτητής where... ΑΜ στο σύνολο των φοιτητών που έχουν πάρει το μάθημα cis351

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τα ονόματα των φοιτητών του μαθήματος cis351 select όνομα from φοιτητής where... select ΑΜ from παίρνει where κωδ = cis351

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τα ονόματα των φοιτητών του μαθήματος cis351 select όνομα from φοιτητής where ΑΜ in ( select ΑΜ from παίρνει where κωδ = cis351 )

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις in συγκρίνει μια τιμή με ένα σύνολο τιμών in μπορεί να συνδυαστεί με άλλους λογικούς τελεστές Είναι πλεονάζων (αλλά φιλικός στο χρήστη!): select όνομα from φοιτητής.. where κωδ = cis351.

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις in συγκρίνει μια τιμή με ένα σύνολο τιμών in μπορεί να συνδυαστεί με άλλους λογικούς τελεστές Είναι πλεονάζων (αλλά φιλικός στο χρήστη!): select όνομα from φοιτητής, παίρνει where κωδ = cis351 and φοιτητής.αμ=παίρνει.αμ

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τα ονόματα των φοιτητών του μαθήματος cis351 που μένουν στην οδό Αιόλου select όνομα from φοιτητής where διεύθυνση= Αιόλου and ΑΜ in (select ΑΜ from παίρνει where κωδ= cis351 )

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις in συγκρίνει μια τιμή με ένα σύνολο τιμών Άλλοι τελεστές σαν το in ;;

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τους φοιτητές με το μεγαλύτερο ΑΜ select * from φοιτητής where ΑΜ είναι μεγαλύτερο από κάθε άλλο ΑΜ

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τους φοιτητές με το μεγαλύτερο ΑΜ select * from φοιτητής where ΑΜ μεγαλύτερο από κάθε select ΑΜ from φοιτητής

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τους φοιτητές με το μεγαλύτερο ΑΜ select * from φοιτητής where ΑΜ > all ( select ΑΜ from φοιτητής) σχεδόν σωστό

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τους φοιτητές με το μεγαλύτερο ΑΜ select * from φοιτητής where ΑΜ >= all ( select ΑΜ from φοιτητής)

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τους φοιτητές με το μεγαλύτερο ΑΜ χωρίς εμφωλευμένες υπο-ερωτήσεις; select S1.ΑΜ, S1.όνομα, S1.διεύθυνση from φοιτητής as S1, φοιτητής as S2 where S1.ΑΜ > S2.ΑΜ Δεν είναι η σωστή απάντηση (τι μας δίνει;)

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις S1 ΦΟΙΤΗΤΗΣ AM όνομα διεύθυνση 123 Σταύρου Αιόλου 234 Αντωνίου Θράκης S2 ΜΑΘΗΜΑ κωδ όνομα ΔΜ cis331 d.b. 2 cis321 o.s. 2 S1.ΑΜ>S2.ΑΜ S1 x S2 S1. ΑΜ S2.ΑΜ. 123 123 234 123 123 234 234 234

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις select S1.ΑΜ, S1.όνομα, S1.διεύθυνση from φοιτητής as S1, φοιτητής as S2 where S1.ΑΜ > S2.ΑΜ Επιστρέφει τα αρχεία όλων των φοιτητών εκτός αυτού με το μικρότερο ΑΜ

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τους φοιτητές με το μεγαλύτερο ΑΜ χωρίς εμφωλευμένες υπο-ερωτήσεις; select S1.ΑΜ, S1.όνομα, S1.διεύθυνση from φοιτητής as S1, φοιτητής as S2 where S1.ΑΜ < S2.ΑΜ Επιστρέφει τα αρχεία όλων των φοιτητών εκτός αυτού με το μεγαλύτερο ΑΜ- συνεπώς.

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Βρες τους φοιτητές με το μεγαλύτερο ΑΜ χωρίςεμφωλευμένεςυπο-ερωτήσεις; (select * from φοιτητής) except (select S1.ΑΜ, S1.όνομα, S1.διεύθυνση from φοιτητής as S1, φοιτητής as S2 where S1.ΑΜ < S2.ΑΜ)

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις (select * from φοιτητής) except (select S1.ΑΜ, S1.όνομα, S1.διεύθυνση from φοιτητής as S1, φοιτητής as S2 where S1.ΑΜ < S2.ΑΜ) select * from φοιτητής where ΑΜ >= all (select ΑΜ from φοιτητής)

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Περισσότερο ευανάγνωστο από: select * from φοιτητής where ΑΜ >= all (select ΑΜ φοιτητής) from

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Περισσότερο ευανάγνωστο από: select * from φοιτητής where ΑΜ >= all (select ΑΜ φοιτητής) from select * from φοιτητής where ΑΜ in (select max(αμ) from φοιτητής)

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Το ΑΜ του φοιτητή με το μεγαλύτερο μέσο όρο βαθμολογίας ΦΟΙΤΗΤΗΣ ΑΜ Όνομα Διεύθυνση 123 Σταύρου Αιόλου 234 Αντωνίου Θράκης ΜΑΘΗΜΑ Κωδ Όνομα ΔΜ cis331 ΔΒ 2 cis321 C 2 ΠΑΙΡΝΕΙ ΑΜ Κωδ βαθμός 123 cis331 A 234 cis331 B

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Το ΑΜ και το μέσο όρο του φοιτητή με το μεγαλύτερο μέσο όρο select ΑΜ, avg(βαθμός) from παίρνει where

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Το ΑΜ και το μέσο όρο του φοιτητή με το μεγαλύτερο μέσο όρο select ΑΜ, avg(βαθμός) from παίρνει group by ΑΜ having avg( βαθμός)... Μεγαλύτερος από κάθε άλλο μέσο όρο

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις Το ΑΜ και το μέσο όρο του φοιτητή με το μεγαλύτερο μέσο όρο select ΑΜ, avg(βαθμός) from παίρνει group by ΑΜ having avg( βαθμός) >= all ( select avg( βαθμός ) from φοιτητής group by ΑΜ )} όλοι οι Μ.Ο

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις in και >= all συγκρίνουν μια τιμή με ένα σύνολο τιμών Άλλοι τελεστές σαν αυτούς;

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις <all(), <>all()... <>all ισοδύμανο με το not in >some(), >= some ()... = some() ισοδύναμο με το in exists

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις exists : βρες τα μαθήματα που δεν έχει πάρει κανείς select κωδ from μάθημα.χωρίς πλειάδες στο παίρνει ΠΑΙΡΝΕΙ ΑΜ κωδ βαθμός 123 cis331 A 234 cis331 B ΜΑΘΗΜΑ κωδ όνομα ΔΜ cis331 d.b. 2 cis321 o.s. 2

ΓΧΔ Εμφωλευμένες υπο-ερωτήσεις exists : βρες τα μαθήματα που δεν έχει πάρει κανείς select κωδ from μάθημα where not exists (select * from παίρνει where μάθημα.κωδ = παίρνει.κωδ)

ΓΧΔ Παραγόμενες Σχέσεις Βρες το ΑΜ με το μεγαλύτερο μέσο όρο select ΑΜ, avg(βαθμός) from παίρνει group by ΑΜ having avg( βαθμός) >= all ( select avg( βαθμός ) from φοιτητής group by ΑΜ )

ΓΧΔ Παραγόμενες Σχέσεις Βρες το ΑΜ με το μεγαλύτερο μέσο όρο Το ερώτημα θα ήταν πιο εύκολο αν είχαμε έναν πίνακα σαν: χρήσιμοςπίνακας (ΑΜ, Μ.Ο): Και τότε; χρήσιμοςπίνακας ΑΜ Μ.Ο 123 3.5 678 3.3

ΓΧΔ Παραγόμενες Σχέσεις select ΑΜ, Μ.Ο from χρήσιμοςπίνακας χρήσιμοςπίνακας ΑΜ Μ.Ο 123 3.5 678 3.3 where Μ.Ο in (select max(μ.ο) from χρήσιμοςπίνακας)

ΓΧΔ Παραγόμενες Σχέσεις Βρες το ΑΜ με το μεγαλύτερο μέσο όρο- Ερώτηση για χρήσιμοςπίνακας (ΑΜ, Μ.Ο);

ΓΧΔ Παραγόμενες Σχέσεις Βρες το ΑΜ με το μεγαλύτερο μέσο όρο- Ερώτηση για χρήσιμοςπίνακας (ΑΜ, Μ.Ο); select ΑΜ, avg(βαθμός) from παίρνει group by ΑΜ

ΓΧΔ Παραγόμενες Σχέσεις Βρες το ΑΜ με το μεγαλύτερο μέσο όρο χρήσιμοςπίνακας(αμ,μ.ο) selectαμ, Μ.Ο from χρήσιμοςπίνακας where Μ.Ο = (select max(μ.ο) from χρήσιμοςπίνακας) select ΑΜ, avg(βαθμός) from παίρνει group byαμ

ΓΧΔ Παραγόμενες Σχέσεις Βρες το ΑΜ με το μεγαλύτερο μέσο όρο select ΑΜ, Μ.Ο from (select ΑΜ, avg(βαθμός) from παίρνει group by ΑΜ) as χρήσιμοςπίνακας(αμ, Μ.Ο) where Μ.Ο in (select max(μ.ο) from χρήσιμοςπίνακας)

Όψεις Βρες το ΑΜ με το μεγαλύτερο μέσο όρο- Μπορούμε να δημιουργήσουμε έναν μόνιμο, εικονικό πίνακα: create view χρήσιμοςπίνακας(αμ, Μ.Ο) as select ΑΜ, avg(βαθμός) from παίρνει group by ΑΜ

Όψεις Οι όψεις καταγράφονται στο σχήμα για πάντα (δηλ. μέχρι να δώσουμε την εντολή drop view ) συνήθως, καταλαμβάνουν μικρό χώρο στο δίσκο, εφόσον υπολογίζονται on the fly (όμως: υλοποιημένες όψεις )

Επισκόπηση ενός ΣΔΒΔ DML precomp. DML parser trans. mgr Τυπικός χρήστης buffer mgr DDL parser Διαχειριστής ΒΔ create view.. catalog

Επισκόπηση -αναλυτικά -SQL ΓΧΔ select, from, where Πράξεις συνόλων Διάταξη Συναθροιστικές Συναρτήσεις Εμφωλευμένες υπο-ερωτήσεις Άλλα μέρη: ΓΟΔ, ορισμός όψεων, εμφυτευμένη SQL, ακεραιότητα, εξουσιοδότηση, κα.

Επισκόπηση -αναλυτικά -SQL ΓΧΔ Άλλα μέρη: τροποποιήσεις συνενώσεις ΓΟΔ εμφυτευμένη SQL εξουσιοδότηση