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

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

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

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



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

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

1 / 150

1 / 105


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

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

1 / 97

1 / 87

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

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

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT

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

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

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

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


Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

Μικροβιολογία & Υγιεινή Τροφίμων


Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

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

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

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

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

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

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

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

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Πιθανότητες. Συνδυαστική Ανάλυση Διδάσκων: Επίκουρος Καθηγητής Κωνσταντίνος Μπλέκας

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Ηλεκτρισμός & Μαγνητισμός

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

Εκκλησιαστικό Δίκαιο

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

Προγραμματισμός και Εφαρμογές Υπολογιστών

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

Γενικά Μαθηματικά Ι. Ενότητα 16: Ολοκλήρωση Τριγωνομετρικών Συναρτήσεων, Γενικευμένα Ολοκληρώματα Λουκάς Βλάχος Τμήμα Φυσικής

Εφαρμοσμένη Στατιστική

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

Εκκλησιαστικό Δίκαιο

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

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

Ιστορία της μετάφρασης

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

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

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

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

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

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

Ηλεκτρισμός & Μαγνητισμός

Γενικά Μαθηματικά Ι. Ενότητα 9: Κίνηση Σε Πολικές Συντεταγμένες. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 5: Παράγωγος Πεπλεγμένης Συνάρτησης, Κατασκευή Διαφορικής Εξίσωσης. Λουκάς Βλάχος Τμήμα Φυσικής

Μαθηματικά και Φυσική με Υπολογιστές

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Βασικοί άξονες Μαθηματικά στην εκπαίδευση:

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

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

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

Γενικά Μαθηματικά Ι. Ενότητα 13: Ακτίνα Σύγκλισης, Αριθμητική Ολοκλήρωση, Ολοκλήρωση Κατά Παράγοντες. Λουκάς Βλάχος Τμήμα Φυσικής

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

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

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

Γενικά Μαθηματικά Ι. Ενότητα 2: Τριγωνομετρικές, Εκθετικές και Σύνθετες Συναρτήσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

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

Ηλεκτρισμός & Μαγνητισμός

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

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

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

Εφαρμοσμένη Στατιστική

Μάθηση σε νέα τεχνολογικά περιβάλλοντα

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Επιπλέον ενσωματωμένες συναρτήσεις SQL Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

Ενσωματωμένες συναρτήσεις στην SQL και επιπλέον στοιχεία προγραμματισμού Παραδείγματα και εφαρμογές από τη βάση δεδομένων company Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 106

Περιεχόμενα 1 Πράξεις αριθμομηχανής 2 Συναρτήσεις αλγεβρικών όρων και παραστάσεων 3 Συναρτήσεις κειμένου και αλφαριθμητικών 4 Συναρτήσεις ημερομηνίας και ώρας 5 Συναρτήσεις ελέγχου ροής 2 / 106

Ο πίνακας DUAL SQL ως αριθμομηχανή 3 / 106

Ο πίνακας DUAL SQL ως αριθμομηχανή 1 SELECT 1 2 FROM DUAL; 3 4 1 5 --- 6 1 4 / 106

Ο πίνακας DUAL SQL ως αριθμομηχανή 1 SELECT 1 2 FROM DUAL; 3 4 1 5 --- 6 1 1 SELECT 1+1 2 FROM DUAL; 3 4 1+1 5 ---- 6 2 5 / 106

Πράξεις με συναρτήσεις Εφαρμογή γνωστών συναρτήσεων 6 / 106

Πράξεις με συναρτήσεις Εφαρμογή γνωστών συναρτήσεων 1 SELECT sqrt(2) 2 FROM DUAL; 3 4 sqrt(2) 5 ---------------- 6 1.4142135623731 7 / 106

Πράξεις με συναρτήσεις Εφαρμογή γνωστών συναρτήσεων 1 SELECT sqrt(2) 2 FROM DUAL; 3 4 sqrt(2) 5 ---------------- 6 1.4142135623731 1 SELECT cos(pi()/4) 2 FROM DUAL; 3 4 cos(pi()/4) 5 ------------------ 6 0.707106781186548 8 / 106

Πολλές παραστάσεις μαζί Προβολή πολλών παραστάσεων 9 / 106

Πολλές παραστάσεις μαζί Προβολή πολλών παραστάσεων 1 SELECT sqrt(2), log(2), exp(2) 2 FROM DUAL; 3 4 sqrt(2) log(2) exp(2) 5 ----------------------------------------------------- 6 1.4142135623731 0.693147180559945 7.38905609893065 10 / 106

Πολλές παραστάσεις μαζί Προβολή πολλών παραστάσεων 1 SELECT sqrt(2), log(2), exp(2) 2 FROM DUAL; 3 4 sqrt(2) log(2) exp(2) 5 ----------------------------------------------------- 6 1.4142135623731 0.693147180559945 7.38905609893065 1 SELECT 2, log(2)/sqrt(2) 2 FROM DUAL; 3 4 2 log(2)/sqrt(2) 5 --------------------- 6 2 0.490129071734274 11 / 106

Ερωτήματα χωρίς FROM; Ο πίνακας DUAL δεν είναι απαραίτητος στη MySQL 12 / 106

Ερωτήματα χωρίς FROM; Ο πίνακας DUAL δεν είναι απαραίτητος στη MySQL 1 SELECT CURRENT_DATE 2 FROM DUAL; 3 4 CURRENT_DATE 5 ------------- 6 2014-03-31 13 / 106

