1 / 97

Σχετικά έγγραφα
1 / 87

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

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

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


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

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



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

Ερωτήματα επιλογής με σύζευξη πινάκων


1 / 150

1 / 105

1 / 106

DELETE, UPDATE, INSERT

DELETE, UPDATE, INSERT.

Πρόλογος Μέρος Ι Μια βόλτα στις βάσεις δεδομένων Μια βόλτα στις βάσεις δεδομένων...25

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

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


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

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

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


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

1 / 106

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

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

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

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

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

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

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

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

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

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL

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

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

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

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

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

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

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

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

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


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

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


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

Σύβακας Σταύρος ΠΕ19,MSc. IT ΣΥΒΑΚΑΣ ΣΤΑΥΡΟΣ ΕΡΩΤΗΜΑΤΑ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τίτλος Πακέτου Certified Computer Expert-ACTA

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - SQL

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

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

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

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

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

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) MASTER IN OFFICE microsoft access ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

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

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

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

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

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

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

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

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

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

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

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

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

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

Transcript:

Τα πρώτα ερωτήματα SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 97

Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα δεδομένων 3 Απλά ερωτήματα περιορισμού, επιλέγοντας εγγραφές από ένα πίνακα δεδομένων 4 Σχεσιακή άλγεβρα και απλά ερωτήματα επιλογής 5 Αναζήτηση ημερολογιακών δεδομένων 6 Αναζήτηση κειμένου σε πίνακα δεδομένων 7 Επεκτάσεις της προβολής, πράξεις και αλγεβρικές παραστάσεις κατά την προβολή δεδομένων 8 Ταξινόμηση 2 / 97

Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα ως SQUARE και SEQUEL. 3 / 97

Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα ως SQUARE και SEQUEL. Είναι μια διαδικαστική γλώσσα δεδομένων με δύο μέρη: α) DDL: γλώσσα ορισμού δεδομένων β) DML: γλώσσα χειρισμού δεδομένων. 4 / 97

Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα ως SQUARE και SEQUEL. Είναι μια διαδικαστική γλώσσα δεδομένων με δύο μέρη: α) DDL: γλώσσα ορισμού δεδομένων β) DML: γλώσσα χειρισμού δεδομένων. Πρώτη εμπορική υλοποίηση ως System R από την IBM (1970s). 5 / 97

Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα ως SQUARE και SEQUEL. Είναι μια διαδικαστική γλώσσα δεδομένων με δύο μέρη: α) DDL: γλώσσα ορισμού δεδομένων β) DML: γλώσσα χειρισμού δεδομένων. Πρώτη εμπορική υλοποίηση ως System R από την IBM (1970s). Η εταιρεία Relational Software Inc. κατασκευάζει το λογισμικό που αργότερα θα γίνει γνωστό ως Oracle 6 / 97

Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα ως SQUARE και SEQUEL. Είναι μια διαδικαστική γλώσσα δεδομένων με δύο μέρη: α) DDL: γλώσσα ορισμού δεδομένων β) DML: γλώσσα χειρισμού δεδομένων. Πρώτη εμπορική υλοποίηση ως System R από την IBM (1970s). Η εταιρεία Relational Software Inc. κατασκευάζει το λογισμικό που αργότερα θα γίνει γνωστό ως Oracle πόλεμος πάντων μὲν πατήρ ἐστι (Ηράκλειτος) 7 / 97

Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα ως SQUARE και SEQUEL. Είναι μια διαδικαστική γλώσσα δεδομένων με δύο μέρη: α) DDL: γλώσσα ορισμού δεδομένων β) DML: γλώσσα χειρισμού δεδομένων. Πρώτη εμπορική υλοποίηση ως System R από την IBM (1970s). Η εταιρεία Relational Software Inc. κατασκευάζει το λογισμικό που αργότερα θα γίνει γνωστό ως Oracle πόλεμος πάντων μὲν πατήρ ἐστι (Ηράκλειτος) Dialects: SQL-86, SQL-89, SQL-99,..., SQL-2011,... 8 / 97

Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα ως SQUARE και SEQUEL. Είναι μια διαδικαστική γλώσσα δεδομένων με δύο μέρη: α) DDL: γλώσσα ορισμού δεδομένων β) DML: γλώσσα χειρισμού δεδομένων. Πρώτη εμπορική υλοποίηση ως System R από την IBM (1970s). Η εταιρεία Relational Software Inc. κατασκευάζει το λογισμικό που αργότερα θα γίνει γνωστό ως Oracle πόλεμος πάντων μὲν πατήρ ἐστι (Ηράκλειτος) Dialects: SQL-86, SQL-89, SQL-99,..., SQL-2011,... NoSQL : Not only SQL 9 / 97

Τυπικό παράδειγμα βάσης δεδομένων Η βάση company Μια εταιρεία μελετών έχει πολλούς υπαλλήλους. Η υπάλληλοι εργάζονται σε διάφορα τμήματα της εταιρείας. Κάθε τμήμα διοικείται από έναν υπάλληλο. Οι υπάλληλοι απασχολούνται σε διάφορα έργα μελετών. Σε κάθε έργο απασχολούνται πιθανά πολλοί υπάλληλοι από διάφορα τμήματα. 10 / 97

