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

Σχετικά έγγραφα
Βάσεις Δεδομένων (Databases)

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

SQL Data Manipulation Language

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

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

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

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

Lecture 16: SQL DML III

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

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

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

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

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

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

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

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

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

Σχεδίαση Βάσεων Δεδομένων

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

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

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

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

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

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

Query-by-Example (QBE)

Lecture 14: SQL DML I

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

Εισαγωγή στη Σχεσιακή Άλγεβρα

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

Certified Data Base Designer (CDBD)

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

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

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

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

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

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

Διάλεξη 10: Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός (Relational Algebra/Calculus) ΙI

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

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


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

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

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

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

PHP 3. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

1 / 97

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

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

1 / 87

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED. Χέρι χέρι με τον Καρατζαφέρη

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

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

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

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

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

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

SQL Server 2005 Tutorial Αςκήςεισ. Γεράσιμος Μαρκέτος InfoLab, Τμήμα Ρληροφορικήσ, Ρανεπιςτήμιο Ρειραιϊσ (

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

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

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

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

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

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

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

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

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

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2013

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης

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

Lecture 15: SQL DML II

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

Βάσεις Δεδομένων Ι 8. Ερωτήματα (B) Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας

S Q Q L L -- SQL (Structured Query Language) select insert update delete 2.47

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

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

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

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

Transcript:

Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109)

Δομημένη Γλώσσα Ερωτήσεων SQL DML Σχεσιακοί Τελεστές Τελεστές Συνόλων Ανάκτηση με NULLs Συνδέσεις-Συνενώσεις Σύνθετα Ερωτήματα

Δηλωτική Ερώτηση SELECT Title, TeamName FROM WHERE Rank = 1; Title TeamName Champions 3

SQL Select: Δήλωση Πλήρης Μορφή: SELECT attribute list FROM table list WHERE selection-condition GROUP BY grouping attribute(s) HAVING grouping condition ORDER BY {attribute ASC DESC} pairs 4

Σχήμα βάσης για τα παραδείγματα Βάση φοιτητών: STUDENT (SID, Name, Major, Class, QPA, Phone); [STUDENT (SID, FName, LName, DEPT, Class, );] COURSE (CID, Name, Credits); ENROLLS (CID,SID,Term, Grade); STAFF (SSN, SID, Name, Major); Βάση Βιβλιοθηκάριων: LIBRARIAN (SSN, Name, City, Gender, Salary, SNO); SECTION (SNO, Name, HeadSSN); DEPENDENT (Name, LIBSSN, DSSN, Gender, DoB) 5

Σχεσιακοί Τελεστές στην SQL STUDENT(SID,Name, Major); COURSE(CID,Name,Credits); ENROLLS(CID,SID,Term, Grade); π λίστα_χαρακτηριστικών (r) SELECT SID, Name, Major FROM STUDENT; σ συνθήκη_επιλογής (r) SELECT FROM STUDENT WHERE Major = CS ; 6

Σχεσιακοί Τελεστές στην SQL r x s SELECT STUDENT., ENROLLS. FROM STUDENT, ENROLLS; r r.a θ s.b s SELECT STUDENT., ENROLLS. FROM STUDENT, ENROLLS WHERE STUDENT.SID = ENROLLS.SID; 7

Ψευδώνυμα στην SQL: Ο Τελεστής AS Αλλαγή ονομάτων των χαρακτηριστικών στο αποτέλεσμα των ερωτήσεων: SELECT SID AS Student_ID FROM STUDENT; Ψευδώνυμο Πίνακα μπορεί να επιτευχθεί με τον AS τελεστή στο FROM-clause: (Το AS Προαιρετικό) SELECT S.Major FROM STUDENT AS S WHERE S.name = 'Ruchi Agrawal'; Αλλαγή ονομάτων των χαρακτηριστικών εντός των ερωτήσεων: SELECT * FROM STUDENT AS S(ID,FN,MJ) WHERE S.FN = 'Thalia' AND S.MJ = COE'; 8