Ερωτήματα χωρίς FROM; Ο πίνακας DUAL δεν είναι απαραίτητος στη MySQL 1 SELECT CURRENT_DATE 2 FROM DUAL; 3 4 CURRENT_DATE 5 ------------- 6 2014-03-31 1 SELECT CURRENT_DATE; 2 3 CURRENT_DATE 4 ------------- 5 2014-03-31 14 / 106

Περιεχόμενα 1 Πράξεις αριθμομηχανής 2 Συναρτήσεις αλγεβρικών όρων και παραστάσεων 3 Συναρτήσεις κειμένου και αλφαριθμητικών 4 Συναρτήσεις ημερομηνίας και ώρας 5 Συναρτήσεις ελέγχου ροής 15 / 106

Αριθμητικές συναρτήσεις 1 Υπάρχουν πολλές διαθέσιμες συναρτήσεις για αριθμούς ή αλγεβρικές παραστάσεις, παρόμοιες με αυτές που έχουμε εξετάσει στα λογιστικά φύλλα. 16 / 106

Αριθμητικές συναρτήσεις 1 Υπάρχουν πολλές διαθέσιμες συναρτήσεις για αριθμούς ή αλγεβρικές παραστάσεις, παρόμοιες με αυτές που έχουμε εξετάσει στα λογιστικά φύλλα. 2 Για παράδειγμα, log για τον υπολογισμό λογαρίθμου, pow για ύψωση σε δύναμη ή cos για υπολογισμό συνημιτόνου. 17 / 106

Αριθμητικές συναρτήσεις 1 Υπάρχουν πολλές διαθέσιμες συναρτήσεις για αριθμούς ή αλγεβρικές παραστάσεις, παρόμοιες με αυτές που έχουμε εξετάσει στα λογιστικά φύλλα. 2 Για παράδειγμα, log για τον υπολογισμό λογαρίθμου, pow για ύψωση σε δύναμη ή cos για υπολογισμό συνημιτόνου. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 18 / 106

Αριθμητικές συναρτήσεις 1 Υπάρχουν πολλές διαθέσιμες συναρτήσεις για αριθμούς ή αλγεβρικές παραστάσεις, παρόμοιες με αυτές που έχουμε εξετάσει στα λογιστικά φύλλα. 2 Για παράδειγμα, log για τον υπολογισμό λογαρίθμου, pow για ύψωση σε δύναμη ή cos για υπολογισμό συνημιτόνου. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 4 Προσοχή, το όρισμα πρέπει να είναι έγκυρο. 19 / 106

Αριθμητικές συναρτήσεις 1 Υπάρχουν πολλές διαθέσιμες συναρτήσεις για αριθμούς ή αλγεβρικές παραστάσεις, παρόμοιες με αυτές που έχουμε εξετάσει στα λογιστικά φύλλα. 2 Για παράδειγμα, log για τον υπολογισμό λογαρίθμου, pow για ύψωση σε δύναμη ή cos για υπολογισμό συνημιτόνου. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 4 Προσοχή, το όρισμα πρέπει να είναι έγκυρο. 5 Ακολουθούν παραδείγματα. 20 / 106

Στρογγυλοποίηση με τη ROUND Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 4 καθώς και ο μισθός με στρογγυλοποίηση σε εκατοντάδες. 21 / 106

Στρογγυλοποίηση με τη ROUND Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 4 καθώς και ο μισθός με στρογγυλοποίηση σε εκατοντάδες. 1 SELECT empid, salary, ROUND(salary, -2) 2 FROM employees 3 WHERE depid = 4; 4 22 / 106

Στρογγυλοποίηση με τη ROUND Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 4 καθώς και ο μισθός με στρογγυλοποίηση σε εκατοντάδες. 1 SELECT empid, salary, ROUND(salary, -2) 2 FROM employees 3 WHERE depid = 4; 4 5 empid salary ROUND(salary, -2) 6 ---------------------------------- 7 206 1102.04 1100 8 230 NULL NULL 9 311 1386.05 1400 10 593 NULL NULL 11 780 1054.71 1100 23 / 106

Ομαδοποίηση μετά από στρογγυλοποίηση Να βρεθεί το πλήθος των υπαλλήλων ανά εκατοντάδα μισθού. 24 / 106

Ομαδοποίηση μετά από στρογγυλοποίηση Να βρεθεί το πλήθος των υπαλλήλων ανά εκατοντάδα μισθού. 1 SELECT ROUND(salary, -2) AS SalCat, COUNT(*) AS cntsc 2 FROM employees 3 GROUP BY ROUND(salary, -2); 4 25 / 106

Ομαδοποίηση μετά από στρογγυλοποίηση Να βρεθεί το πλήθος των υπαλλήλων ανά εκατοντάδα μισθού. 1 SELECT ROUND(salary, -2) AS SalCat, COUNT(*) AS cntsc 2 FROM employees 3 GROUP BY ROUND(salary, -2); 4 5 SalCat cntsc 6 -------------- 7 NULL 3 8 1100 9 9 1200 2 10 1300 6 11 1400 2 12 1500 1 13 1600 2 14 1800 1 15 1900 2 16 2300 1 26 / 106

Στρογγυλοποίηση στο 250 Να βρεθεί το πλήθος των υπαλλήλων ανά εκατοντάδα μισθού. 27 / 106