Ο πίνακας employees από τη βάση company Εστω η σχέση employees με σχήμα: employees(empid, firstname, lastname, depid, salary, hiredate) empid firstname lastname depid salary hiredate 102 Νικηφόρος Διαμαντίδης 6 1212.50 2003-06-02 109 Μαρία Αθανασίου 1 2787.69 2000-01-26 153 Μαρία Αλεβιζάτου 2 1321.92 2001-05-15 172 Χρήστος Βλάσσης 3 1101.70 2000-07-04 189 Θεόδωρος Αγγελίνας 6 1908.28 2000-06-19.................. Δείγμα από τα δεδομένα του πίνακα. Δείτε τα πλήρη περιεχόμενα εδώ: http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=400 11 / 97

Ονόματα πινάκων Σε αντίθεση με έναν απλό κειμενογράφο ή ένα λογιστικό φύλλο, οι πίνακες των βάσεων δεδομένων έχουν πάντα όνομα Δεν υπάρχει πίνακας σε βάση δεδομένων που να μην έχει όνομα Κάθε πίνακας έχει ένα μοναδικό όνομα σε μια βάση δεδομένων: δεν υπάρχουν δύο πίνακες με το ίδιο όνομα στην ίδια βάση δεδομένων Ο πίνακας που έχουμε δει έχει το όνομα: employees 12 / 97

Πρόσβαση στη βάση company Πρόσβαση στη βάση company Διαδικτυακή πρόσβαση από: http://bit.ly/sqlcmp username: dbuser password: econ98 Διαθέσιμη για μεταφόρτωση από την ιστοσελίδα http://bit.ly/xxy896 σε μορφή: MS Access Open/Libre Office SQL installation script 13 / 97

Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα δεδομένων 3 Απλά ερωτήματα περιορισμού, επιλέγοντας εγγραφές από ένα πίνακα δεδομένων 4 Σχεσιακή άλγεβρα και απλά ερωτήματα επιλογής 5 Αναζήτηση ημερολογιακών δεδομένων 6 Αναζήτηση κειμένου σε πίνακα δεδομένων 7 Επεκτάσεις της προβολής, πράξεις και αλγεβρικές παραστάσεις κατά την προβολή δεδομένων 8 Ταξινόμηση 14 / 97

Το πιο απλό ερώτημα Να δοθούν όλα τα δεδομένα του πίνακα των υπαλλήλων 1 SELECT * 2 FROM employees; SELECT Ολα τα ερωτήματα ανάσυρσης δεδομένων αρχίζουν με SELECT. * Το σύμβολο αυτό υποδηλώνει όλα τα πεδία του πίνακα. FROM Ολα τα ερωτήματα ανάσυρσης δεδομένων έχουν τη δήλωση FROM ώστε να καθοριστεί ο πίνακας (ή η παράσταση πίνακα) από όπου θα γίνει η άντληση δεδομένων. employees Ο πίνακας, τα δεδομένα του οποίου αναζητούμε. 15 / 97

Επιλογή πεδίου από πίνακα Να βρεθεί το επώνυμο των εργαζομένων 1 SELECT lastname 2 FROM employees; Το όνομα του πεδίου τοποθετείται μετά το SELECT Μπορούμε να βάλουμε οποιοδήποτε πεδίο, αρκεί να υπάρχει στον πίνακα που δηλώνεται μετά το FROM 16 / 97

Επιλογή περισσότερων πεδίων από πίνακα Να βρεθεί το όνομα και το επώνυμο των υπαλλήλων 1 SELECT firstname, lastname 2 FROM employees; firstname Νικηφόρος Μαρία Μαρία Χρήστος Θεόδωρος Ηλίας lastname Διαμαντίδης Αθανασίου Αλεβιζάτου Βλάσσης Αγγελίνας Μακρής 17 / 97

Κανόνες επιλογής περισσότερων πεδίων 1 SELECT firstname, lastname 2 FROM employees; Τα ονόματα των πεδίων τοποθετούνται μετά το SELECT. Χωρίζονται μεταξύ τους με κόμματα. Δεν υπάρχει κόμμα μετά το τελευταίο πεδίο. Μπορούμε να τοποθετήσουμε τα πεδία με όποια σειρά θέλουμε. Τοποθετούμε το όνομα του πεδίου (πχ lastname), όχι τη θέση του στον πίνακα, πχ δεύτερο πεδίο, τέταρτο πεδίο κ.τλ. 18 / 97

Μετονομασία πεδίου στο αποτέλεσμα Να δοθεί το επώνυμο των εργαζομένων ως στήλη με όνομα FamilyName 19 / 97

Μετονομασία πεδίου στο αποτέλεσμα Να δοθεί το επώνυμο των εργαζομένων ως στήλη με όνομα FamilyName 1 SELECT lastname AS FamilyName 2 FROM employees; 20 / 97

Μετονομασία πεδίου στο αποτέλεσμα Να δοθεί το επώνυμο των εργαζομένων ως στήλη με όνομα FamilyName 1 SELECT lastname AS FamilyName 2 FROM employees; FamilyName Αθανασίου Μαροπούλου Ρούσσης... 21 / 97