Ομαδοποίηση των πλειάδων: Το GROUP BY και HAVING Clauses Η ομαδοποίηση των πλειάδων βασίζετε σε τιμή ορισμένων χαρακτηριστικών που ονομάζονται χαρακτηριστικά ομαδοποίησης SELECT A, F(B) FROM r WHERE C GROUPING BY A HAVING P F(B) = συναθροιστικές λειτουργίες στο χαρακτηριστικό B C = συνθήκη επιλογής-συνένωσης (selection-join) P = ένα κατηγόρημα στις πλειάδες τις κάθε ομάδας Τα χαρακτηριστικά ομαδοποίησης A πρέπει να εμφανίζονται στο SELECT-clause για να έχει νόημα 9

Συναθροιστικές Λειτουργίες Η SQL παρέχει 5 συναθροιστικές συναρτήσεις : SUM, MAX, MIN, AVG, και COUNT [COUNT( )] Q: Εμφάνισε όλα τα στατιστικά για τους μισθούς των βιβλιοθηκάριων. SELECT SUM (Salary) AS TotalSalaries, MAX (Salary) AS MaxSalary, MIN (Salary) AS MinSalary, AVG (Salary) AS AvgSalary, COUNT (*) AS Cardinality, COUNT (DISTINCT Salary) AS Salarylevels FROM LIBRARIAN; Μπορούν να εφαρμοστούν και σε υπολογισμένες τιμές: SUM(Price * Quantity). 10

Αριθμητικές Πράξεις Αριθμητικοί τελεστές (+; -; *; /) μπορούν να εφαρμοσθούν σε αριθμητικές τιμές σε μια δήλωση Q: SELECT 1.1 * SUM (Salary) FROM LIBRARIAN; Αύξηση (+) και μείωση (-) μπορούν να εφαρμοσθούν στους τύπους δεδομένων: date, time και timestamp. 11

Ομαδοποίηση των πλειάδων Παράδειγμα 1: SELECT DEPT, CLASS, COUNT(*) AS NoStudents FROM STUDENT WHERE QPA >= 3.5 GROUP BY DEPT, CLASS; Το WHERE γίνετε πρώτο και μετά η ομαδοποίηση. 12

Ομαδοποίηση των πλειάδων Παράδειγμα 2: SELECT DEPT, CLASS, COUNT(*) AS NoStudents FROM STUDENT WHERE QPA >= 3.5 GROUP BY DEPT, CLASS HAVING COUNT ( ) >= 5; 13

Ταξινόμηση αποτελέσματος: Το ORDER BY Clause ORDER BY λίστα σειράς λίστα σειράς: λίστα από ζεύγη <χαρακτηριστικό,σειρά> σειρά: ASC (εξ ορισμού), DESC Q: SELECT * FROM STUDENT WHERE QPA >= 3.5 ORDER BY LName ASC, FName ASC, MI DESC; 14

Δομημένη Γλώσσα Ερωτήσεων SQL DML Σχεσιακοί Τελεστές Ανάθεση Σχεσιακών Τελεστών Ανάκτηση με NULLs Συνδέσεις-Συνενώσεις Σύνθετα Ερωτήματα

Αποτελέσματα σαν Σύνολα Το Select δεν αφαιρεί τις διπλές πλειάδες Η αφαίρεση είναι ακριβή απαιτεί ταξινόμηση Οι διπλές πλειάδες μπορεί να είναι μέρος του αποτελέσματος Οι διπλές πλειάδες απαιτούνται από τις περισσότερες συναθροιστικές λειτουργίες Η αφαίρεση επιτυγχάνετε με το DISTINCT SELECT DISTINCT Term FROM STUDENT, ENROLLS WHERE STUDENT.SID = ENROLLS.SID AND STUDENT.SID = 123; Εξ ορισμού έχουμε SELECT [ALL] 16

Βασικές λειτουργίες Ανάθεσης r s r s r s σχέση r A B C D A F C B D σχέση s B G A D A F Μπορούμε να κάνουμε,, μεταξύ 2 οποιονδήποτε σχέσεων; Πρέπει να είναι συμβατά Συνένωσης R = S και Ανταποκρινόμενα χαρακτηριστικά να έχουν το ίδιο πεδίο ορισμού Ιδιότητες Το και το είναι μεταβατικές λειτουργίες Η Διαφορά δεν είναι μεταβατική (commutative) 17