Στρογγυλοποίηση στο 250 Να βρεθεί το πλήθος των υπαλλήλων ανά εκατοντάδα μισθού. 1 SELECT ROUND(salary, -2) AS SalCat, COUNT(*) AS cntsc 2 FROM employees 3 GROUP BY ROUND(salary, -2); 4 28 / 106

Στρογγυλοποίηση στο 250 Να βρεθεί το πλήθος των υπαλλήλων ανά εκατοντάδα μισθού. 1 SELECT ROUND(salary, -2) AS SalCat, COUNT(*) AS cntsc 2 FROM employees 3 GROUP BY ROUND(salary, -2); 4 5 SalCat cntsc 6 -------------- 7 NULL 3 8 1100 9 9 1200 2 10 1300 6 11 1400 2 12 1500 1 13 1600 2 14 1800 1 15 1900 2 16 2300 1 29 / 106

Στρογγυλοποίηση με τη FLOOR Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 2 καθώς και ο μισθός με στρογγυλοποίηση προς τα κάτω. 30 / 106

Στρογγυλοποίηση με τη FLOOR Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 2 καθώς και ο μισθός με στρογγυλοποίηση προς τα κάτω. 1 SELECT empid, salary, FLOOR(salary) 2 FROM employees 3 WHERE depid = 2; 4 31 / 106

Στρογγυλοποίηση με τη FLOOR Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 2 καθώς και ο μισθός με στρογγυλοποίηση προς τα κάτω. 1 SELECT empid, salary, FLOOR(salary) 2 FROM employees 3 WHERE depid = 2; 4 5 empid salary FLOOR(salary) 6 ------------------------------ 7 153 1321.92 1321 8 243 1609.52 1609 9 419 1323.80 1323 10 503 1105.04 1105 32 / 106

Στρογγυλοποίηση με τη FLOOR σε εκατοντάδα Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 2 καθώς και ο μισθός με στρογγυλοποίηση εκατοντάδας προς τα κάτω. 33 / 106

Στρογγυλοποίηση με τη FLOOR σε εκατοντάδα Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 2 καθώς και ο μισθός με στρογγυλοποίηση εκατοντάδας προς τα κάτω. 1 SELECT empid, salary, FLOOR(salary/100)*100 2 FROM employees 3 WHERE depid = 2; 4 34 / 106

Στρογγυλοποίηση με τη FLOOR σε εκατοντάδα Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 2 καθώς και ο μισθός με στρογγυλοποίηση εκατοντάδας προς τα κάτω. 1 SELECT empid, salary, FLOOR(salary/100)*100 2 FROM employees 3 WHERE depid = 2; 4 5 empid salary FLOOR(salary/100)*100 6 -------------------------------------- 7 153 1321.92 1300 8 243 1609.52 1600 9 419 1323.80 1300 10 503 1105.04 1100 35 / 106

Στρογγυλοποίηση με FLOOR x 250 Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 2 καθώς και ο μισθός με στρογγυλοποίηση προς τα κάτω σε πολλαπλάσιο του 250. 36 / 106

Στρογγυλοποίηση με FLOOR x 250 Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 2 καθώς και ο μισθός με στρογγυλοποίηση προς τα κάτω σε πολλαπλάσιο του 250. 1 SELECT empid, salary, FLOOR(salary/250)*250 2 FROM employees 3 WHERE depid = 2; 4 37 / 106

Στρογγυλοποίηση με FLOOR x 250 Να βρεθεί ο κωδικός και ο μισθός των υπαλλήλων του τμήματος 2 καθώς και ο μισθός με στρογγυλοποίηση προς τα κάτω σε πολλαπλάσιο του 250. 1 SELECT empid, salary, FLOOR(salary/250)*250 2 FROM employees 3 WHERE depid = 2; 4 5 empid salary FLOOR(salary/250)*250 6 -------------------------------------- 7 153 1321.92 1250 8 243 1609.52 1500 9 419 1323.80 1250 10 503 1105.04 1000 38 / 106

Περιεχόμενα 1 Πράξεις αριθμομηχανής 2 Συναρτήσεις αλγεβρικών όρων και παραστάσεων 3 Συναρτήσεις κειμένου και αλφαριθμητικών 4 Συναρτήσεις ημερομηνίας και ώρας 5 Συναρτήσεις ελέγχου ροής 39 / 106

Συναρτήσεις κειμένου και αλφαριθμητικών 1 Συναρτήσεις που επεξεργάζονται κείμενο και συμβολοσειρές. 40 / 106

Συναρτήσεις κειμένου και αλφαριθμητικών 1 Συναρτήσεις που επεξεργάζονται κείμενο και συμβολοσειρές. 2 Για παράδειγμα, left για τη λήψη αριστερού μέρους ενός αλφαριθμητικού, length για την καταμέτρηση χαρακτήρων, ή replace για την αντικατάσταση κειμένου από κείμενο. 41 / 106

Συναρτήσεις κειμένου και αλφαριθμητικών 1 Συναρτήσεις που επεξεργάζονται κείμενο και συμβολοσειρές. 2 Για παράδειγμα, left για τη λήψη αριστερού μέρους ενός αλφαριθμητικού, length για την καταμέτρηση χαρακτήρων, ή replace για την αντικατάσταση κειμένου από κείμενο. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 42 / 106