Εμβέλεια αλλαγής ονόματος πεδίου ΟΝΟΜΑ αντί για firstname 1 SELECT lastname AS FamilyName 2 FROM employees; FamilyName Αθανασίου Μαροπούλου Ρούσσης... Το πεδίο δηλώνεται κανονικά μετά το SELECT. Ακολουθεί ο τελεστής μετονομασίας AS. Η ισχύς του νέου ονόματος περιορίζεται μόνο στο αποτέλεσμα του ερωτήματος, δεν αλλάζει κάτι στον ορισμό του πίνακα δεδομένων. 22 / 97

Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα δεδομένων 3 Απλά ερωτήματα περιορισμού, επιλέγοντας εγγραφές από ένα πίνακα δεδομένων 4 Σχεσιακή άλγεβρα και απλά ερωτήματα επιλογής 5 Αναζήτηση ημερολογιακών δεδομένων 6 Αναζήτηση κειμένου σε πίνακα δεδομένων 7 Επεκτάσεις της προβολής, πράξεις και αλγεβρικές παραστάσεις κατά την προβολή δεδομένων 8 Ταξινόμηση 23 / 97

Περιορισμός Να βρεθούν οι εργαζόμενοι του τμήματος 1 24 / 97

Περιορισμός Να βρεθούν οι εργαζόμενοι του τμήματος 1 1 SELECT * 2 FROM employees 3 WHERE depid = 1; 25 / 97

Περιορισμός Να βρεθούν οι εργαζόμενοι του τμήματος 1 1 SELECT * 2 FROM employees 3 WHERE depid = 1; empid firstname lastname depid salary hiredate 109 Μαρία Αθανασίου 1 2787.69 2000-01-26 502 Κρινιώ Μαροπούλου 1 1754.67 2001-03-07 901 Κυριάκος Ρούσσης 1 1852.99 2001-11-01 26 / 97

Περιορισμός Να βρεθούν οι εργαζόμενοι του τμήματος 1 1 SELECT * 2 FROM employees 3 WHERE depid = 1; empid firstname lastname depid salary hiredate 109 Μαρία Αθανασίου 1 2787.69 2000-01-26 502 Κρινιώ Μαροπούλου 1 1754.67 2001-03-07 901 Κυριάκος Ρούσσης 1 1852.99 2001-11-01 Στη σχεσιακή άλγεβρα σ depid=1 (employees) 27 / 97

Ο όρος WHERE σε εντολές SQL 1 SELECT * 2 FROM employees 3 WHERE depid = 1; Τοποθετείται πάντοτε μετά το FROM. Είναι προαιρετική, πολλές εντολές SQL δεν έχουν καθόλου WHERE. Αν υπάρχει, ακολουθείται από μια παράσταση που μπορεί να αποτιμηθεί σε TRUE ή FALSE. Μόνο οι εγγραφές για τις οποίες η παράσταση συνθήκης αποδίδει την τιμή TRUE εμφανίζονται στο αποτέλεσμα. Τα πεδία που ακολουθούν τη δήλωση WHERE πρέπει να υπάρχουν στην παράσταση πίνακα που έχει δηλωθεί μετά το FROM. 28 / 97

Τελεστές σύγκρισης Τελεστής SQL Σημασία = = ίσο με! = ή <> διάφορο από > > μεγαλύτερο από >= μεγαλύτερο ή ίσο με < < μικρότερο από <= μικρότερο ή ίσο με 29 / 97

Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα δεδομένων 3 Απλά ερωτήματα περιορισμού, επιλέγοντας εγγραφές από ένα πίνακα δεδομένων 4 Σχεσιακή άλγεβρα και απλά ερωτήματα επιλογής 5 Αναζήτηση ημερολογιακών δεδομένων 6 Αναζήτηση κειμένου σε πίνακα δεδομένων 7 Επεκτάσεις της προβολής, πράξεις και αλγεβρικές παραστάσεις κατά την προβολή δεδομένων 8 Ταξινόμηση 30 / 97

Απλές σχεσιακές πράξεις Προβολή Επιλογή μέρους από το σύνολο των γνωρισμάτων της σχέσης, πχ: Π lastname,salary (employees) Περιορισμός Επιλογή μέρους από τις πλειάδες της σχέσης, πχ: σ empid=243 (employees) Συνδυασμός Π lastname,salary (σ empid=243 (employees)) 31 / 97

Συνδυασμός προβολής και περιορισμού Να βρεθεί το όνομα, ο μισθός και το τμήμα του υπαλλήλου με κωδικό 243 32 / 97

Συνδυασμός προβολής και περιορισμού Να βρεθεί το όνομα, ο μισθός και το τμήμα του υπαλλήλου με κωδικό 243 Π firstname,lastname,salary,depid (σ empid=243 (employees)) 33 / 97

Συνδυασμός προβολής και περιορισμού Να βρεθεί το όνομα, ο μισθός και το τμήμα του υπαλλήλου με κωδικό 243 Π firstname,lastname,salary,depid (σ empid=243 (employees)) 1 SELECT firstname, lastname, salary, depid 2 FROM employees 3 WHERE empid = 243; 34 / 97

Συνδυασμός προβολής και περιορισμού Να βρεθεί το όνομα, ο μισθός και το τμήμα του υπαλλήλου με κωδικό 243 Π firstname,lastname,salary,depid (σ empid=243 (employees)) 1 SELECT firstname, lastname, salary, depid 2 FROM employees 3 WHERE empid = 243; firstname lastname salary depid Δέσποινα Παπαδοπούλου 1609.52 2 35 / 97

Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα δεδομένων 3 Απλά ερωτήματα περιορισμού, επιλέγοντας εγγραφές από ένα πίνακα δεδομένων 4 Σχεσιακή άλγεβρα και απλά ερωτήματα επιλογής 5 Αναζήτηση ημερολογιακών δεδομένων 6 Αναζήτηση κειμένου σε πίνακα δεδομένων 7 Επεκτάσεις της προβολής, πράξεις και αλγεβρικές παραστάσεις κατά την προβολή δεδομένων 8 Ταξινόμηση 36 / 97