Τελεστές Συνόλων Η SQL υποστηρίζει UNION και EXCEPT (διαφορά) UNION ALL κρατά τις διπλές πλειάδες ( SELECT SID FROM STUDENT WHERE Major = CS ) UNION ( SELECT SID FROM STUDENT WHERE Major = Math ); ( SELECT SID FROM STUDENT) EXCEPT ( SELECT SID FROM STUDENT WHERE Major = Math ); 18

Αλληλουχία σειράς χαρακτήρων (String) Η Αλληλουχία συμβολίζετε με 2 κατακόρυφες γραμμές ( ) ενώνει σε μια μονό σειρά, δυο ή περισσότερες σειρές χαρακτήρων Q1: Εμφάνισε σε μια τιμή (μια στήλη) Το όνομα όλων των φοιτητών και το τηλέφωνό τους SELECT Fname Lname AS Name, PhoneNumber FROM STUDENT; Q2: SELECT Name FROM COURSE WHERE Dept CourseNumber = CS1555 ; 19

Ταυτοποίηση Μοτίβου LIKE υποστηρίζει την σύγκριση τμημάτων από σειρές Το σύμβολο '%' δηλώνει ταύτιση πλήθους χαρακτήρων περιλαμβανομένου των κενών Σημείωση: Το δεν είναι σωστό Ο σύμβολο '_' ταιριάζει ένα μόνο χαρακτήρα Επέστρεψε όλους τους φοιτητές με Pitt τοπικό τηλέφωνο SELECT Name FROM STUDENT WHERE Phone LIKE '412.62%'; 20

Ταυτοποίηση Μοτίβου Επέστρεψε όλους τους φοιτητές με τοπικό τηλέφωνο που αρχίζει με 6 και το 3 ο ψηφίο είναι 3. SELECT Name FROM STUDENT WHERE Phone LIKE 6_3%'; Κωδικός Escape ορίζει το χαρακτήρα escape που προκαλεί την SQL να μεταφράσει τον χαρακτήρα (%) σαν τον ίδιο σε ένα: SELECT VideoName FROM RENTALS WHERE Discount LIKE '10&%' ESCAPE '&'; 21

Δομημένη Γλώσσα Ερωτήσεων SQL DML Σχεσιακοί Τελεστές Ανάθεση Σχεσιακών Τελεστών Ανάκτηση με NULLs Συνδέσεις-Συνενώσεις Σύνθετα Ερωτήματα

Σχήμα βάσης για τα παραδείγματα Βάση φοιτητών: STUDENT (SID, Name, Major, Class, QPA, Phone); [STUDENT (SID, FName, LName, DEPT, Class, );] COURSE (CID, Name, Credits); ENROLLS (CID,SID,Term, Grade); STAFF (SSN, SID, Name, Major); Βάση Βιβλιοθηκάριων: LIBRARIAN (SSN, Name, City, Gender, Salary, SNO); SECTION (SNO, Name, HeadSSN); DEPENDENT (Name, LIBSSN, DSSN, Gender, DoB) 23

Έλεγχος για NULL τιμές Οι NULL τιμές πρέπει να αναφέρονται και ελέγχονται ρητά Η SQL παρέχει τους IS NULL και IS NOT NULL τελεστές για τις NULL τιμές Παράδειγμα: SELECT SID, Name FROM STUDENT AS S WHERE S.name IS NULL; 24

Συγκρίνοντας NULL Τιμές Το NULL σε μια συνθήκη παράγει UNKNOWN Η SQL παρέχει τελεστές για δοκιμή κάθε τελεστή IS FALSE και IS NOT FALSE IS TRUE και IS NOT TRUE IS UNKNOWN και IS NOT UNKNOWN Παράδειγμα: SELECT SID, Name FROM STUDENT AS S WHERE ((S.Major= CS and S.Gender = F )) IS NOT FALSE; Φιλτράρει όλες τις γραμμές στο STUDENT οι οποίες στο Major, Gender, ή και στα 2 έχουν NULL 25