Συναρτήσεις κειμένου και αλφαριθμητικών 1 Συναρτήσεις που επεξεργάζονται κείμενο και συμβολοσειρές. 2 Για παράδειγμα, left για τη λήψη αριστερού μέρους ενός αλφαριθμητικού, length για την καταμέτρηση χαρακτήρων, ή replace για την αντικατάσταση κειμένου από κείμενο. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 4 Προσοχή, το όρισμα πρέπει να είναι έγκυρο. 43 / 106

Συναρτήσεις κειμένου και αλφαριθμητικών 1 Συναρτήσεις που επεξεργάζονται κείμενο και συμβολοσειρές. 2 Για παράδειγμα, left για τη λήψη αριστερού μέρους ενός αλφαριθμητικού, length για την καταμέτρηση χαρακτήρων, ή replace για την αντικατάσταση κειμένου από κείμενο. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 4 Προσοχή, το όρισμα πρέπει να είναι έγκυρο. 5 Ακολουθούν παραδείγματα. 44 / 106

Ενοποίηση κειμένου Να δώσετε το όνομα και το επώνυμο των υπαλλήλων του τμήματος 4 σε μία στήλη, ως ονοματεπώνυμο. 45 / 106

Ενοποίηση κειμένου Να δώσετε το όνομα και το επώνυμο των υπαλλήλων του τμήματος 4 σε μία στήλη, ως ονοματεπώνυμο. 1 SELECT CONCAT(firstname,, lastname) 2 FROM employees 3 WHERE depid = 4; 4 46 / 106

Ενοποίηση κειμένου Να δώσετε το όνομα και το επώνυμο των υπαλλήλων του τμήματος 4 σε μία στήλη, ως ονοματεπώνυμο. 1 SELECT CONCAT(firstname,, lastname) 2 FROM employees 3 WHERE depid = 4; 4 5 CONCAT(firstname,, lastname) 6 --------------------------------- 7 Νίκος Βλάχος 8 Βαγγέλης Χριστόπουλος 9 Νίκος Στεργιόπουλος 10 Παύλος Περίδης 11 Ευθαλεία Μικράκη 47 / 106

Ενοποίηση και αποκοπή κειμένου Να δώσετε το αρχικό του ονόματος και το επώνυμο των υπαλλήλων του τμήματος 4 σε μία στήλη, ως ονοματεπώνυμο. 48 / 106

Ενοποίηση και αποκοπή κειμένου Να δώσετε το αρχικό του ονόματος και το επώνυμο των υπαλλήλων του τμήματος 4 σε μία στήλη, ως ονοματεπώνυμο. 1 SELECT CONCAT(LEFT(firstname, 1),., lastname) 2 FROM employees 3 WHERE depid = 4; 4 49 / 106

Ενοποίηση και αποκοπή κειμένου Να δώσετε το αρχικό του ονόματος και το επώνυμο των υπαλλήλων του τμήματος 4 σε μία στήλη, ως ονοματεπώνυμο. 1 SELECT CONCAT(LEFT(firstname, 1),., lastname) 2 FROM employees 3 WHERE depid = 4; 4 5 CONCAT(LEFT(firstname, 1),., lastname) 6 ------------------------------------------- 7 Ν. Βλάχος 8 Β. Χριστόπουλος 9 Ν. Στεργιόπουλος 10 Π. Περίδης 11 Ε. Μικράκη 50 / 106

Ενοποίηση και αποκοπή κειμένου Να δώσετε ονοματεπώνυμο και το μήκος της συμβολοσειράς του των υπαλλήλων του τμήματος 4. 51 / 106

Ενοποίηση και αποκοπή κειμένου Να δώσετε ονοματεπώνυμο και το μήκος της συμβολοσειράς του των υπαλλήλων του τμήματος 4. 1 SELECT CONCAT(firstname,, lastname) 2 AS name, 3 LENGTH(CONCAT(firstname, lastname)) 4 AS cnt 5 FROM employees 6 WHERE depid = 4; 7 52 / 106

Ενοποίηση και αποκοπή κειμένου Να δώσετε ονοματεπώνυμο και το μήκος της συμβολοσειράς του των υπαλλήλων του τμήματος 4. 1 SELECT CONCAT(firstname,, lastname) 2 AS name, 3 LENGTH(CONCAT(firstname, lastname)) 4 AS cnt 5 FROM employees 6 WHERE depid = 4; 7 8 name cnt 9 ------------------------------ 10 Βαγγέλης Χριστόπουλος 40 11 Ευθαλεία Μικράκη 30 12 Νίκος Βλάχος 22 13 Νίκος Στεργιόπουλος 36 14 Παύλος Περίδης 26 53 / 106

Προσοχή! utf-8 Να δώσετε ονοματεπώνυμο και το μήκος της συμβολοσειράς του των υπαλλήλων του τμήματος 4. 1 SELECT CONCAT(firstname,, lastname) 2 AS name, 3 LENGTH(CONCAT(firstname, lastname))/2 4 AS cnt 5 FROM employees 6 WHERE depid = 4; 7 8 name cnt 9 ------------------------------ 10 Βαγγέλης Χριστόπουλος 20 11 Ευθαλεία Μικράκη 15 12 Νίκος Βλάχος 11 13 Νίκος Στεργιόπουλος 18 14 Παύλος Περίδης 13 54 / 106