Αναζήτηση με ημερομηνίες Να βρεθεί το όνομα, ο μισθός και το τμήμα των υπαλλήλων που προσλήφθηκαν μετά την 1/6/2006 37 / 97

Αναζήτηση με ημερομηνίες Να βρεθεί το όνομα, ο μισθός και το τμήμα των υπαλλήλων που προσλήφθηκαν μετά την 1/6/2006 Π firstname,lastname,salary,depid (σ hiredate> 2004 06 01 (employees)) 38 / 97

Αναζήτηση με ημερομηνίες Να βρεθεί το όνομα, ο μισθός και το τμήμα των υπαλλήλων που προσλήφθηκαν μετά την 1/6/2006 Π firstname,lastname,salary,depid (σ hiredate> 2004 06 01 (employees)) 1 SELECT firstname, lastname, salary, depid 2 FROM employees 3 WHERE hiredate > 2004-06-01 ; 39 / 97

Αναζήτηση με ημερομηνίες Να βρεθεί το όνομα, ο μισθός και το τμήμα των υπαλλήλων που προσλήφθηκαν μετά την 1/6/2006 Π firstname,lastname,salary,depid (σ hiredate> 2004 06 01 (employees)) 1 SELECT firstname, lastname, salary, depid 2 FROM employees 3 WHERE hiredate > 2004-06-01 ; firstname lastname salary depid Πέτρος Αρβανιτάκης 1323.80 2 Αντώνης Παύλου 1231.62 3 Κυριάκος Ρούσσης 1852.99 1 Βαγγέλης Χριστόπουλος NULL 4 Παύλος Περίδης NULL 4 Βασιλική Περδίκη 1053.54 3 40 / 97

Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα δεδομένων 3 Απλά ερωτήματα περιορισμού, επιλέγοντας εγγραφές από ένα πίνακα δεδομένων 4 Σχεσιακή άλγεβρα και απλά ερωτήματα επιλογής 5 Αναζήτηση ημερολογιακών δεδομένων 6 Αναζήτηση κειμένου σε πίνακα δεδομένων 7 Επεκτάσεις της προβολής, πράξεις και αλγεβρικές παραστάσεις κατά την προβολή δεδομένων 8 Ταξινόμηση 41 / 97

Μαρία Μαρία Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα Μαρία 42 / 97

Μαρία Μαρία Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα Μαρία σ firstname= Μαρία (employees) 43 / 97

Μαρία Μαρία Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα Μαρία σ firstname= Μαρία (employees) 1 SELECT * 2 FROM employees 3 WHERE firstname = Μαρία ; 44 / 97

Μαρία Μαρία Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα Μαρία σ firstname= Μαρία (employees) 1 SELECT * 2 FROM employees 3 WHERE firstname = Μαρία ; empid firstname lastname depid salary hiredate 109 Μαρία Αθανασίου 1 2787.69 2003-08-29 153 Μαρία Αλεβιζάτου 2 1321.92 2001-05-15 45 / 97

Σύγκριση με κείμενο Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων, που το επώνυμό τους είναι Παπαδοπούλου και μετά (στη σειρά καταλόγου) 46 / 97

Σύγκριση με κείμενο Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων, που το επώνυμό τους είναι Παπαδοπούλου και μετά (στη σειρά καταλόγου) Π salary (σ lastname Παπαδοπούλου (employees)) 47 / 97

Σύγκριση με κείμενο Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων, που το επώνυμό τους είναι Παπαδοπούλου και μετά (στη σειρά καταλόγου) Π salary (σ lastname Παπαδοπούλου (employees)) 1 SELECT * 2 FROM employees 3 WHERE lastname >= Παπαδοπούλου 48 / 97

Σύγκριση με κείμενο Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων, που το επώνυμό τους είναι Παπαδοπούλου και μετά (στη σειρά καταλόγου) Π salary (σ lastname Παπαδοπούλου (employees)) 1 SELECT * 2 FROM employees 3 WHERE lastname >= Παπαδοπούλου empid firstname lastname depid salary hiredate 243 Δέσποινα Παπαδοπούλου 2 1609.52 1999-03-05 412 Αριστείδης Περρής 3 1320.83 1999-11-12 435 Αντώνης Παύλου 3 1231.62 2005-02-05 835 Αθανάσιος Πετράκης 6 1322.01 2001-02-23 901 Κυριάκος Ρούσσης 1 1852.99 2006-11-01 302 Νίκος Στεργιόπουλος 4 1386.05 2002-02-01 49 / 97

Τα πρώτα ερωτήματα SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 50 / 97

Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα δεδομένων 3 Απλά ερωτήματα περιορισμού, επιλέγοντας εγγραφές από ένα πίνακα δεδομένων 4 Σχεσιακή άλγεβρα και απλά ερωτήματα επιλογής 5 Αναζήτηση ημερολογιακών δεδομένων 6 Αναζήτηση κειμένου σε πίνακα δεδομένων 7 Επεκτάσεις της προβολής, πράξεις και αλγεβρικές παραστάσεις κατά την προβολή δεδομένων 8 Ταξινόμηση 51 / 97