Πίνακες Επαλήθευσης X TRUE UNK FALSE NOT FALSE UKN TRUE OR TRUE UNK FALSE TRUE TRUE TRUE TRUE UNK TRUE UNK UNK FALSE TRUE UNK FALSE AND TRUE UNK FALSE TRUE TRUE UNK FALSE UNK UNK UNK FALSE FALSE FALSE FALSE FALSE 26

Δομημένη Γλώσσα Ερωτήσεων SQL DML Σχεσιακοί Τελεστές Ανάθεση Σχεσιακών Τελεστών Ανάκτηση με NULLs Συνδέσεις-Συνενώσεις Σύνθετα Ερωτήματα

Εντολή Σύνδεσης - Join (SQL2) Το JOIN δημιουργήθηκε για να καθορίζει την συνθήκη της σύνδεσης στο FROM-clause: table1 JOIN table2 ON join-condition Παραδείγματα για το θ-join: SELECT SID, S.Name, Term FROM (STUDENT S JOIN ENROLLS E ON S.SID=E.SID) WHERE E.CID = 1555; 28

Φυσική Σύνδεση (Natural Join) NATURAL JOIN (χωρίς ON-clause) table1 NATURAL JOIN table2 Αλλάζουμε το όνομα των χαρακτηριστικών αν χρειαστεί, π.χ., SELECT * FROM (LIBRARIAN NATURAL JOIN SECTION AS S(SNO, SName, Head)) WHERE Sname = Children ; Φυσική σύνδεση πάνω σε ορισμένα χαρακτηριστικά: USING (λίστα χαρακτηριστικών) SELECT SID, S.Name, Term FROM (STUDENT NATURAL JOIN ENROLLS USING (SID)) WHERE ENROLLS.CID = 1555; 29

Άλλες Συνδέσεις: Εντολές Εκτεταμένων Σχεσιακών Τελεστών Εξωτερικές συνδέσεις: LEFT OUTER JOIN ή LEFT JOIN RIGHT OUTER JOIN ή RIGHT JOIN FULL OUTER JOIN ή FULL JOIN CROSS JOIN: παράγει ένα διασταυρωμένο γινόμενο (cross product) UNION JOIN: Outer Union τελεστής 30

Συνθήκες Διαστημάτων BETWEEN, και η άρνησή του NOT BETWEEN, μπορούν να χρησιμοποιηθούν με αριθμητικούς, χαρακτήρες και χρονολογικούς τύπους δεδομένων Απλοποιεί την διατύπωση των συνθηκών επιλογών Π.χ., SELECT * FROM LIBRARIAN WHERE (Salary >= 25000 AND Salary <= 35000); SELECT * FROM LIBRARIAN WHERE (Salary BETWEEN 25000 AND 35000); 31

Δομημένη Γλώσσα Ερωτήσεων SQL DML Σχεσιακοί Τελεστές Ανάθεση Σχεσιακών Τελεστών Ανάκτηση με NULLs Συνδέσεις-Συνενώσεις Σύνθετα Ερωτήματα

Σύνθετες, Εμπεριεχόμενες Ερωτήσεις & Σύνολο συγκρίσεων Δυο ορισμοί για το σύνολο: Άμεσος ή Ρητός: καταγραφή των μελών του συνόλου εντός των ( ) Π.χ., (1, 2, 3) και ('Science', 'Art', 'Children') Έμμεσος: ορίζετε σαν υποερώτημα (εμπεριεχόμενο ερώτημα) του οποίου ο πίνακας εξόδου (σύνολο) χρησιμοποιείτε από την συνθήκη επιλογής της εμπεριεχούσης SELECT δήλωσης Μοναδιαία υποερώτηση (Scalar subquery): Μια υποερώτηση της οποίας η έξοδος είναι μια μονή στήλη και μια μόνο γραμμή Αυτό μπορεί να χρησιμοποιηθεί σε κάθε δήλωση στην οποία μια μονή τιμή μπορεί να εμφανισθεί 33

Μοναδιαία υποερώτηση (Scalar Subquery) SELECT SID, Name FROM STUDENT WHERE SID = ( SELECT SID FROM STAFF AS F WHERE F.SSN = 132-32-2222 ); 34