Πιο σωστός τρόπος Να δώσετε ονοματεπώνυμο και το μήκος της συμβολοσειράς του των υπαλλήλων του τμήματος 4. 1 SELECT CONCAT(firstname,, lastname) 2 AS name, 3 CHAR_LENGTH(CONCAT(firstname, lastname)) 4 AS cnt 5 FROM employees 6 WHERE depid = 4; 7 8 name cnt 9 ------------------------------ 10 Βαγγέλης Χριστόπουλος 20 11 Ευθαλεία Μικράκη 15 12 Νίκος Βλάχος 11 13 Νίκος Στεργιόπουλος 18 14 Παύλος Περίδης 13 55 / 106

Αλλαγή σε κεφαλαία Να δώσετε τον κωδικό και το όνομα των τμημάτων με κεφαλαία γράμματα. 56 / 106

Αλλαγή σε κεφαλαία Να δώσετε τον κωδικό και το όνομα των τμημάτων με κεφαλαία γράμματα. 1 SELECT depid, UPPER(depname) 2 FROM departments; 3 57 / 106

Αλλαγή σε κεφαλαία Να δώσετε τον κωδικό και το όνομα των τμημάτων με κεφαλαία γράμματα. 1 SELECT depid, UPPER(depname) 2 FROM departments; 3 4 depid UPPER(depname) 5 ------------------------------ 6 1 ΔΙΟ ΙΚΗΣΗΣ/ΕΠ ΙΒΛΕΨΗΣ 7 2 ΟΙΚΟΝΟΜΟΛ ΟΓΩΝ/ΛΟΓΙΣΤ ΩΝ 8 3 ΕΠΙΣΤΗΜ ΟΝΩΝ/ΜΗΧΑΝΙΚ ΩΝ 9 4 ΕΞΩΤΕΡΙΚ ΩΝ ΣΥΝΕΡΓΑΤ ΩΝ 10 5 ΓΡΑΜΜΑΤΕ ΙΑΣ 11 6 ΠΩΛ ΗΣΕΩΝ 58 / 106

Αντικατάσταση κειμένου Να δώσετε τον κωδικό και το όνομα των τμημάτων με κεφαλαία γράμματα, χωρίς τόνους. 59 / 106

Αντικατάσταση κειμένου Να δώσετε τον κωδικό και το όνομα των τμημάτων με κεφαλαία γράμματα, χωρίς τόνους. 1 SELECT depid, REPLACE(UPPER(depname),, ) 2 FROM departments; 3 60 / 106

Αντικατάσταση κειμένου Να δώσετε τον κωδικό και το όνομα των τμημάτων με κεφαλαία γράμματα, χωρίς τόνους. 1 SELECT depid, REPLACE(UPPER(depname),, ) 2 FROM departments; 3 4 depid REPLACE(UPPER(depname),, ) 5 ------------------------------ 6 1 ΔΙΟΙΚΗΣΗΣ/ΕΠΙΒΛΕΨΗΣ 7 2 ΟΙΚΟΝΟΜΟΛΟΓΩΝ/ΛΟΓΙΣΤΩΝ 8 3 ΕΠΙΣΤΗΜΟΝΩΝ/ΜΗΧΑΝΙΚΩΝ 9 4 ΕΞΩΤΕΡΙΚΩΝ ΣΥΝΕΡΓΑΤΩΝ 10 5 ΓΡΑΜΜΑΤΕΙΑΣ 11 6 ΠΩΛΗΣΕΩΝ 61 / 106

Μέρος συμβολοσειράς Χαρακτήρες 1 3 62 / 106

Μέρος συμβολοσειράς Χαρακτήρες 1 3 1 SELECT lastname, SUBSTR(lastname, 1, 3) 2 FROM employees 3 WHERE empid = 419; 4 63 / 106

Μέρος συμβολοσειράς Χαρακτήρες 1 3 1 SELECT lastname, SUBSTR(lastname, 1, 3) 2 FROM employees 3 WHERE empid = 419; 4 5 lastname SUBSTR(lastname, 1, 3) 6 ------------------------------------ 7 Αρβανιτάκης Αρβ 64 / 106

Μέρος συμβολοσειράς Χαρακτήρες 1 3 1 SELECT lastname, SUBSTR(lastname, 1, 3) 2 FROM employees 3 WHERE empid = 419; 4 5 lastname SUBSTR(lastname, 1, 3) 6 ------------------------------------ 7 Αρβανιτάκης Αρβ Χαρακτήρες -6 3 65 / 106

Μέρος συμβολοσειράς Χαρακτήρες 1 3 1 SELECT lastname, SUBSTR(lastname, 1, 3) 2 FROM employees 3 WHERE empid = 419; 4 5 lastname SUBSTR(lastname, 1, 3) 6 ------------------------------------ 7 Αρβανιτάκης Αρβ Χαρακτήρες -6 3 1 SELECT lastname, SUBSTR(lastname, -6, 3) 2 FROM employees 3 WHERE empid = 419; 4 66 / 106

Μέρος συμβολοσειράς Χαρακτήρες 1 3 1 SELECT lastname, SUBSTR(lastname, 1, 3) 2 FROM employees 3 WHERE empid = 419; 4 5 lastname SUBSTR(lastname, 1, 3) 6 ------------------------------------ 7 Αρβανιτάκης Αρβ Χαρακτήρες -6 3 1 SELECT lastname, SUBSTR(lastname, -6, 3) 2 FROM employees 3 WHERE empid = 419; 4 5 lastname SUBSTR(lastname, -6, 3) 6 ------------------------------------ 7 Αρβανιτάκης ιτά 67 / 106