Γενικευμένη προβολή Αλγεβρικές παραστάσεις σε αριθμητικά πεδία salary 1.05 Η πράξη εφαρμόζεται σε όλες τις εγγραφές του πίνακα: αύξηση του μισθού κατά 5%. Λογιστικά φύλλα: «σύρσιμο» τύπου προς τα κάτω. Γλώσσες προγραμματισμού: βρόγχος επανάληψης. 52 / 97

Γενικευμένη προβολή Αλγεβρικές παραστάσεις σε αριθμητικά πεδία salary 1.05 Η πράξη εφαρμόζεται σε όλες τις εγγραφές του πίνακα: αύξηση του μισθού κατά 5%. Λογιστικά φύλλα: «σύρσιμο» τύπου προς τα κάτω. Γλώσσες προγραμματισμού: βρόγχος επανάληψης. Εφαρμογή συναρτήσεων Αριθμητικές, πχ SQRT(salary) Κειμένου, πχ LEFT(firstname, 1) Ημερομηνίας πχ YEAR(hiredate) 53 / 97

Γενικευμένη προβολή και SQL Εφαρμογή σε οποιοδήποτε όρο SELECT FROM WHERE GROUP BY HAVING ORDER BY 54 / 97

Παράδειγμα γενικευμένης προβολής 1 Να βρεθεί το όνομα και ο νέος μισθός όλων των υπαλλήλων που εργάζονται στο τμήμα 2 μετά από αύξηση 150 στο μισθό τους 55 / 97

Παράδειγμα γενικευμένης προβολής 1 Να βρεθεί το όνομα και ο νέος μισθός όλων των υπαλλήλων που εργάζονται στο τμήμα 2 μετά από αύξηση 150 στο μισθό τους Π firstname,lastname,salary+150 (employees) 56 / 97

Παράδειγμα γενικευμένης προβολής 1 Να βρεθεί το όνομα και ο νέος μισθός όλων των υπαλλήλων που εργάζονται στο τμήμα 2 μετά από αύξηση 150 στο μισθό τους Π firstname,lastname,salary+150 (employees) 1 SELECT firstname, lastname, salary+150 2 FROM employees 3 WHERE depid = 2; 57 / 97

Παράδειγμα γενικευμένης προβολής 1 Να βρεθεί το όνομα και ο νέος μισθός όλων των υπαλλήλων που εργάζονται στο τμήμα 2 μετά από αύξηση 150 στο μισθό τους Π firstname,lastname,salary+150 (employees) 1 SELECT firstname, lastname, salary+150 2 FROM employees 3 WHERE depid = 2; firstname lastname salary+150 Δέσποινα Παπαδοπούλου 1759.52 Πέτρος Αρβανιτάκης 1473.80 Μαριλένα Κρέσπα 1255.04 Μαρία Αλεβιζάτου 1471.92 58 / 97

Παράδειγμα γενικευμένης προβολής 2 Να βρεθεί το όνομα και ο μισθός των υπαλλήλων που ο μισθός τους θα ανέβει περισσότερο από 80 αν πάρουν αύξηση 4% 59 / 97

Παράδειγμα γενικευμένης προβολής 2 Να βρεθεί το όνομα και ο μισθός των υπαλλήλων που ο μισθός τους θα ανέβει περισσότερο από 80 αν πάρουν αύξηση 4% Π lastname,firstname,salary (σ salary 0.04>80 (employees)) 60 / 97

Παράδειγμα γενικευμένης προβολής 2 Να βρεθεί το όνομα και ο μισθός των υπαλλήλων που ο μισθός τους θα ανέβει περισσότερο από 80 αν πάρουν αύξηση 4% 1 SELECT * Π lastname,firstname,salary (σ salary 0.04>80 (employees)) 2 FROM employees 3 WHERE salary*0.04 > 80; firstname lastname salary Δέσποινα Παπαδοπούλου 1609.52 Αδαμαντία Αθανασίου 2787.69 Θεόδωρος Αγγελίνας 1908.28......... 61 / 97

Υπολογισμοί με ποσοστά Αν: s 1 είναι η αρχική τιμή του μισθού, όπως είναι αποθηκευμένη στο πεδίο salary του πίνακα employees, s 2 είναι η νέα τιμή, αυτή που προκύπτει μετά την μεταβολή, v είναι το ποσό της μεταβολής, σ είναι η σχετική μεταβολή, και π είναι η σχετική ποσοστιαία μεταβολή 62 / 97

Υπολογισμοί με ποσοστά Αν: s 1 είναι η αρχική τιμή του μισθού, όπως είναι αποθηκευμένη στο πεδίο salary του πίνακα employees, s 2 είναι η νέα τιμή, αυτή που προκύπτει μετά την μεταβολή, v είναι το ποσό της μεταβολής, σ είναι η σχετική μεταβολή, και π είναι η σχετική ποσοστιαία μεταβολή τότε ισχύουν οι σχέσεις: s 2 = s 1 + v σ = s 2 s 1 s 1 π = (s 2 s 1 ) 100 s 1 s 2 = (1 + σ)s 1 s 2 = (1 + π 100 )s 1 63 / 97