Θέση αλφαριθμητικού σε κείμενο Να βρεθεί το όνομα και η θέση του λ στο όνομα των υπαλλήλων του τμήματος 4. 68 / 106

Θέση αλφαριθμητικού σε κείμενο Να βρεθεί το όνομα και η θέση του λ στο όνομα των υπαλλήλων του τμήματος 4. 1 SELECT firstname, LOCATE( λ, firstname) 2 FROM emloyees 3 WHERE depid = 4; 4 69 / 106

Θέση αλφαριθμητικού σε κείμενο Να βρεθεί το όνομα και η θέση του λ στο όνομα των υπαλλήλων του τμήματος 4. 1 SELECT firstname, LOCATE( λ, firstname) 2 FROM emloyees 3 WHERE depid = 4; 4 5 firstname LOCATE( λ, firstname) 6 -------------------------------------- 7 Νίκος 0 8 Βαγγέλης 6 9 Νίκος 0 10 Παύλος 4 11 Ευθαλεία 5 70 / 106

Περιεχόμενα 1 Πράξεις αριθμομηχανής 2 Συναρτήσεις αλγεβρικών όρων και παραστάσεων 3 Συναρτήσεις κειμένου και αλφαριθμητικών 4 Συναρτήσεις ημερομηνίας και ώρας 5 Συναρτήσεις ελέγχου ροής 71 / 106

Συναρτήσεις ημερομηνίας και ώρας 1 Συναρτήσεις που επεξεργάζονται ημερολογιακά δεδομένα. 72 / 106

Συναρτήσεις ημερομηνίας και ώρας 1 Συναρτήσεις που επεξεργάζονται ημερολογιακά δεδομένα. 2 Για παράδειγμα, year για τη λήψη έτους μιας ημερομηνίας, hour για τη ώρας, ή datediff για τον υπολογισμό διαφοράς δύο ημερομηνιών. 73 / 106

Συναρτήσεις ημερομηνίας και ώρας 1 Συναρτήσεις που επεξεργάζονται ημερολογιακά δεδομένα. 2 Για παράδειγμα, year για τη λήψη έτους μιας ημερομηνίας, hour για τη ώρας, ή datediff για τον υπολογισμό διαφοράς δύο ημερομηνιών. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 74 / 106

Συναρτήσεις ημερομηνίας και ώρας 1 Συναρτήσεις που επεξεργάζονται ημερολογιακά δεδομένα. 2 Για παράδειγμα, year για τη λήψη έτους μιας ημερομηνίας, hour για τη ώρας, ή datediff για τον υπολογισμό διαφοράς δύο ημερομηνιών. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 4 Προσοχή, το όρισμα πρέπει να είναι έγκυρο. 75 / 106

Συναρτήσεις ημερομηνίας και ώρας 1 Συναρτήσεις που επεξεργάζονται ημερολογιακά δεδομένα. 2 Για παράδειγμα, year για τη λήψη έτους μιας ημερομηνίας, hour για τη ώρας, ή datediff για τον υπολογισμό διαφοράς δύο ημερομηνιών. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 4 Προσοχή, το όρισμα πρέπει να είναι έγκυρο. 5 Ακολουθούν παραδείγματα. 76 / 106

Ημερομηνία και ώρα τώρα Ημερομηνία και ώρα: 1 SELECT CURDATE(), CURTIME() 2 FROM DUAL; 3 4 CURDATE() CURTIME() 5 ---------------------- 6 2014-03-24 11:24:43 77 / 106

Ημερομηνία και ώρα τώρα Ημερομηνία και ώρα: 1 SELECT CURDATE(), CURTIME() 2 FROM DUAL; 3 4 CURDATE() CURTIME() 5 ---------------------- 6 2014-03-24 11:24:43 Ολα μαζί: 1 SELECT NOW() 2 FROM DUAL; 3 4 NOW() 5 -------------------- 6 2014-03-24 11:24:43 78 / 106

Χρονοσφραγίδα Εδώ: 1 SELECT LOCALTIMESTAMP() 2 FROM DUAL; 3 4 LOCALTIMESTAMP() 5 -------------------- 6 2014-03-24 11:24:43 79 / 106

Χρονοσφραγίδα Εδώ: 1 SELECT LOCALTIMESTAMP() 2 FROM DUAL; 3 4 LOCALTIMESTAMP() 5 -------------------- 6 2014-03-24 11:24:43 UTC: 1 SELECT UTC_TIMESTAMP() 2 FROM DUAL; 3 4 UTC_TIMESTAMP() 5 -------------------- 6 2014-03-24 09:24:43 80 / 106

Ετος πρόσληψης Να βρεθεί το πλήθος των προσλήψεων το 2003 1 SELECT COUNT(*) 2 FROM employees 3 WHERE hiredate BETWEEN 2003-01-01 AND 2003-12-31 ; 4 5 COUNT(*) 6 --------- 7 3 81 / 106

Ετος πρόσληψης Να βρεθεί το πλήθος των προσλήψεων το 2003 1 SELECT COUNT(*) 2 FROM employees 3 WHERE hiredate BETWEEN 2003-01-01 AND 2003-12-31 ; 4 5 COUNT(*) 6 --------- 7 3 Να βρεθεί το πλήθος των προσλήψεων το 2003 1 SELECT COUNT(*) 2 FROM employees 3 WHERE YEAR(hiredate) = 2003; 4 5 COUNT(*) 6 --------- 7 3 82 / 106

Μορφοποίηση ημερομηνίας Να δοθεί ο τίτλος και η ημερομηνία έναρξης όλων τον έργων με τη μορφή mm/yy (μήνας/έτος) 1 SELECT title, DATE_FORMAT(startdate, %b/%y ) 2 AS StartMonth 3 FROM projects; 4 5 title startmonth 6 ------------------------------------- 7 Επίβλεψη έρευνας για... Jun/05 8 Επίβλεψη κατασκευής... Jun/06 9 Μελέτη και επίβλεψη... Apr/06 10 Παροχή συμβουλευτικών... Jun/03 11 Μελέτη εναλλακτικών... Aug/07 12 Μελέτη οικονομικής... Apr/03 83 / 106

Ημέρα της εβδομάδος Να βρεθεί το πλήθος των προσλήψεων υπαλλήλων ανά ημέρα της εβδομάδας. 1 SELECT DATE_FORMAT(hiredate, %W ) AS wday, 2 COUNT(*) AS cnt 3 FROM employees 4 GROUP BY DATE_FORMAT(hiredate, %w ) 5 ORDER BY DATE_FORMAT(hiredate, %w ); 6 7 wday cnt 8 --------------- 9 Monday 6 10 Tuesday 8 11 Wednesday 4 12 Thursday 4 13 Friday 8 84 / 106

Διάρκεια σε μήνες Να βρεθεί ο κωδικός και η διάρκεια σε μήνες εκτέλεσης όλων των έργων στα οποία απασχολούνται υπάλληλοι του τμήματος 5 με μισθό πάνω από 1500. 1 SELECT DISTINCT p.proid, 2 (YEAR(p.enddate)-YEAR(p.startdate))*12 3 +(MONTH(p.enddate)-MONTH(p.startdate)) AS period 4 FROM (projects p INNER JOIN workson w 5 ON p.proid = w.proid) 6 INNER JOIN employees e 7 ON e.empid = w.empid 8 WHERE e.depid = 5 9 AND e.salary > 1500; 10 11 proid period 12 -------------- 13 14 49 14 38 23 85 / 106

Πρόσθεση με ημερομηνίες Να βρεθεί η ημερομηνία λήξης του έργου 21 μετά από παράταση 2 μηνών. 1 SELECT DATE_ADD(enddate, INTERVAL 2 month) 2 AS NewEnddate 3 FROM projects 4 WHERE proid = 21; 5 6 NewEnddate 7 ----------- 8 2005-07-31 86 / 106

Πρόσθεση με ημερομηνίες Να βρεθεί η ημερομηνία λήξης του έργου 21 μετά από παράταση 60 ημερών. 1 SELECT DATE_ADD(enddate, INTERVAL 60 day) 2 AS NewEnddate 3 FROM projects 4 WHERE proid = 21; 5 6 NewEnddate 7 ----------- 8 2005-07-30 87 / 106

Περιεχόμενα 1 Πράξεις αριθμομηχανής 2 Συναρτήσεις αλγεβρικών όρων και παραστάσεων 3 Συναρτήσεις κειμένου και αλφαριθμητικών 4 Συναρτήσεις ημερομηνίας και ώρας 5 Συναρτήσεις ελέγχου ροής 88 / 106

Συναρτήσεις ελέγχου ροής 1 Εισάγουν στοιχεία προγραμματισμού και δομών ελέγχου. 89 / 106

Συναρτήσεις ελέγχου ροής 1 Εισάγουν στοιχεία προγραμματισμού και δομών ελέγχου. 2 Για παράδειγμα, if για τη απόδοση τιμής υπό συνθήκη, case για την απόδοση τιμής σε διάφορες υπο-περιπτώσεις. 90 / 106

Συναρτήσεις ελέγχου ροής 1 Εισάγουν στοιχεία προγραμματισμού και δομών ελέγχου. 2 Για παράδειγμα, if για τη απόδοση τιμής υπό συνθήκη, case για την απόδοση τιμής σε διάφορες υπο-περιπτώσεις. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 91 / 106

Συναρτήσεις ελέγχου ροής 1 Εισάγουν στοιχεία προγραμματισμού και δομών ελέγχου. 2 Για παράδειγμα, if για τη απόδοση τιμής υπό συνθήκη, case για την απόδοση τιμής σε διάφορες υπο-περιπτώσεις. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 4 Προσοχή, το όρισμα πρέπει να είναι έγκυρο. 92 / 106

Συναρτήσεις ελέγχου ροής 1 Εισάγουν στοιχεία προγραμματισμού και δομών ελέγχου. 2 Για παράδειγμα, if για τη απόδοση τιμής υπό συνθήκη, case για την απόδοση τιμής σε διάφορες υπο-περιπτώσεις. 3 Επιτρέπεται η εμφώλευση συναρτήσεων. 4 Προσοχή, το όρισμα πρέπει να είναι έγκυρο. 5 Ακολουθούν παραδείγματα. 93 / 106

η συνάρτηση IF 1η απλή περίπτωση 1 SELECT IF(5>3, T, F ) 2 FROM DUAL; 3 4 IF(5>3, T, F ) 5 ------------------ 6 T 94 / 106