Παράδειγμα γενικευμένης προβολής 3 Να βρεθεί ο κωδικός, ο μισθός, ο νέος μισθός των υπαλλήλων μετά από αύξηση 80 αν ο μισθός μεταβληθεί περισσότερο από 4% με φθίνουσα ταξινόμηση ως προς το ποσοστό αύξησης του μισθού. 64 / 97

Παράδειγμα γενικευμένης προβολής 3 Να βρεθεί ο κωδικός, ο μισθός, ο νέος μισθός των υπαλλήλων μετά από αύξηση 80 αν ο μισθός μεταβληθεί περισσότερο από 4% με φθίνουσα ταξινόμηση ως προς το ποσοστό αύξησης του μισθού. 1 SELECT empid, salary, salary+80, 80*100/salary 2 FROM employees 3 WHERE salary+80 > salary*1.04 4 ORDER BY 80*100/salary DESC; 5 65 / 97

Παράδειγμα γενικευμένης προβολής 3 Να βρεθεί ο κωδικός, ο μισθός, ο νέος μισθός των υπαλλήλων μετά από αύξηση 80 αν ο μισθός μεταβληθεί περισσότερο από 4% με φθίνουσα ταξινόμηση ως προς το ποσοστό αύξησης του μισθού. 1 SELECT empid, salary, salary+80, 80*100/salary 2 FROM employees 3 WHERE salary+80 > salary*1.04 4 ORDER BY 80*100/salary DESC; 5 6 empid salary salary+80 80*100/salary 7 ----------------------------------------- 8 205 1050.96 1130.96 7.6121 9 490 1051.92 1131.92 7.6051 10... 11 811 1323.98 1403.98 6.0424 12 342 1351.96 1431.96 5.9173 13... 66 / 97

Τα πρώτα ερωτήματα SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 67 / 97

Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα δεδομένων 3 Απλά ερωτήματα περιορισμού, επιλέγοντας εγγραφές από ένα πίνακα δεδομένων 4 Σχεσιακή άλγεβρα και απλά ερωτήματα επιλογής 5 Αναζήτηση ημερολογιακών δεδομένων 6 Αναζήτηση κειμένου σε πίνακα δεδομένων 7 Επεκτάσεις της προβολής, πράξεις και αλγεβρικές παραστάσεις κατά την προβολή δεδομένων 8 Ταξινόμηση 68 / 97

Ταξινόμηση ORDER BY column [ ASC DESC ] 69 / 97

Ταξινόμηση ORDER BY column [ ASC DESC ] 1 Είναι προαιρετική. 70 / 97

Ταξινόμηση ORDER BY column [ ASC DESC ] 1 Είναι προαιρετική. 2 Αν υπάρχει ORDER BY στην πρόταση SQL, τότε τοποθετείται πάντα στο τέλος. 71 / 97

Ταξινόμηση ORDER BY column [ ASC DESC ] 1 Είναι προαιρετική. 2 Αν υπάρχει ORDER BY στην πρόταση SQL, τότε τοποθετείται πάντα στο τέλος. 3 Μπορεί να περιέχει ονόματα πεδίων που είτε έχουν, είτε δεν έχουν δηλωθεί στο SELECT, αρκεί τα πεδία να υπάρχουν στην έκφραση πίνακα που ακολουθεί το FROM. 72 / 97

Ταξινόμηση ORDER BY column [ ASC DESC ] 1 Είναι προαιρετική. 2 Αν υπάρχει ORDER BY στην πρόταση SQL, τότε τοποθετείται πάντα στο τέλος. 3 Μπορεί να περιέχει ονόματα πεδίων που είτε έχουν, είτε δεν έχουν δηλωθεί στο SELECT, αρκεί τα πεδία να υπάρχουν στην έκφραση πίνακα που ακολουθεί το FROM. 4 Μπορεί να γίνει ταξινόμηση σε ένα πεδίο μετά από κάποιο είδος υπολογισμού (αλγεβρική παράσταση ή κλήση συνάρτησης). 73 / 97

Ταξινόμηση ORDER BY column [ ASC DESC ] 1 Είναι προαιρετική. 2 Αν υπάρχει ORDER BY στην πρόταση SQL, τότε τοποθετείται πάντα στο τέλος. 3 Μπορεί να περιέχει ονόματα πεδίων που είτε έχουν, είτε δεν έχουν δηλωθεί στο SELECT, αρκεί τα πεδία να υπάρχουν στην έκφραση πίνακα που ακολουθεί το FROM. 4 Μπορεί να γίνει ταξινόμηση σε ένα πεδίο μετά από κάποιο είδος υπολογισμού (αλγεβρική παράσταση ή κλήση συνάρτησης). 5 Αν ο προσδιορισμός αύξουσας (ASC) ή φθίνουσας (DESC) ταξινόμησης παραληφθεί τότε γίνεται αύξουσα ταξινόμηση (ASC). 74 / 97

Ταξινόμηση ως προς το τμήμα Να βρεθεί το όνομα, ο μισθός, και το τμήμα των υπαλλήλων, με αύξουσα ταξινόμηση ως προς το τμήμα 75 / 97

Ταξινόμηση ως προς το τμήμα Να βρεθεί το όνομα, ο μισθός, και το τμήμα των υπαλλήλων, με αύξουσα ταξινόμηση ως προς το τμήμα 1 SELECT firstname, lastname, salary, depid 2 FROM employees 3 ORDER BY depid; 4 76 / 97

Ταξινόμηση ως προς το τμήμα Να βρεθεί το όνομα, ο μισθός, και το τμήμα των υπαλλήλων, με αύξουσα ταξινόμηση ως προς το τμήμα 1 SELECT firstname, lastname, salary, depid 2 FROM employees 3 ORDER BY depid; 4 5 firstname lastname salary depid 6 ------------------------------------------ 7 Μαρία Αθανασίου 2787.69 1 8 Κρινιώ Μαροπούλου 1754.67 1 9 Κυριάκος Ρούσσης 1852.99 1 10 Δέσποινα Παπαδοπούλου 1609.52 2 11 Πέτρος Αρβανιτάκης 1323.80 2 12 Μαριλένα Κρέσπα 1105.04 2 13... 77 / 97

Ταξινόμηση ως προς το μισθό Να βρεθεί το όνομα και ο μισθός όλων των υπαλλήλων με αύξουσα ταξινόμηση ως προς το μισθό 78 / 97

Ταξινόμηση ως προς το μισθό Να βρεθεί το όνομα και ο μισθός όλων των υπαλλήλων με αύξουσα ταξινόμηση ως προς το μισθό 1 SELECT firstname, lastname, salary 2 FROM employees 3 ORDER BY salary ASC; 4 79 / 97

Ταξινόμηση ως προς το μισθό Να βρεθεί το όνομα και ο μισθός όλων των υπαλλήλων με αύξουσα ταξινόμηση ως προς το μισθό 1 SELECT firstname, lastname, salary 2 FROM employees 3 ORDER BY salary ASC; 4 5 firstname lastname salary 6 ----------------------------------- 7 Βαγγέλης Χριστόπουλος NULL 8 Ηρακλής Μανωλάκης NULL 9 Παύλος Περίδης NULL 10 Βασιλική Περδίκη 1053.54 11 Περικλής Κιτσάκης 1100.13 12 Κώστας Παπαδόπουλος 1100.23 13... 80 / 97

Φθίνουσα ταξινόμηση ημερομηνιών Να βρεθεί το όνομα, ο κωδικός, και η ημερομηνία πρόσληψης των υπαλλήλων που προσελήφθησαν μετά την 1/1/2004, με φθίνουσα ταξινόμηση ως προς την ημερομηνία πρόσληψης 81 / 97

Φθίνουσα ταξινόμηση ημερομηνιών Να βρεθεί το όνομα, ο κωδικός, και η ημερομηνία πρόσληψης των υπαλλήλων που προσελήφθησαν μετά την 1/1/2004, με φθίνουσα ταξινόμηση ως προς την ημερομηνία πρόσληψης 1 SELECT firstname, lastname, empid, hiredate 2 FROM employees 3 WHERE hiredate > 2004-01-01 4 ORDER BY hiredate DESC; 5 82 / 97

Φθίνουσα ταξινόμηση ημερομηνιών Να βρεθεί το όνομα, ο κωδικός, και η ημερομηνία πρόσληψης των υπαλλήλων που προσελήφθησαν μετά την 1/1/2004, με φθίνουσα ταξινόμηση ως προς την ημερομηνία πρόσληψης 1 SELECT firstname, lastname, empid, hiredate 2 FROM employees 3 WHERE hiredate > 2004-01-01 4 ORDER BY hiredate DESC; 5 6 firstname lastname empid hiredate 7 ------------------------------------------- 8 Βαγγέλης Χριστόπουλος 230 2007-12-03 9 Κυριάκος Ρούσσης 901 2006-11-01 10 Πέτρος Αρβανιτάκης 419 2006-07-17 11 Αντώνης Παύλου 435 2005-02-05 12... 83 / 97

Διπλή ταξινόμηση: τμήμα και μισθός Να βρεθεί ο κωδικός, ο μισθός και το τμήμα των υπαλλήλων με αύξουσα ταξινόμηση ως προς το τμήμα και φθίνουσα ταξινόμηση ως προς το μισθό 84 / 97

Διπλή ταξινόμηση: τμήμα και μισθός Να βρεθεί ο κωδικός, ο μισθός και το τμήμα των υπαλλήλων με αύξουσα ταξινόμηση ως προς το τμήμα και φθίνουσα ταξινόμηση ως προς το μισθό 1 SELECT empid, salary, depid 2 FROM employees 3 ORDER BY depid ASC, salary DESC; 4 85 / 97

Διπλή ταξινόμηση: τμήμα και μισθός Να βρεθεί ο κωδικός, ο μισθός και το τμήμα των υπαλλήλων με αύξουσα ταξινόμηση ως προς το τμήμα και φθίνουσα ταξινόμηση ως προς το μισθό 1 SELECT empid, salary, depid 2 FROM employees 3 ORDER BY depid ASC, salary DESC; 4 5 empid salary depid 6 ----------------------- 7 109 2787.69 1 8 901 1852.99 1 9 502 1754.67 1 10 243 1609.52 2 11 419 1323.80 2 12... 86 / 97

Διπλή ταξινόμηση: μισθός και τμήμα Να βρεθεί ο κωδικός, ο μισθός και το τμήμα των υπαλλήλων με αύξουσα ταξινόμηση ως προς το τμήμα και φθίνουσα ταξινόμηση ως προς το μισθό 87 / 97