η συνάρτηση IF 1η απλή περίπτωση 1 SELECT IF(5>3, T, F ) 2 FROM DUAL; 3 4 IF(5>3, T, F ) 5 ------------------ 6 T 1η απλή περίπτωση 1 SELECT IF(3>5, 1, -1) 2 FROM DUAL; 3 4 IF(3>5, 1, -1) 5 --------------- 6-1 95 / 106

Η συνάρτηση IF Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 2 καθώς και η έκφραση Ναι/ Οχι ανάλογα με το αν παίρνουν μισθό άνω του 1500. 96 / 106

Η συνάρτηση IF Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 2 καθώς και η έκφραση Ναι/ Οχι ανάλογα με το αν παίρνουν μισθό άνω του 1500. 1 SELECT firstname, lastname, 2 IF(salary>1500, Ναι, Οχι ) AS slevel 3 FROM employees 4 WHERE depid = 2; 5 6 firstname lastname slevel 7 ------------------------------------ 8 Μαρία Αλεβιζάτου Οχι 9 Δέσποινα Παπαδοπούλου Ναι 10 Πέτρος Αρβανιτάκης Οχι 11 Μαριλένα Κρέσπα Οχι 97 / 106

Απασχόληση; Ναί ή Οχι Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 1 καθώς και η έκφραση Ναι/ Οχι ανάλογα με το αν απασχολούνται σε κάποιο έργο. 98 / 106

Απασχόληση; Ναί ή Οχι Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 1 καθώς και η έκφραση Ναι/ Οχι ανάλογα με το αν απασχολούνται σε κάποιο έργο. 1 SELECT DISTINCT e.firstname, e.lastname, 2 IF(w.empid IS NULL, Ναι, Οχι ) AS status 3 FROM employees e LEFT JOIN workson w 4 ON e.empid = w.empid 5 WHERE depid = 1; 6 7 firstname lastname status 8 ----------------------------------- 9 Μαρία Αθανασίου Οχι 10 Κρινιώ Μαροπούλου Οχι 11 Κυριάκος Ρούσσης Ναι 99 / 106

Απασχόληση; Ναί ή Οχι Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 1 καθώς και η έκφραση Ναι/ Οχι ανάλογα με το αν απασχολούνται σε κάποιο έργο. 100 / 106

Απασχόληση; Ναί ή Οχι Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 1 καθώς και η έκφραση Ναι/ Οχι ανάλογα με το αν απασχολούνται σε κάποιο έργο. 1 SELECT DISTINCT e.firstname, e.lastname, 2 IFNULL(w.empid, Ναι, Οχι ) AS status 3 FROM employees e LEFT JOIN workson w 4 ON e.empid = w.empid 5 WHERE depid = 1; 6 7 firstname lastname status 8 ----------------------------------- 9 Μαρία Αθανασίου Οχι 10 Κρινιώ Μαροπούλου Οχι 11 Κυριάκος Ρούσσης Ναι 101 / 106

Ροή ελέγχου: CASE Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 2 καθώς και η έκφραση Μικρό/Μεγάλο (επίπεδο μισθού) ανάλογα με το αν παίρνουν μισθό άνω του 1500. 102 / 106

Ροή ελέγχου: CASE Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 2 καθώς και η έκφραση Μικρό/Μεγάλο (επίπεδο μισθού) ανάλογα με το αν παίρνουν μισθό άνω του 1500. 1 SELECT firstname, lastname, 2 CASE 3 WHEN salary > 1500 THEN Μεγάλο 4 ELSE Μικρό 5 END AS dep2sal 6 FROM employees 7 WHERE depid = 2; 8 9 firstname lastname dep2sal 10 ---------------------------------------- 11 Μαρία Αλεβιζάτου Μικρό 12 Δέσποινα Παπαδοπούλου Μεγάλο 13 Πέτρος Αρβανιτάκης Μικρό 14 Μαριλένα Κρέσπα Μικρό 103 / 106

Ροή ελέγχου: CASE 3 περιπτώσεων Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 2 καθώς και η έκφραση Μικρό/Μεσαίο/Μεγάλο ανάλογα με το αν παίρνουν μισθό άνω του 1300 ή 1500. 104 / 106

Ροή ελέγχου: CASE 3 περιπτώσεων Να βρεθεί το ονοματεπώνυμο των υπαλλήλων του τμήματος 2 καθώς και η έκφραση Μικρό/Μεσαίο/Μεγάλο ανάλογα με το αν παίρνουν μισθό άνω του 1300 ή 1500. 1 SELECT firstname, lastname, 2 CASE 3 WHEN salary > 1500 THEN Μεγάλο 4 WHEN salary > 1200 THEN Μεσαίο 5 ELSE Μικρό 6 END AS dep2sal 7 FROM employees 8 WHERE depid = 2; 9 10 firstname lastname dep2sal 11 ---------------------------------------- 12 Μαρία Αλεβιζάτου Μεσαίο 13 Δέσποινα Παπαδοπούλου Μεγάλο 14 Πέτρος Αρβανιτάκης Μεσαίο 105 / 106

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

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

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

Σημειώματα

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. Έχουν προηγηθεί οι κάτωθι εκδόσεις: Έκδοση 1.0 διαθέσιμη εδώ. http://ecourse.uoi.gr/course/view.php?id=1065.

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης. «Ηλεκτρονικοί Υπολογιστές II. Επιπλέον ενσωματωμένες συναρτήσεις SQL». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1065.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.