Διπλή ταξινόμηση: μισθός και τμήμα Να βρεθεί ο κωδικός, ο μισθός και το τμήμα των υπαλλήλων με αύξουσα ταξινόμηση ως προς το τμήμα και φθίνουσα ταξινόμηση ως προς το μισθό 1 SELECT empid, salary, depid 2 FROM employees 3 ORDER BY salary DESC, depid ASC; 4 88 / 97

Διπλή ταξινόμηση: μισθός και τμήμα Να βρεθεί ο κωδικός, ο μισθός και το τμήμα των υπαλλήλων με αύξουσα ταξινόμηση ως προς το τμήμα και φθίνουσα ταξινόμηση ως προς το μισθό 1 SELECT empid, salary, depid 2 FROM employees 3 ORDER BY salary DESC, depid ASC; 4 5 empid salary depid 6 ----------------------- 7 109 2787.69 1 8 801 2312.56 3 9 189 1908.28 6 10 901 1852.99 1 11 502 1754.67 1 12... 89 / 97

Περίληψη μαθήματος 1 SELECT.. FROM.. WHERE : ανάσυρση δεδομένων. 90 / 97

Περίληψη μαθήματος 1 SELECT.. FROM.. WHERE : ανάσυρση δεδομένων. 2 Ο όρος SELECT πρέπει να ακολουθείται από τουλάχιστον ένα πεδίο. 91 / 97

Περίληψη μαθήματος 1 SELECT.. FROM.. WHERE : ανάσυρση δεδομένων. 2 Ο όρος SELECT πρέπει να ακολουθείται από τουλάχιστον ένα πεδίο. 3 Το * υποδηλώνει την επιλογή όλων των πεδίων των πινάκων που δηλώνονται στον όρο FROM. 92 / 97

Περίληψη μαθήματος 1 SELECT.. FROM.. WHERE : ανάσυρση δεδομένων. 2 Ο όρος SELECT πρέπει να ακολουθείται από τουλάχιστον ένα πεδίο. 3 Το * υποδηλώνει την επιλογή όλων των πεδίων των πινάκων που δηλώνονται στον όρο FROM. 4 Ο όρος WHERE τοποθετείται μετά το FROM, στην περίπτωση όπου είναι επιθυμητό να γίνει περιορισμός των εγγραφών του αποτελέσματος. 93 / 97

Περίληψη μαθήματος 1 SELECT.. FROM.. WHERE : ανάσυρση δεδομένων. 2 Ο όρος SELECT πρέπει να ακολουθείται από τουλάχιστον ένα πεδίο. 3 Το * υποδηλώνει την επιλογή όλων των πεδίων των πινάκων που δηλώνονται στον όρο FROM. 4 Ο όρος WHERE τοποθετείται μετά το FROM, στην περίπτωση όπου είναι επιθυμητό να γίνει περιορισμός των εγγραφών του αποτελέσματος. 5 Αν υπάρχει όρος WHERE, τότε μόνο οι εγγραφές για τις οποίες η παράσταση δίνει τιμή TRUE εμφανίζονται στο αποτέλεσμα του ερωτήματος. 94 / 97

Περίληψη μαθήματος 1 SELECT.. FROM.. WHERE : ανάσυρση δεδομένων. 2 Ο όρος SELECT πρέπει να ακολουθείται από τουλάχιστον ένα πεδίο. 3 Το * υποδηλώνει την επιλογή όλων των πεδίων των πινάκων που δηλώνονται στον όρο FROM. 4 Ο όρος WHERE τοποθετείται μετά το FROM, στην περίπτωση όπου είναι επιθυμητό να γίνει περιορισμός των εγγραφών του αποτελέσματος. 5 Αν υπάρχει όρος WHERE, τότε μόνο οι εγγραφές για τις οποίες η παράσταση δίνει τιμή TRUE εμφανίζονται στο αποτέλεσμα του ερωτήματος. 6 Οι ημερομηνίες ή το κείμενο σε παραστάσεις σύγκρισης απαιτούν τη χρήση εισαγωγικών. 95 / 97

Περίληψη μαθήματος 1 SELECT.. FROM.. WHERE : ανάσυρση δεδομένων. 2 Ο όρος SELECT πρέπει να ακολουθείται από τουλάχιστον ένα πεδίο. 3 Το * υποδηλώνει την επιλογή όλων των πεδίων των πινάκων που δηλώνονται στον όρο FROM. 4 Ο όρος WHERE τοποθετείται μετά το FROM, στην περίπτωση όπου είναι επιθυμητό να γίνει περιορισμός των εγγραφών του αποτελέσματος. 5 Αν υπάρχει όρος WHERE, τότε μόνο οι εγγραφές για τις οποίες η παράσταση δίνει τιμή TRUE εμφανίζονται στο αποτέλεσμα του ερωτήματος. 6 Οι ημερομηνίες ή το κείμενο σε παραστάσεις σύγκρισης απαιτούν τη χρήση εισαγωγικών. 7 Τα αποτελέσματα ενός ερωτήματος μπορούν να ταξινομηθούν με τον όρο ORDER BY. 96 / 97

Σχόλια και ερωτήσεις Σας ευχαριστώ για την προσοχή σας Είμαι στη διάθεσή σας για σχόλια, απορίες και ερωτήσεις 97 / 97