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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Structured Query Language (SQL) Δρ. Καρβούνης Ευάγγελος ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) ΤΕΙ ΔυτικήςΜακεδονίας 1 / 97

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

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

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

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

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

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

8 Δυο λόγια για την 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

9 Δυο λόγια για την 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

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

11 Ο πίνακας employees από τη βάση company Εστω η σχέση employees με σχήμα: employees(empid, firstname, lastname, depid, salary, hiredate) empid firstname lastname depid salary hiredate 102 Νικηφόρος Διαμαντίδης Μαρία Αθανασίου Μαρία Αλεβιζάτου Χρήστος Βλάσσης Θεόδωρος Αγγελίνας Δείγμα από τα δεδομένα του πίνακα. Δείτε τα πλήρη περιεχόμενα εδώ: 11 / 97

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35 Συνδυασμός προβολής και περιορισμού Να βρεθεί το όνομα, ο μισθός και το τμήμα του υπαλλήλου με κωδικό 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 Δέσποινα Παπαδοπούλου / 97

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

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

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

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

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

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

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

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

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

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

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

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

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

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

50 Τα πρώτα ερωτήματα SQL 50 / 97

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

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

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

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

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

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

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

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

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

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

61 Παράδειγμα γενικευμένης προβολής 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 Δέσποινα Παπαδοπούλου Αδαμαντία Αθανασίου Θεόδωρος Αγγελίνας / 97

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

63 Υπολογισμοί με ποσοστά Αν: 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

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

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

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

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

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

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

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

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

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

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

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

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

76 Ταξινόμηση ως προς το τμήμα Να βρεθεί το όνομα, ο μισθός, και το τμήμα των υπαλλήλων, με αύξουσα ταξινόμηση ως προς το τμήμα 1 SELECT firstname, lastname, salary, depid 2 FROM employees 3 ORDER BY depid; 4 5 firstname lastname salary depid Μαρία Αθανασίου Κρινιώ Μαροπούλου Κυριάκος Ρούσσης Δέσποινα Παπαδοπούλου Πέτρος Αρβανιτάκης Μαριλένα Κρέσπα / 97

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

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

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

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

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

82 Φθίνουσα ταξινόμηση ημερομηνιών Να βρεθεί το όνομα, ο κωδικός, και η ημερομηνία πρόσληψης των υπαλλήλων που προσελήφθησαν μετά την 1/1/2004, με φθίνουσα ταξινόμηση ως προς την ημερομηνία πρόσληψης 1 SELECT firstname, lastname, empid, hiredate 2 FROM employees 3 WHERE hiredate > ORDER BY hiredate DESC; 5 6 firstname lastname empid hiredate Βαγγέλης Χριστόπουλος Κυριάκος Ρούσσης Πέτρος Αρβανιτάκης Αντώνης Παύλου / 97

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

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

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

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

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

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

89 Περισσότερα για τα απλά ερωτήματα SQL DISTINCT, LIKE, NULL, AND, OR, BETWEEN 1 / 66

90 Σκοπός του μαθήματος Αποκλείσετε διπλοεγγραφές από αποτελέσματα ερωτημάτων Χειρίζεστε άγνωστες ή ελλιπείς τιμές (NULL) Εφαρμόζετε αναζήτηση με βάση ταίριασμα κειμένου Εκτελείτε ερωτήματα πολύπλοκων περιορισμών εφαρμόζοντας λογικούς τελεστές Εκτελείτε ερωτήματα με τη χρήση του τελεστή συνόλου και του τελεστή περιοχής 2 / 66

91 Περιεχόμενα 1 Απαλοιφή διπλοεγγραφών με DISTINCT 2 Ελεγχος για τιμές NULL 3 Ταίριασμα κειμένου 4 Λογική σύζευξη και διάζευξη 5 Τελεστής συνόλου IN 6 Τελεστής περιοχής τιμών BETWEEN... AND... 3 / 66

92 Απαλοιφή διπλοεγγραφών Να βρεθεί σε ποια τμήματα απασχολούνται οι υπάλληλοι Χωρίς απαλοιφή διπλοεγγραφών 1 SELECT depid 2 FROM employees; Με απαλοιφή διπλοεγγραφών 1 SELECT DISTINCT depid 2 FROM employees; depid depid / 66

93 Συνδυασμός πεδίων Να δοθεί το τμήμα και ο μισθός των υπαλλήλων 1 SELECT DISTINCT depid, salary 2 FROM employees; depid salary Εδώ ελέγχεται ο συνδυασμός των τιμών στα πεδία depid και salary Ετσι, μια τιμή στο πεδίο depid μπορεί να εμφανιστεί δεύτερη (ή πολλαπλή) επειδή αντιστοιχίζεται με διαφορετική τιμή στο πεδίο salary Αν το ζεύγος τιμών τμήμα μισθός είναι ίδιο για δύο διαφορετικές εγγραφές τότε θα εμφανιστεί στο αποτέλεσμα μόνο μία φορά (λόγω DISTINCT) 5 / 66

94 DISTINCT και προβολή στη σχεσιακή άλγεβρα Η σχεσιακή πράξη της προβολής, πχ: Π depid (employees) εκφράζεται στην SQL πάντα με DISTINCT: 1 SELECT DISTINCT depid 2 FROM employees; και όχι χωρίς αυτό, πχ: 1 SELECT depid 2 FROM employees; Ο λόγος είναι απλός: η σχεσιακή άλγεβρα αφορά πράξεις συνόλων, οπότε δε μπορεί να υπάρχουν διπλοεγγραφές, τα στοιχεία ενός συνόλου είναι μοναδικά. 6 / 66

95 Και κάτι για εξάσκηση Να βρεθούν τα τμήματα στα οποία ο μισθός των υπαλλήλων θα ανέβει πάνω από 80 αν πάρουν αύξηση 3.5% 1 SELECT DISTINCT depid 2 FROM employees 3 WHERE salary*0.035 > 80; Π depid (σ salary 0.035>80 (employees)) depid 1 3 Μόνο στα τμήματα 1 και 3 υπάρχουν υπάλληλοι που αν ο μισθός τους αυξηθεί κατά 3.5% η αύξηση θα είναι μεγαλύτερη από 80. Στα τμήματα αυτά, πιθανά να υπάρχουν περισσότεροι από ένας υπάλληλος με τέτοια αύξηση. Αλλά αυτό που ενδιαφέρει είναι σε ποιο τμήμα, όχι σε ποιους και πόσους υπαλλήλους. 7 / 66

96 Περιεχόμενα 1 Απαλοιφή διπλοεγγραφών με DISTINCT 2 Ελεγχος για τιμές NULL 3 Ταίριασμα κειμένου 4 Λογική σύζευξη και διάζευξη 5 Τελεστής συνόλου IN 6 Τελεστής περιοχής τιμών BETWEEN... AND... 8 / 66

97 Χειρισμός τιμών NULL 9 / 66

98 Χειρισμός τιμών NULL 1 Δε μπορούμε να χειριστούμε τιμές NULL με τελεστές σύγκρισης 10 / 66

99 Χειρισμός τιμών NULL 1 Δε μπορούμε να χειριστούμε τιμές NULL με τελεστές σύγκρισης 2 Μια τιμή είναι (IS) ή δεν είναι (IS NOT) NULL 11 / 66

100 Χειρισμός τιμών NULL 1 Δε μπορούμε να χειριστούμε τιμές NULL με τελεστές σύγκρισης 2 Μια τιμή είναι (IS) ή δεν είναι (IS NOT) NULL 3 Ο έλεγχος για τιμές NULL αποδίδει πάντοτε TRUE ή FALSE 12 / 66

101 Χειρισμός τιμών NULL 1 Δε μπορούμε να χειριστούμε τιμές NULL με τελεστές σύγκρισης 2 Μια τιμή είναι (IS) ή δεν είναι (IS NOT) NULL 3 Ο έλεγχος για τιμές NULL αποδίδει πάντοτε TRUE ή FALSE 4 Δύο τιμές NULL δεν είναι ίσες μεταξύ τους, η μεταξύ τους σύγκριση δεν έχει νόημα 13 / 66

102 Παραδείγματα με NULL Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων χωρίς καταχωρημένο μισθό 1 SELECT * 2 FROM employees 3 WHERE salary IS NULL; 14 / 66

103 Παραδείγματα με NULL Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων χωρίς καταχωρημένο μισθό 1 SELECT * 2 FROM employees 3 WHERE salary IS NULL; Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με καταχωρημένο μισθό 1 SELECT * 2 FROM employees 3 WHERE salary IS NOT NULL; 15 / 66

104 NULL και DISTINCT Χωρίς DISTINCT 1 SELECT salary 2 FROM employees 3 WHERE salary IS NULL; 4 salary NULL 7 NULL 8 NULL 16 / 66

105 NULL και DISTINCT Χωρίς DISTINCT 1 SELECT salary 2 FROM employees 3 WHERE salary IS NULL; 4 salary NULL 7 NULL 8 NULL Με DISTINCT 1 SELECT DISTINCT salary 2 FROM employees 3 WHERE salary IS NULL; 4 salary NULL 17 / 66

106 Λάθη στον έλεγχο για NULL Με τον τελεστή = 1 SELECT * 2 FROM employees 3 WHERE salary = NULL; 4 5 Empty set (0.00 sec) 18 / 66

107 Λάθη στον έλεγχο για NULL Με τον τελεστή = 1 SELECT * 2 FROM employees 3 WHERE salary = NULL; 4 5 Empty set (0.00 sec) Ως κείμενο 1 SELECT * 2 FROM employees 3 WHERE salary = NULL ; 4 5 Empty set, 1 warning (0.00 sec) 19 / 66

108 NULL και αλγεβρικές πράξεις Πρόσθεση 1000 στο μισθό των υπαλλήλων χωρίς μισθό 1 SELECT empid, salary, salary FROM employees 3 WHERE salary IS NULL; 4 5 empid salary salary NULL NULL NULL NULL NULL NULL / 66

109 Περιεχόμενα 1 Απαλοιφή διπλοεγγραφών με DISTINCT 2 Ελεγχος για τιμές NULL 3 Ταίριασμα κειμένου 4 Λογική σύζευξη και διάζευξη 5 Τελεστής συνόλου IN 6 Τελεστής περιοχής τιμών BETWEEN... AND / 66

110 Ταίριασμα κειμένου Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα Νίκη 1 SELECT * 2 FROM employees 3 WHERE firstname = Νίκη ; 1 Μπορούμε να κάνουμε συγκρίσεις αλφαριθμητικών με τελεστές σύγκρισης όπως και με αριθμούς. 2 Ωστόσο, το αλφαριθμητικό τοποθετείται πάντα μέσα σε εισαγωγικά. 3 Τα εισαγωγικά μπορεί να είναι μονά ( ) ή διπλά ( ), ποτέ όμως δεν είναι αυτάκια! 22 / 66

111 Τελεστές ανισότητας και σύγκριση κειμένου Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό μετά τη Νίκη 1 SELECT * 2 FROM employees 3 WHERE firstname > Νίκη ; 23 / 66

112 Τελεστές ανισότητας και σύγκριση κειμένου Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό μετά τη Νίκη 1 SELECT * 2 FROM employees 3 WHERE firstname > Νίκη ; Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα μετά το Ν 1 SELECT * 2 FROM employees 3 WHERE firstname > Ν ; 24 / 66

113 Ταίριασμα κειμένου με τον τελεστή LIKE Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα που αρχίζει από Ν 1 SELECT * 2 FROM employees 3 WHERE firstname LIKE N% ; 25 / 66

114 Ταίριασμα κειμένου με τον τελεστή LIKE Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα που αρχίζει από Ν 1 SELECT * 2 FROM employees 3 WHERE firstname LIKE N% ; Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα που αρχίζει από Α και τελειώνει σε Α 1 SELECT * 2 FROM employees 3 WHERE firstname LIKE A%A ; 26 / 66

115 LIKE: χαρακτήρες υποκατάστασης % (ή *) : υποκαθιστά από κανένα ως πολλούς χαρακτήρες (ή?) : υποκαθιστά ακριβώς ένα χαρακτήρα Οι χαρακτήρες υποκατάστασης μπορούν αν συνδυαστούν μεταξύ τους 27 / 66

116 LIKE: χαρακτήρες υποκατάστασης % (ή *) : υποκαθιστά από κανένα ως πολλούς χαρακτήρες (ή?) : υποκαθιστά ακριβώς ένα χαρακτήρα Οι χαρακτήρες υποκατάστασης μπορούν αν συνδυαστούν μεταξύ τους Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων με μικρό όνομα που έχει 5 χαρακτήρες και τελειώνει σε Α 1 SELECT * 2 FROM employees 3 WHERE firstname LIKE A ; 28 / 66

117 Ασκήσεις με ταίριασμα κειμένου 29 / 66

118 Ασκήσεις με ταίριασμα κειμένου 1 Να βρεθούν οι υπάλληλοι που το όνομά τους αρχίζει από Α. 30 / 66

119 Ασκήσεις με ταίριασμα κειμένου 1 Να βρεθούν οι υπάλληλοι που το όνομά τους αρχίζει από Α. 2 Να βρεθούν οι υπάλληλοι που το όνομά τους τελειώνει σε ς. 31 / 66

120 Ασκήσεις με ταίριασμα κειμένου 1 Να βρεθούν οι υπάλληλοι που το όνομά τους αρχίζει από Α. 2 Να βρεθούν οι υπάλληλοι που το όνομά τους τελειώνει σε ς. 3 Να βρεθούν οι υπάλληλοι που το όνομά τους έχει δεύτερο χαρακτήρα το α. 32 / 66

121 Ασκήσεις με ταίριασμα κειμένου 1 Να βρεθούν οι υπάλληλοι που το όνομά τους αρχίζει από Α. 2 Να βρεθούν οι υπάλληλοι που το όνομά τους τελειώνει σε ς. 3 Να βρεθούν οι υπάλληλοι που το όνομά τους έχει δεύτερο χαρακτήρα το α. 4 Να βρεθούν οι υπάλληλοι που το όνομά τους έχει δεύτερο χαρακτήρα το α και τελειώνει σε ς. 33 / 66

122 Περιεχόμενα 1 Απαλοιφή διπλοεγγραφών με DISTINCT 2 Ελεγχος για τιμές NULL 3 Ταίριασμα κειμένου 4 Λογική σύζευξη και διάζευξη 5 Τελεστής συνόλου IN 6 Τελεστής περιοχής τιμών BETWEEN... AND / 66

123 Ο τελεστής AND 35 / 66

124 Ο τελεστής AND 1 Δύο παραστάσεις στον όρο WHERE μπορούν να συνδυαστούν μεταξύ τους με το λογικό τελεστή AND. 36 / 66

125 Ο τελεστής AND 1 Δύο παραστάσεις στον όρο WHERE μπορούν να συνδυαστούν μεταξύ τους με το λογικό τελεστή AND. 2 Χρησιμοποιούμε τον τελεστή AND όταν θέλουμε να ελέγξουμε την τιμή αληθείας και των δύο παραστάσεων ταυτόχρονα. 37 / 66

126 Ο τελεστής AND 1 Δύο παραστάσεις στον όρο WHERE μπορούν να συνδυαστούν μεταξύ τους με το λογικό τελεστή AND. 2 Χρησιμοποιούμε τον τελεστή AND όταν θέλουμε να ελέγξουμε την τιμή αληθείας και των δύο παραστάσεων ταυτόχρονα. 3 Οι βάσεις δεδομένων ακολουθούν την τριαδική λογική: TRUE, FALSE, UNK. 38 / 66

127 Ο τελεστής AND 1 Δύο παραστάσεις στον όρο WHERE μπορούν να συνδυαστούν μεταξύ τους με το λογικό τελεστή AND. 2 Χρησιμοποιούμε τον τελεστή AND όταν θέλουμε να ελέγξουμε την τιμή αληθείας και των δύο παραστάσεων ταυτόχρονα. 3 Οι βάσεις δεδομένων ακολουθούν την τριαδική λογική: TRUE, FALSE, UNK. 4 Στο αποτέλεσμα του ερωτήματος εισέρχονται μόνο οι εγγραφές που αποδίδουν TRUE. 39 / 66

128 Πίνακας αληθείας AND AND TRUE FALSE UNK TRUE TRUE FALSE UNK FALSE FALSE FALSE FALSE UNK UNK FALSE UNK Ο τελεστής AND αποδίδει TRUE μόνο όταν και οι δύο παραστάσεις είναι TRUE 40 / 66

129 Ενα παράδειγμα με τον τελεστή AND Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων που εργάζονται στο τμήμα 4 και ο μισθός τους είναι μεγαλύτερος από SELECT * 2 FROM employees 3 WHERE depid = 4 4 AND salary > 1100; empid firstname lastname depid salary hiredate 206 Νίκος Βλάχος Νίκος Στεργιόπουλος / 66

130 Ο τελεστής OR 42 / 66

131 Ο τελεστής OR 1 Δύο παραστάσεις στον όρο WHERE μπορούν να συνδυαστούν μεταξύ τους με το λογικό τελεστή OR. 43 / 66

132 Ο τελεστής OR 1 Δύο παραστάσεις στον όρο WHERE μπορούν να συνδυαστούν μεταξύ τους με το λογικό τελεστή OR. 2 Χρησιμοποιούμε τον τελεστή OR όταν θέλουμε να ελέγξουμε την τιμή αληθείας τουλάχιστον μιας από τις δύο παραστάσεις. 44 / 66

133 Ο τελεστής OR 1 Δύο παραστάσεις στον όρο WHERE μπορούν να συνδυαστούν μεταξύ τους με το λογικό τελεστή OR. 2 Χρησιμοποιούμε τον τελεστή OR όταν θέλουμε να ελέγξουμε την τιμή αληθείας τουλάχιστον μιας από τις δύο παραστάσεις. 3 Οι βάσεις δεδομένων ακολουθούν την τριαδική λογική: TRUE, FALSE, UNK. 45 / 66

134 Ο τελεστής OR 1 Δύο παραστάσεις στον όρο WHERE μπορούν να συνδυαστούν μεταξύ τους με το λογικό τελεστή OR. 2 Χρησιμοποιούμε τον τελεστή OR όταν θέλουμε να ελέγξουμε την τιμή αληθείας τουλάχιστον μιας από τις δύο παραστάσεις. 3 Οι βάσεις δεδομένων ακολουθούν την τριαδική λογική: TRUE, FALSE, UNK. 4 Στο αποτέλεσμα του ερωτήματος εισέρχονται μόνο οι εγγραφές που αποδίδουν TRUE. 46 / 66

135 Πίνακας αληθείας OR OR TRUE FALSE UNK TRUE TRUE TRUE TRUE FALSE TRUE FALSE UNK UNK TRUE UNK UNK Ο τελεστής OR αποδίδει TRUE όταν μία τουλάχιστον παράσταση είναι TRUE. 47 / 66

136 Ενα παράδειγμα με τον τελεστή OR Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων που εργάζονται στο τμήμα 4 ή ο μισθός τους είναι μεγαλύτερος από SELECT * 2 FROM employees 3 WHERE depid = 4 4 OR salary >= 1100; empid firstname lastname depid salary hiredate Νίκος Βλάχος Βαγγέλης Χριστόπουλος 4 NULL Αδαμαντία Θεοτοκάτου Δέσποινα Παπαδοπούλου Νίκος Στεργιόπουλος / 66

137 Μακριά από παγίδες Να βρεθούν τα ονοματεπώνυμα των υπαλλήλων που εργάζονται στα τμήματα 1 και 3 49 / 66

138 Μακριά από παγίδες Να βρεθούν τα ονοματεπώνυμα των υπαλλήλων που εργάζονται στα τμήματα 1 και 3 Λάθος απάντηση 1 SELECT firstname, lastname 2 FROM employees 3 WHERE depid = 1 4 AND depid = 3; 50 / 66

139 Μακριά από παγίδες Να βρεθούν τα ονοματεπώνυμα των υπαλλήλων που εργάζονται στα τμήματα 1 και 3 Λάθος απάντηση 1 SELECT firstname, lastname 2 FROM employees 3 WHERE depid = 1 4 AND depid = 3; Σωστή απάντηση 1 SELECT firstname, lastname 2 FROM employees 3 WHERE depid = 1 4 OR depid = 3; 51 / 66

140 Σύνθετες παραστάσεις και παρενθέσεις Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων που δεν προσλήφθηκαν το 2002 και εργάζονται στο τμήμα 3 52 / 66

141 Σύνθετες παραστάσεις και παρενθέσεις Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων που δεν προσλήφθηκαν το 2002 και εργάζονται στο τμήμα 3 Λάθος απάντηση 1 SELECT * 2 FROM employees 3 WHERE depid = 3 4 AND hiredate < OR hiredate > ; 53 / 66

142 Σύνθετες παραστάσεις και παρενθέσεις Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων που δεν προσλήφθηκαν το 2002 και εργάζονται στο τμήμα 3 Λάθος απάντηση 1 SELECT * 2 FROM employees 3 WHERE depid = 3 4 AND hiredate < OR hiredate > ; Σωστή απάντηση 1 SELECT * 2 FROM employees 3 WHERE depid = 3 4 AND ( hiredate < OR 54 / 66

143 Ασκήσεις με λογική σύζευξη και διάζευξη 55 / 66

144 Ασκήσεις με λογική σύζευξη και διάζευξη 1 Π empid,lastname,depid (σ depid=1 salary>1500 (employees)) 56 / 66

145 Ασκήσεις με λογική σύζευξη και διάζευξη 1 Π empid,lastname,depid (σ depid=1 salary>1500 (employees)) 2 Π empid,lastname,depid (σ depid=2 salary<1200 (employees)) 57 / 66

146 Ασκήσεις με λογική σύζευξη και διάζευξη 1 Π empid,lastname,depid (σ depid=1 salary>1500 (employees)) 2 Π empid,lastname,depid (σ depid=2 salary<1200 (employees)) 3 Π empid,lastname (σ depid=4 salary 0.05>60 (employees)) 58 / 66

147 Ασκήσεις με λογική σύζευξη και διάζευξη 1 Π empid,lastname,depid (σ depid=1 salary>1500 (employees)) 2 Π empid,lastname,depid (σ depid=2 salary<1200 (employees)) 3 Π empid,lastname (σ depid=4 salary 0.05>60 (employees)) 4 Π empid,lastname ( σ(depid=3 depid=4) salary=null (employees) ) 59 / 66

148 Περιεχόμενα 1 Απαλοιφή διπλοεγγραφών με DISTINCT 2 Ελεγχος για τιμές NULL 3 Ταίριασμα κειμένου 4 Λογική σύζευξη και διάζευξη 5 Τελεστής συνόλου IN 6 Τελεστής περιοχής τιμών BETWEEN... AND / 66

149 Ο τελεστής συνόλου IN Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων που εργάζονται στα τμήματα 2, 3 και 4 1 SELECT * 2 FROM employees 3 WHERE depid = 2 4 OR depid = 3 5 OR depid = 4; Το ίδιο, αλλά πιο απλά 1 SELECT * 2 FROM employees 3 WHERE depid IN (2,3,4); 61 / 66

150 Άρνηση του IN Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων που δεν εργάζονται στα τμήματα 2, 3 και 4 1 SELECT * 2 FROM employees 3 WHERE depid NOT IN (2,3,4); Η, ισοδύναμα με: 1 SELECT * 2 FROM employees 3 WHERE depid!= 2 4 AND depid!= 3 5 AND depid!= 4; 62 / 66

151 Περιεχόμενα 1 Απαλοιφή διπλοεγγραφών με DISTINCT 2 Ελεγχος για τιμές NULL 3 Ταίριασμα κειμένου 4 Λογική σύζευξη και διάζευξη 5 Τελεστής συνόλου IN 6 Τελεστής περιοχής τιμών BETWEEN... AND / 66

152 Ο τελεστής περιοχής τιμών Να βρεθούν όλες οι λεπτομέρειες των υπαλλήλων για εκείνους τους υπαλλήλους που παίρνουν μισθό από 1100 ως SELECT * 2 FROM employees 3 WHERE salary BETWEEN 1100 AND 1200; empid firstname lastname depid salary hiredate 172 Χρήστος Βλάσσης Νίκος Βλάχος Περικλής Κιτσάκης Κώστας Παπαδόπουλος Μαριλένα Κρέσπα / 66

153 Ο τελεστής περιοχής τιμών για ημερομηνίες Να βρεθεί ο κωδικός των τμημάτων στα οποία απασχολούνται υπάλληλοι που προσλήφθηκαν μέσα στο SELECT DISTINCT depid 2 FROM employees 3 WHERE hiredate BETWEEN AND ; depid / 66

154 SQL: Ερωτήματα ομαδοποίησης και συνάθροισης GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP 1 / 56

155 Περιεχόμενα 1 Εισαγωγή, γενικές παρατηρήσεις 2 Συναρτήσεις συνάθροισης 3 Τιμές NULL και μοναδικές τιμές 4 Ομαδοποίηση εγγραφών 5 Περιορισμός μετά την ομαδοποίηση 6 Μερικά και ολικά αθροίσματα 2 / 56

156 Σκοπός του μαθήματος Αν κατανοήσετε αυτό το μάθημα, θα μπορείτε να: Βρίσκετε πλήθος εγγραφών ή ακραίες τιμές (μέγιστα, ελάχιστα) πεδίων. Βρίσκετε αθροίσματα και μέσους όρους αριθμητικών πεδίων. Ομαδοποιείτε εγγραφές με βάση ταυτιζόμενες τιμές σε κάποια πεδία με τη φράση GROUP BY. Εφαρμόζετε τις συναρτήσεις συνάθροισης στις εγγραφές που προκύπτουν από την ομαδοποίηση/συνάθροιση. Εφαρμόζετε την επέκταση της ομαδοποίησης για να παίρνετε μερικά αθροίσματα με την επιλογή WITH ROLLUP. Εφαρμόζετε περιορισμό στις εγγραφές που προκύπτουν μετά την ομαδοποίηση με τη φράση HAVING. 3 / 56

157 Συναρτήσεις συνάθροισης Υπάρχουν πέντε βασικές συναρτήσεις συνάθροισης, που υποστηρίζονται από όλα τα συστήματα SQL COUNT για την καταμέτρηση πλήθους SUM για το άθροισμα AVG για το μέσο όρο MIN για την ελάχιστη τιμή MAX για την μέγιστη τιμή Υπάρχουν αρκετές άλλες συναρτήσεις (πχ STDEV, VAR), αλλά η υποστήριξή τους ποικίλει από σύστημα σε σύστημα. 4 / 56

158 Διάγραμμα σύνταξης των συναρτήσεων συνάθροισης COUNT(*) DISTINCT COUNT( όνομα πεδίου) MIN(έκφραση) MAX(έκφραση) DISTINCT όνομα πεδίου AVG( έκφραση ) DISTINCT όνομα πεδίου SUM( έκφραση ) 5 / 56

159 Ο πίνακας employees από τη βάση company Εστω η σχέση employees με σχήμα: employees(empid, firstname, lastname, depid, salary, hiredate) empid firstname lastname depid salary hiredate 102 Νικηφόρος Διαμαντίδης Μαρία Αθανασίου Μαρία Αλεβιζάτου Χρήστος Βλάσσης Θεόδωρος Αγγελίνας Δείγμα από τα δεδομένα του πίνακα. Δείτε τα πλήρη περιεχόμενα εδώ: 6 / 56

160 Περιεχόμενα 1 Εισαγωγή, γενικές παρατηρήσεις 2 Συναρτήσεις συνάθροισης 3 Τιμές NULL και μοναδικές τιμές 4 Ομαδοποίηση εγγραφών 5 Περιορισμός μετά την ομαδοποίηση 6 Μερικά και ολικά αθροίσματα 7 / 56

161 Παράδειγμα αθροίσματος στήλης Να βρεθεί το άθροισμα των μισθών όλων των υπαλλήλων G sum(salary) (employees) 8 / 56

162 Παράδειγμα αθροίσματος στήλης Να βρεθεί το άθροισμα των μισθών όλων των υπαλλήλων 1 SELECT SUM(salary) 2 FROM employees; 3 4 SUM(salary) G sum(salary) (employees) 9 / 56

163 Παράδειγμα αθροίσματος στήλης Να βρεθεί το άθροισμα των μισθών όλων των υπαλλήλων 1 SELECT SUM(salary) 2 FROM employees; 3 4 SUM(salary) G sum(salary) (employees) 10 / 56

164 Παράδειγμα αθροίσματος υπό συνθήκη Να βρεθεί το άθροισμα των μισθών όλων των υπαλλήλων του τμήματος 4 G sum(salary) (σ depid=4 (employees)) 11 / 56

165 Παράδειγμα αθροίσματος υπό συνθήκη Να βρεθεί το άθροισμα των μισθών όλων των υπαλλήλων του τμήματος 4 G sum(salary) (σ depid=4 (employees)) 1 SELECT SUM(salary) 2 FROM employees 3 WHERE depid = 4; 4 5 SUM(salary) / 56

166 Παράδειγμα αθροίσματος γενικευμένης προβολής Να βρεθεί το επιπλέον ποσό που θα δοθεί σε μισθούς αν οι υπάλληλοι του τμήματος 3 πάρουν αύξηση 3% G sum(salary 0.03) sumsal3 (σ depid=3 (employees)) 13 / 56

167 Παράδειγμα αθροίσματος γενικευμένης προβολής Να βρεθεί το επιπλέον ποσό που θα δοθεί σε μισθούς αν οι υπάλληλοι του τμήματος 3 πάρουν αύξηση 3% G sum(salary 0.03) sumsal3 (σ depid=3 (employees)) 1 SELECT SUM(salary*0.03) AS sumsal3 2 FROM employees 3 WHERE depid = 3; 14 / 56

168 Παράδειγμα αθροίσματος γενικευμένης προβολής Να βρεθεί το επιπλέον ποσό που θα δοθεί σε μισθούς αν οι υπάλληλοι του τμήματος 3 πάρουν αύξηση 3% G sum(salary 0.03) sumsal3 (σ depid=3 (employees)) 1 SELECT SUM(salary*0.03) AS sumsal3 2 FROM employees 3 WHERE depid = 3; Η μετονομασία του πεδίου είναι χρήσιμη αλλά προαιρετική. Κάντε την πράξη με λογιστικό φύλλο και αναλύστε πλεονεκτήματα/μειονεκτήματα. Προσέξτε πως το μόνο που δηλώνει ο χρήστης στην SQL είναι ονόματα πεδίων και πινάκων. 15 / 56

169 Παράδειγμα υπολογισμού μέσου όρου Να βρεθεί ο μέσος μισθός όλων των υπαλλήλων G avg(salary) (employees) 16 / 56

170 Παράδειγμα υπολογισμού μέσου όρου Να βρεθεί ο μέσος μισθός όλων των υπαλλήλων G avg(salary) (employees) 1 SELECT AVG(salary) 2 FROM employees; 3 4 AVG(salary) / 56

171 Μέσος όρος με περιορισμό εγγραφών Να βρεθεί ο μέσος μισθός των υπαλλήλων του τμήματος 3 G avg(salary) (σ depid=3 (employees)) 18 / 56

172 Μέσος όρος με περιορισμό εγγραφών Να βρεθεί ο μέσος μισθός των υπαλλήλων του τμήματος 3 G avg(salary) (σ depid=3 (employees)) 1 SELECT AVG(salary) 2 FROM employees 3 WHERE depid = 3; 4 5 AVG(salary) / 56

173 Ελάχιστη τιμή Να βρεθεί ο μικρότερος μισθός των υπαλλήλων του τμήματος 3 G min(salary) σ depid=3 (employees) 20 / 56

174 Ελάχιστη τιμή Να βρεθεί ο μικρότερος μισθός των υπαλλήλων του τμήματος 3 G min(salary) σ depid=3 (employees) 1 SELECT MIN(salary) 2 FROM employees 3 WHERE depid = 3; 4 5 MIN(salary) / 56

175 Μέγιστη τιμή Να βρεθεί η ημερομηνία της πιο πρόσφατης πρόσληψης G max(hiredate) (employees) 1 SELECT MAX(hiredate) 2 FROM employees; 3 4 MAX(hiredate) / 56

176 Καταμέτρηση πλήθους Να βρεθεί πόσοι υπάλληλοι εργάζονται στο τμήμα 4 G count(empid) (σ depid=4 (employees)) 23 / 56

177 Καταμέτρηση πλήθους Να βρεθεί πόσοι υπάλληλοι εργάζονται στο τμήμα 4 G count(empid) (σ depid=4 (employees)) 1 SELECT COUNT(empid) 2 FROM employees 3 WHERE depid = 4; 4 5 COUNT(empid) / 56

178 COUNT(*) Να βρεθεί πόσοι υπάλληλοι εργάζονται στο τμήμα 4 1 SELECT COUNT(*) 2 FROM employees 3 WHERE depid = 4; 4 5 COUNT(*) COUNT(empid) : Καταμέτρηση εγγραφών με μη NULL τιμές στο πεδίο empid. 2 COUNT(*) : Καταμέτρηση εγγραφών 25 / 56

179 Δύο συναρτήσεις στο ίδιο ερώτημα Να βρεθεί το εύρος το μισθών του τμήματος 4 G max(salary) min(salary) (employees) 26 / 56

180 Δύο συναρτήσεις στο ίδιο ερώτημα Να βρεθεί το εύρος το μισθών του τμήματος 4 G max(salary) min(salary) (employees) 1 SELECT MAX(salary)-MIN(salary) 2 FROM employees 3 WHERE depid = 4; 4 5 MAX(salary)-MIN(salary) / 56

181 Περιεχόμενα 1 Εισαγωγή, γενικές παρατηρήσεις 2 Συναρτήσεις συνάθροισης 3 Τιμές NULL και μοναδικές τιμές 4 Ομαδοποίηση εγγραφών 5 Περιορισμός μετά την ομαδοποίηση 6 Μερικά και ολικά αθροίσματα 28 / 56

182 Πλήθος μισθοδοτούμενων υπαλλήλων Να βρεθεί το πλήθος καταχωρημένων μισθών 1 SELECT COUNT(salary) 2 FROM employees; 3 4 count(salary) Να βρεθεί το πλήθος των κωδικών των υπαλλήλων 1 SELECT COUNT(empid) 2 FROM employees; 3 4 count(empid) Υπάρχουν 30 υπάλληλοι αλλά 27 μισθοί COUNT(salary) δεν μετράει τις τιμές NULL Το πεδίο empid δεν παίρνει ποτέ τιμές NULL γιατί είναι πρωτεύον κλειδί 29 / 56

183 Τιμές NULL Να βρεθεί το πλήθος των υπαλλήλων χωρίς μισθό 1 SELECT COUNT(salary) 2 FROM employees 3 WHERE salary IS NULL; 4 5 COUNT(salary) Να βρεθεί το πλήθος των υπαλλήλων χωρίς μισθό 1 SELECT COUNT(empid) 2 FROM employees 3 WHERE salary IS NULL; 4 5 count(empid) Οι τιμές NULL δεν απαριθμούνται. Το πλήθος των εγγραφών με τιμή NULL στο πεδίο salary είναι / 56

184 Καταμέτρηση μοναδικών τιμών (Λάθος) Να βρεθεί το πλήθος των τμημάτων των υπαλλήλων 1 SELECT COUNT(depid) 2 FROM employees; 3 4 COUNT(depid) / 56

185 Καταμέτρηση μοναδικών τιμών (Σωστό) Να βρεθεί το πλήθος των τμημάτων των υπαλλήλων 1 SELECT COUNT(DISTINCT depid) 2 FROM employees; 3 4 COUNT(DISTINCT depid) / 56

186 Περιεχόμενα 1 Εισαγωγή, γενικές παρατηρήσεις 2 Συναρτήσεις συνάθροισης 3 Τιμές NULL και μοναδικές τιμές 4 Ομαδοποίηση εγγραφών 5 Περιορισμός μετά την ομαδοποίηση 6 Μερικά και ολικά αθροίσματα 33 / 56

187 Ομαδοποίηση Μέχρι τώρα είδαμε απλά ερωτήματα, η απάντηση των οποίων ήταν μία τιμή. Πολλές φορές το ζητούμενο είναι μια λίστα τιμών, μία τιμή ανά κατηγορία. Πχ ο μέσος μισθός ανά τμήμα, ή ο αρχαιότερος υπάλληλος ανά τμήμα Για αυτές τις περιπτώσεις θα χρειαστούμε μια νέα φράση: GROUP BY 34 / 56

188 Πλήθος υπαλλήλων ανά τμήμα Πλήθος υπαλλήλων ανά τμήμα depidg count( ) (employees) 35 / 56

189 Πλήθος υπαλλήλων ανά τμήμα Πλήθος υπαλλήλων ανά τμήμα depidg count( ) (employees) 1 SELECT depid, COUNT(*) 2 FROM employees 3 GROUP BY depid; depid COUNT(*) / 56

190 Πλήθος υπαλλήλων ανά τμήμα Πλήθος υπαλλήλων ανά τμήμα depidg count( ) (employees) 1 SELECT depid, COUNT(*) 2 FROM employees 3 GROUP BY depid; depid COUNT(*) Η SQL έχει πλεονεκτήματα: Δεν χρειάζεται να γνωρίζουμε το μέγεθος του πίνακα. Το ίδιο ακριβώς ερώτημα SQL θα χρησιμοποιηθεί έστω και αν αλλάξουν τα δεδομένα του πίνακα μετά από προσθήκη ή αφαίρεση εγγραφών. 37 / 56

191 Μικρότερο ανά... Ο μικρότερος μισθός ανά τμήμα υπαλλήλων depidg min(salary) (employees) 38 / 56

192 Μικρότερο ανά... Ο μικρότερος μισθός ανά τμήμα υπαλλήλων depidg min(salary) (employees) 1 SELECT depid, MIN(salary) 2 FROM employees 3 GROUP BY depid; 4 5 depid MIN(salary) / 56

193 Περιορισμός και ομαδοποίηση Να βρεθεί το άθροισμα των μισθών των υπαλλήλων ανά τμήμα για τους υπαλλήλους που προσλήφθηκαν μέσα στο 2004 depidg sum(salary) (σ hiredate hiredate (employees)) 40 / 56

194 Περιορισμός και ομαδοποίηση Να βρεθεί το άθροισμα των μισθών των υπαλλήλων ανά τμήμα για τους υπαλλήλους που προσλήφθηκαν μέσα στο 2004 depidg sum(salary) (σ hiredate hiredate (employees)) 1 SELECT depid, SUM(salary) 2 FROM employees 3 WHERE hiredate BETWEEN AND GROUP BY depid; 41 / 56

195 Ομαδοποίηση και ταξινόμηση Να βρεθεί το άθροισμα των μισθών των υπαλλήλων ανά τμήμα με φθίνουσα ταξινόμηση ως προς το άθροισμα των μισθών 42 / 56

196 Ομαδοποίηση και ταξινόμηση Να βρεθεί το άθροισμα των μισθών των υπαλλήλων ανά τμήμα με φθίνουσα ταξινόμηση ως προς το άθροισμα των μισθών 1 SELECT depid, SUM(salary) 2 FROM employees 3 GROUP BY depid 4 ORDER BY SUM(salary) DESC; 5 depid SUM(salary) / 56

197 Περιεχόμενα 1 Εισαγωγή, γενικές παρατηρήσεις 2 Συναρτήσεις συνάθροισης 3 Τιμές NULL και μοναδικές τιμές 4 Ομαδοποίηση εγγραφών 5 Περιορισμός μετά την ομαδοποίηση 6 Μερικά και ολικά αθροίσματα 44 / 56

198 Περιορισμός μετά την ομαδοποίηση Τμήματα με περισσότερους από 4 υπαλλήλους σ count(depid)>4 ( depidg count(empid) (employees) ) 45 / 56

199 Περιορισμός μετά την ομαδοποίηση Τμήματα με περισσότερους από 4 υπαλλήλους σ count(depid)>4 ( depidg count(empid) (employees) ) 1 SELECT depid, COUNT(depid) 2 FROM employees 3 GROUP BY depid 4 HAVING COUNT(depid) > 4; 46 / 56

200 Περιορισμός μετά την ομαδοποίηση Τμήματα με περισσότερους από 4 υπαλλήλους σ count(depid)>4 ( depidg count(empid) (employees) ) 1 SELECT depid, COUNT(depid) 2 FROM employees 3 GROUP BY depid 4 HAVING COUNT(depid) > 4; depid COUNT(*) Ο όρος HAVING τοποθετείται μετά τον όρο GROUP BY. Η σύνταξη είναι παρόμοια με αυτή του όρου WHERE. Ο όρος HAVING περιορίζει το αποτέλεσμα του ερωτήματος με βάση πεδία που παράγονται από τον όρο GROUP BY. 47 / 56

201 Περιορισμός πριν και μετά την ομαδοποίηση Να βρεθούν τα τμήματα με περισσότερους από 3 υπαλλήλους με μισθό μεγαλύτερο από 1200 σ count(depid)>3 ( depidg count(empid) (σ salary>1200 (employees)) ) 48 / 56

202 Περιορισμός πριν και μετά την ομαδοποίηση Να βρεθούν τα τμήματα με περισσότερους από 3 υπαλλήλους με μισθό μεγαλύτερο από 1200 σ count(depid)>3 ( depidg count(empid) (σ salary>1200 (employees)) ) 1 SELECT depid 2 FROM employees 3 WHERE salary > GROUP BY depid 5 HAVING COUNT(depid) > 3; 6 7 depid / 56

203 Περιεχόμενα 1 Εισαγωγή, γενικές παρατηρήσεις 2 Συναρτήσεις συνάθροισης 3 Τιμές NULL και μοναδικές τιμές 4 Ομαδοποίηση εγγραφών 5 Περιορισμός μετά την ομαδοποίηση 6 Μερικά και ολικά αθροίσματα 50 / 56

204 ROLLUP (μερικά αθροίσματα) Πλήθος των υπαλλήλων ανά τμήμα και το συνολικό πλήθος των υπαλλήλων της εταιρείας 51 / 56

205 ROLLUP (μερικά αθροίσματα) Πλήθος των υπαλλήλων ανά τμήμα και το συνολικό πλήθος των υπαλλήλων της εταιρείας 1 SELECT depid, COUNT(*) 2 FROM employees 3 GROUP BY depid WITH ROLLUP; 52 / 56

206 ROLLUP (μερικά αθροίσματα) Πλήθος των υπαλλήλων ανά τμήμα και το συνολικό πλήθος των υπαλλήλων της εταιρείας 1 SELECT depid, COUNT(*) 2 FROM employees 3 GROUP BY depid WITH ROLLUP; depid COUNT(*) NULL 30 WITH ROLLUP : μετά το πεδίο που ακολουθεί τον όρο GROUP BY. Προσοχή την τιμή NULL στο τέλος που αντιστοιχεί στο σύνολο των εγγραφών. 53 / 56

207 Μερικά αθροίσματα με διπλή ομαδοποίηση Να βρεθεί ο μέσος μισθός των υπαλλήλων ανά τμήμα και έτος πρόσληψης για τμήματα με κωδικό 2 και 6 1 SELECT depid, YEAR(hiredate), AVG(salary) 2 FROM employees 3 WHERE depid IN (2,6) 4 GROUP BY depid, YEAR(hiredate) WITH ROLLUP; 5 6 depid YEAR(hiredate) AVG(salary) NULL NULL NULL NULL / 56

208 Αναστροφή της λίστας πεδίων Ο μέσος μισθός των υπαλλήλων ανά έτος πρόσληψης και τμήμα για τμήματα με κωδικό 2 και 6 1 SELECT YEAR(hiredate), depid, AVG(salary) 2 FROM employees 3 WHERE depid IN (2,6) 4 GROUP BY YEAR(hiredate), depid WITH ROLLUP; 5 6 YEAR(hiredate) depid AVG(salary) NULL NULL NULL / 56

209 Ερωτήματα SQL με σύζευξη πινάκων 1 / 150

210 Περιεχόμενα 1 Γενικά για τη σύζευξη πινάκων 2 Καρτεσιανό γινόμενο και θ σύζευξη 3 Φυσική σύζευξη πινάκων στην SQL 4 Εσωτερική σύζευξη πινάκων στην SQL 5 Εξωτερική σύζευξη πινάκων στην SQL 2 / 150

211 Σκοπός του μαθήματος 3 / 150

212 Σκοπός του μαθήματος 1 Εκτελείτε ερωτήματα ανάσυρσης δεδομένων από πολλούς πίνακες. 4 / 150

213 Σκοπός του μαθήματος 1 Εκτελείτε ερωτήματα ανάσυρσης δεδομένων από πολλούς πίνακες. 2 Εκτελείτε ερωτήματα που αντιστοιχούν στις σχεσιακές πράξεις καρτεσιανού γινομένου και σύζευξης. 5 / 150

214 Σκοπός του μαθήματος 1 Εκτελείτε ερωτήματα ανάσυρσης δεδομένων από πολλούς πίνακες. 2 Εκτελείτε ερωτήματα που αντιστοιχούν στις σχεσιακές πράξεις καρτεσιανού γινομένου και σύζευξης. 3 Εφαρμόζετε κατάλληλες συνδέσεις (JOIN) πινάκων. 6 / 150

215 Σκοπός του μαθήματος 1 Εκτελείτε ερωτήματα ανάσυρσης δεδομένων από πολλούς πίνακες. 2 Εκτελείτε ερωτήματα που αντιστοιχούν στις σχεσιακές πράξεις καρτεσιανού γινομένου και σύζευξης. 3 Εφαρμόζετε κατάλληλες συνδέσεις (JOIN) πινάκων. 4 Αντιληφθείτε τις διαφορές και ομοιότητες ανάμεσα στους διαφορετικούς τύπους συζεύξεων. 7 / 150

216 Το σχήμα της βάσης company departments(depid, depname, manager) employees(empid, firstname, lastname, depid, salary, hiredate) projects(proid, title, budget, startdate, enddate, progress) workson(empid, proid) departments, τα τμήματα της εταιρείας employees, οι υπάλληλοι της εταιρείας projects, τα έργα που εκτελεί η εταιρεία workson, η απασχόληση των υπαλλήλων στα έργα 8 / 150

217 Το σχήμα της βάσης company departments, τα τμήματα της εταιρείας employees, οι υπάλληλοι της εταιρείας projects, τα έργα που εκτελεί η εταιρεία workson, η απασχόληση των υπαλλήλων στα έργα 9 / 150

218 Πρωτεύοντα και ξένα κλειδιά 10 / 150

219 Πρωτεύοντα και ξένα κλειδιά 1 Κάθε πίνακας έχει ένα πρωτεύον κλειδί. 11 / 150

220 Πρωτεύοντα και ξένα κλειδιά 1 Κάθε πίνακας έχει ένα πρωτεύον κλειδί. 2 Το πρωτεύον κλειδί μπορεί να είναι απλό (ένα πεδίο), ή σύνθετο (συνδυασμός πεδίων). 12 / 150

221 Πρωτεύοντα και ξένα κλειδιά 1 Κάθε πίνακας έχει ένα πρωτεύον κλειδί. 2 Το πρωτεύον κλειδί μπορεί να είναι απλό (ένα πεδίο), ή σύνθετο (συνδυασμός πεδίων). 3 Κάθε εγγραφή ενός πίνακα μπορεί να προσδιοριστεί με τη χρήση του πρωτεύοντος κλειδιού. 13 / 150

222 Πρωτεύοντα και ξένα κλειδιά 1 Κάθε πίνακας έχει ένα πρωτεύον κλειδί. 2 Το πρωτεύον κλειδί μπορεί να είναι απλό (ένα πεδίο), ή σύνθετο (συνδυασμός πεδίων). 3 Κάθε εγγραφή ενός πίνακα μπορεί να προσδιοριστεί με τη χρήση του πρωτεύοντος κλειδιού. 4 Η σύνδεση δεδομένων από διαφορετικούς πίνακες σύζευξη γίνεται (συνήθως) με τη χρήση του ξένου κλειδιού, 14 / 150

223 Πρωτεύοντα και ξένα κλειδιά 1 Κάθε πίνακας έχει ένα πρωτεύον κλειδί. 2 Το πρωτεύον κλειδί μπορεί να είναι απλό (ένα πεδίο), ή σύνθετο (συνδυασμός πεδίων). 3 Κάθε εγγραφή ενός πίνακα μπορεί να προσδιοριστεί με τη χρήση του πρωτεύοντος κλειδιού. 4 Η σύνδεση δεδομένων από διαφορετικούς πίνακες σύζευξη γίνεται (συνήθως) με τη χρήση του ξένου κλειδιού, 5 Ενας πίνακας μπορεί να έχει πολλά ξένα κλειδιά ή να μην έχει κανένα. 15 / 150

224 Συσχέτιση departments και employees Ν:1 Ο πίνακας departments έχει πρωτεύον κλειδί το πεδίο depid. Ο πίνακας employees έχει πρωτεύον κλειδί το πεδίο empid. Ο πίνακας employees έχει ξένο κλειδί το πεδίο depid, το οποίο παίρνει τιμές που αναφέρονται στις τιμές του πεδίου depid του πίνακα departments: departments.depid = employees.depid 16 / 150

225 Συσχέτιση departments και employees Ν:1 Το πεδίο employees.depid δεν είναι πρωτεύον κλειδί και δεν παίρνει μοναδικές τιμές: πολλοί υπάλληλοι εργάζονται στο ίδιο τμήμα. Οι πίνακες departments και employees συσχετίζονται μεταξύ τους με συσχέτιση Πολλά προς Ενα. 17 / 150 Ο πίνακας departments έχει πρωτεύον κλειδί το πεδίο depid. Ο πίνακας employees έχει πρωτεύον κλειδί το πεδίο empid. Ο πίνακας employees έχει ξένο κλειδί το πεδίο depid, το οποίο παίρνει τιμές που αναφέρονται στις τιμές του πεδίου depid του πίνακα departments: departments.depid = employees.depid

226 Συσχέτιση departments - employees 18 / 150

227 Συσχέτιση departments και employees 1:1 Ο πίνακας departments έχει πρωτεύον κλειδί το πεδίο depid. Ο πίνακας employees έχει πρωτεύον κλειδί το πεδίο empid. Ο πίνακας departments έχει ξένο κλειδί το πεδίο manager, το οποίο παίρνει τιμές που αναφέρονται στις τιμές του πεδίου emppid του πίνακα employees: departments.manager = employees.empid 19 / 150

228 Συσχέτιση departments και employees 1:1 Το πεδίο departments.manager δεν είναι πρωτεύον κλειδί αλλά παίρνει μοναδικές τιμές (UNIQUE). Οι πίνακες departments και employees συσχετίζονται μεταξύ τους με συσχέτιση Ενα προς Ενα. 20 / 150 Ο πίνακας departments έχει πρωτεύον κλειδί το πεδίο depid. Ο πίνακας employees έχει πρωτεύον κλειδί το πεδίο empid. Ο πίνακας departments έχει ξένο κλειδί το πεδίο manager, το οποίο παίρνει τιμές που αναφέρονται στις τιμές του πεδίου emppid του πίνακα employees: departments.manager = employees.empid

229 Συσχέτιση employees και projects Ν:Ν 21 / 150

230 Συσχέτιση employees και projects Ν:Ν 1 Ο πίνακας projects έχει πρωτεύον κλειδί το πεδίο proid. 22 / 150

231 Συσχέτιση employees και projects Ν:Ν 1 Ο πίνακας projects έχει πρωτεύον κλειδί το πεδίο proid. 2 Ο πίνακας workson έχει πρωτεύον κλειδί το συνδυασμό των πεδίων empid και proid (σύνθετο κλειδί). 23 / 150

232 Συσχέτιση employees και projects Ν:Ν 1 Ο πίνακας projects έχει πρωτεύον κλειδί το πεδίο proid. 2 Ο πίνακας workson έχει πρωτεύον κλειδί το συνδυασμό των πεδίων empid και proid (σύνθετο κλειδί). 3 Το πεδίο empid είναι ξένο κλειδί στον πίνακα workson και αναφέρεται στο πεδίο employees.empid. 24 / 150

233 Συσχέτιση employees και projects Ν:Ν 1 Ο πίνακας projects έχει πρωτεύον κλειδί το πεδίο proid. 2 Ο πίνακας workson έχει πρωτεύον κλειδί το συνδυασμό των πεδίων empid και proid (σύνθετο κλειδί). 3 Το πεδίο empid είναι ξένο κλειδί στον πίνακα workson και αναφέρεται στο πεδίο employees.empid. 4 Το πεδίο proid είναι ξένο κλειδί στον πίνακα workson και αναφέρεται στο πεδίο projects.proid. 25 / 150

234 Συσχέτιση employees και projects Ν:Ν 1 Ο πίνακας projects έχει πρωτεύον κλειδί το πεδίο proid. 2 Ο πίνακας workson έχει πρωτεύον κλειδί το συνδυασμό των πεδίων empid και proid (σύνθετο κλειδί). 3 Το πεδίο empid είναι ξένο κλειδί στον πίνακα workson και αναφέρεται στο πεδίο employees.empid. 4 Το πεδίο proid είναι ξένο κλειδί στον πίνακα workson και αναφέρεται στο πεδίο projects.proid. 5 Ενας υπάλληλος απασχολείται σε πολλά έργα, ένα έργο απασχολεί πολλούς υπαλλήλους, επομένως η συσχέτιση είναι Πολλά προς Πολλά. 26 / 150

235 Συσχέτιση employees και projects Ν:Ν 1 Ο πίνακας projects έχει πρωτεύον κλειδί το πεδίο proid. 2 Ο πίνακας workson έχει πρωτεύον κλειδί το συνδυασμό των πεδίων empid και proid (σύνθετο κλειδί). 3 Το πεδίο empid είναι ξένο κλειδί στον πίνακα workson και αναφέρεται στο πεδίο employees.empid. 4 Το πεδίο proid είναι ξένο κλειδί στον πίνακα workson και αναφέρεται στο πεδίο projects.proid. 5 Ενας υπάλληλος απασχολείται σε πολλά έργα, ένα έργο απασχολεί πολλούς υπαλλήλους, επομένως η συσχέτιση είναι Πολλά προς Πολλά. 6 Η σύζευξη των πινάκων employees και projects γίνεται μέσω του πίνακα workson. 27 / 150

236 Το σχήμα της βάσης company (MySQL) departments, τα τμήματα της εταιρείας employees, οι υπάλληλοι της εταιρείας projects, τα έργα που εκτελεί η εταιρεία workson, η απασχόληση των υπαλλήλων στα έργα 28 / 150

237 Το σχήμα της βάσης company (.odp) departments, τα τμήματα της εταιρείας employees, οι υπάλληλοι της εταιρείας projects, τα έργα που εκτελεί η εταιρεία workson, η απασχόληση των υπαλλήλων στα έργα 29 / 150

1 / 97

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

Διαβάστε περισσότερα

1 / 87

1 / 87 Τα πρώτα ερωτήματα SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2016 1 / 87 Δυο λόγια για την SQL Υλοποίηση του σχεσιακού μοντέλου δεδομένων του E.F. Codd, αρχικά ως DSl/Alpha, αργότερα

Διαβάστε περισσότερα

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

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP. SQL: Ερωτήματα ομαδοποίησης και συνάθροισης GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2016 1 / 56 Περιεχόμενα 1 Εισαγωγή, γενικές

Διαβάστε περισσότερα

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

DISTINCT, LIKE, NULL, AND, OR, BETWEEN Περισσότερα για τα απλά ερωτήματα SQL DISTINCT, LIKE, NULL, AND, OR, BETWEEN Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 66 Σκοπός του μαθήματος Αποκλείσετε διπλοεγγραφές από

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διαβάστε περισσότερα

Υποερωτήματα στην SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr 1 / 31 Η ανάγκη για υποερώτημα Ποιος υπάλληλος παίρνει το μεγαλύτερο μισθό; Αν ξέραμε το μεγαλύτερο μισθό, πχ 2000, θα γράφαμε:

Διαβάστε περισσότερα

Σχεσιακή Άλγεβρα Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 15 Επισκόπηση 1 Οι βασικές πράξεις προβολής και επιλογής Η σχεσιακή πράξη της προβολής Η σχεσιακή πράξη της επιλογής

Διαβάστε περισσότερα

Ερωτήματα SQL με σύζευξη πινάκων ΜΗ ΕΙΝΑΙ ΒΑΣΙΛΙΚΗΝ ΑΤΡΑΠΟΝ ΕΠΙ ΓΕΩΜΕΤΡΙΑΝ Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr 1 / 30 Σκοπός του μαθήματος Εκτελείτε ερωτήματα ανάσυρσης δεδομένων από

Διαβάστε περισσότερα

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

Ερωτήματα επιλογής με σύζευξη πινάκων ΚΕΦΑΛΑΙΟ 13 Ερωτήματα επιλογής με σύζευξη πινάκων Το κεφάλαιο αυτό σας εισάγει στον πραγματικό κόσμο των σχεσιακών βάσεων δεδομένων. Τα ερωτήματα που θα συναντήσετε έχουν πολλούς πίνακες στον όρο FROM,

Διαβάστε περισσότερα

1 / 150

1 / 150 Ερωτήματα SQL με σύζευξη πινάκων Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 150 Περιεχόμενα 1 Γενικά για τη σύζευξη πινάκων 2 Καρτεσιανό γινόμενο και θ σύζευξη 3 Φυσική σύζευξη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

1 / 105

1 / 105 Ερωτήματα SQL με σύζευξη πινάκων Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 105 Περιεχόμενα 1 Γενικά για τη σύζευξη πινάκων 2 Καρτεσιανό γινόμενο

Διαβάστε περισσότερα

DELETE, UPDATE, INSERT

DELETE, UPDATE, INSERT Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 103 Περιεχόμενα 1 Γενικά για την αποθήκευση

Διαβάστε περισσότερα

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT. Ενημέρωση βάσης δεδομένων με SQL DELETE, UPDATE, INSERT Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 88 Περιεχόμενα 1 Γενικά για την αποθήκευση δεδομένων και την ενημέρωση της

Διαβάστε περισσότερα

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

Πρόλογος Μέρος Ι Μια βόλτα στις βάσεις δεδομένων Μια βόλτα στις βάσεις δεδομένων...25 1 Περιεχόμενα Πρόλογος... 21 Μέρος Ι Μια βόλτα στις βάσεις δεδομένων... 23 1 Μια βόλτα στις βάσεις δεδομένων...25 1.1 Η πρώτη βάση δεδομένων... 26 1.1.1 Άλλοι τρόποι... 26 1.1.2 Απαιτήσεις της εφαρμογής...

Διαβάστε περισσότερα

Σχεσιακή Άλγεβρα Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=154 Άνοιξη 2014 1 / 88 Σχεσιακή άλγεβρα Η σχεσιακή άλγεβρα είναι μια διαδικαστική (procedural) γλώσσα. Διαθέτει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

1 / 106

1 / 106 Σχεσιακή Άλγεβρα Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=154 Άνοιξη 2016 1 / 106 Σχεσιακή άλγεβρα Η σχεσιακή άλγεβρα είναι μια διαδικαστική (procedural) γλώσσα. Διαθέτει

Διαβάστε περισσότερα

1 / 106

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

Διαβάστε περισσότερα

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

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML. Κεφάλαιο 5 Η γλώσσα SQL 5.1 Εισαγωγή Η γλώσσα SQL (Structured Query Language) είναι η πιο διαδεδομένη διαλογική γλώσσα ερωταπαντήσεων που χρησιμοποιείται για την επικοινωνία του χρήστη με σχεσιακές ΒΔ.

Διαβάστε περισσότερα

Οψεις (VIEWS) στην SQL Η εντολή CREATE VIEW Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 55 Περιεχόμενα 1 Εισαγωγικά για τις όψεις 2 Οψεις και συζεύξεις 3 Επιπλέον χρήση των όψεων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σχεδίαση Βάσεων Δεδομένων Οδηγίες Μέρος 1: Απαντήστε κάθε ερώτηση. 1. Ποια είναι τα πλεονεκτήματα που παρέχει το Περιβάλλον Βάσεων Δεδομένων της Oracle για τις επιχειρήσεις; Το σύστημα διαχείρισης βάσεων δεδομένων της Oracle δίνει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής ΑΠΘ Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 2 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: Η μελέτη ερωτημάτων σε μία μόνο σχέση. Εξετάζουμε τους τελεστές επιλογής

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (7 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (7 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα SQL Βασικές πράξεις Πράξεις συνόλων Συνενώσεις Συναθροιστικές συναρτήσεις Ομαδοποιήσεις 10/4/2014 Βάσεις Δεδομένων 2 Η γλώσσα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής. ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2012 SQL Structured Query Language Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Πράξεις της σχεσιακής άλγεβρας ΠΡΑΞΗ ΣΚΟΠΟΣ

Διαβάστε περισσότερα

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

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη 1 SQL(DML) - Query Example 1 Query:1 Βρείτε τα ονόματα των έργων που δεν αφορούν το τμήμα research

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ Εισαγωγή στη MySQL Νικόλαος Ζ. Ζάχαρης Τι είναι η MySql Είναι ένα Σχεσιακό Σύστημα Διαχείρισης

Διαβάστε περισσότερα

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 Περιεχόμενα 1 Δημιουργία πινάκων με την

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 6: Structured Query Language (SQL) Μια γλώσσα Βάσεων

Διαβάστε περισσότερα

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 85 Περιεχόμενα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός 7 Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα H Σχεσιακή Άλγεβρα (relational algebra) ορίζει ένα σύνολο πράξεων που εφαρμόζονται σε μία ή περισσότερες σχέσεις

Διαβάστε περισσότερα

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

Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2 Η Γλώσσα SQL Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Η γλώσσα SQL What men or gods are these? What maidens loth? What mad pursuit? What struggle to escape? What pipes and timbrels? What wild ectasy?

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων Ι 8. Ερωτήματα (B) Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας Βάσεις Δεδομένων Ι 8 Ερωτήματα (B) Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας ΝΙΚΟΣ ΚΑΡΟΥΣΟΣ - ΔΙΟΝΥΣΗΣ ΚΑΡΟΥΣΟΣ XE 2015-2016 Λογικά κριτήρια σε κείμενο Ίσο = " _" Διάφορο " _ " ή

Διαβάστε περισσότερα

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

Τμήμα Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων «Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα» «Σημειώσεις για την SQL» ΕΞΑΜΗΝΟ: ΣΤ Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Πάτρα, Νοέμβριος 2010 SQL Create Table Η CREATE TABLE

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Ενότητα 7.1: Structured Query Language - 1 ο Μέρος. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Βάσεις Δεδομένων Ενότητα 7.1: Structured Query Language - 1 ο Μέρος Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων Άδειες Χρήσης

Διαβάστε περισσότερα

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

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 4 Δρ. Βασιλική Κούφη Περιεχόμενα Υλοποίηση Βάσεως Δεδομένων Εκτέλεση ερωτημάτων SQL στην Βάση Δεδομένων BHMA 1. Σχεδιασμός

Διαβάστε περισσότερα

SQL Data Manipulation Language

SQL Data Manipulation Language SQL Data Manipulation Language Τελεστής union συνδυάζει subselects τα οποία παράγουν συμβατές σχέσεις γενική μορφή: subselect {union [all] subselect} περιορισμός: τα subselects δεν μπορούν να περιέχουν

Διαβάστε περισσότερα

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

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 7 Γλώσσα Ερωτημάτων SQL Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Σχεσιακή

Διαβάστε περισσότερα

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

Κεφάλαιο 9 Συναθροίσεις Κεφάλαιο 9 Συναθροίσεις Σύνοψη Στο παρόν κεφάλαιο θα παρουσιαστούν ερωτήματα συνάθροισης χρησιμοποιώντας τις βασικές συναρτήσεις MAX, MIN, AVG, SUM και COUNT. Θα παρουσιαστεί η χρήση της ομαδοποίησης εγγραφών

Διαβάστε περισσότερα

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

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους ΘΕΜΑΤΑ A Οι παρακάτω πίνακες αποτελούνται από τα εξής πεδία : ΕΡΓΑΖΟΜΕΝΟΣ : ΑΦΜ, ΕΠΙΘΕΤΟ, ΟΝΟΜΑ, ΤΗΛ, ΟΔΟΣ, ΠΟΛΗ,ΜΙΣΘΟΣ, ΚΤ ΤΜΗΜΑ : ΚΤ, ΑΦΜ, ΤΙΤΛΟΣ_ΤΜΗΜΑΤΟΣ, ΤΗΛ ΕΡΓΑ : ΚΕΡ, ΠΕΡΙΓΡΑΦΗ, ΤΟΠΟΘΕΣΙΑ, ΠΡΟΫΠΟΛΟΓΙΣΜΟΣ

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Εργαστήριο ΙV. Τμήμα Πληροφορικής ΑΠΘ 2014-2015 Βάσεις Δεδομένων Εργαστήριο ΙV Τμήμα Πληροφορικής ΑΠΘ 2014-2015 2 Σκοπός του 4 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων σύνδεσης η μελέτη ερωτημάτων συνάθροισης 3 Εκφράσεις

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL Εθνικό Μετσόβιο ολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Βάσεις Δεδομένων Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL Η γλώσσα SQL

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

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

Βάσεις Περιβαλλοντικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 9-10: SQL ερωτήματα επιλογής Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων (Databases) Βάσεις Δεδομένων (Databases) ΕΠΛ 342 Χειμερινό Εξάμηνο 2011 Διδάσκοντες Καθηγητές Γιώργος Σαμάρας (ΧΩΔ01 109) Δομημένη Γλώσσα Ερωτήσεων SQL DML Σχεσιακοί Τελεστές Τελεστές Συνόλων Ανάκτηση με NULLs Συνδέσεις-Συνενώσεις

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής ΑΠΘ 2013-2014 Βάσεις Δεδομένων Εργαστήριο V Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 5 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων τροποποίησης δομής / δεδομένων η μελέτη σύνθετων ερωτημάτων

Διαβάστε περισσότερα

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

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Παραδοτέα 1. Το αρχείο.mdb της βάσης δεδομένων σας σε ACCESS 2. Ένα CD που θα αναγράφει το ονοματεπώνυμο του σπουδαστή και το ΑΕΜ και θα περιέχει το αρχείο.mdb της βάσης δεδομένων καθώς και το εγχειρίδιο

Διαβάστε περισσότερα

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

Τεχνολογία Πολιτισμικού Λογισμικού Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Τεχνολογία Πολιτισμικού Λογισμικού Ενότητα 10: Γλώσσα Ερωτημάτων SQL Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

Διαβάστε περισσότερα

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

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές. Σχολή Διοίκησης και Οικονομίας (ΣΔΟ) Τμήμα Λογιστικής και Χρηματοοικονομικής Διδάσκων: Δρ. Γκόγκος Χρήστος Μάθημα: Πληροφορική ΙI (εργαστήριο) Ακαδημαϊκό έτος 2013-2014 εαρινό εξάμηνο ΟΝΟΜΑΤΕΠΩΝΥΜΟ : ΑΡΙΘΜΟΣ

Διαβάστε περισσότερα

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

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης Περιεχόμενα 1 Γενική περιγραφή του προβλήματος 2 Μοντελοποίηση Ο/Σ 3 Σχεσιακό μοντέλο, SQL 4 Ερωτήματα

Διαβάστε περισσότερα

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11 ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model SQL Μαθ. #11 Ε-R Model for a COMPANY database The COMPANY relational database schema A relational database instance of the COMPANY schema SQL Μια γλώσσα σχεσιακής βάσης

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων Εισαγωγή στη χρήση της γλώσσας SQL και στον προγραμματισμό εφαρμογών βάσεων δεδομένων Θα χρησιμοποιήσουμε το Σχεσιακό Σύστημα (προϊόν)

Διαβάστε περισσότερα

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

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

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Βάση εδομένων Η ομή ενός ΣΒ Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή ΜΕΡΟΣ 1 (Χρήση Σ Β ) Γενική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σύβακας Σταύρος ΠΕ19,MSc. IT ΣΥΒΑΚΑΣ ΣΤΑΥΡΟΣ ΕΡΩΤΗΜΑΤΑ Σύβακας Σταύρος ΠΕ19,MSc. IT Εισαγωγή Τα ερωτήματα (queries) είναι μία από τις πιο σημαντικές δυνατότητες που προφέρει ένα Σ%Β% αφού επιτρέπουν: Ανάκτηση και ανάλυση των δεδομένων στην επιθυμητή μορφή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL Παύλος Εφραιμίδης Βάσεις Δεδομένων SQL - Μέρος Τρίτο 1 Περιεχόμενα Προχωρημένα Ερωτήματα SQL Συνένωση Συναθροιστικές Συναρτήσεις Ομαδοποίηση Βάσεις Δεδομένων

Διαβάστε περισσότερα

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

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήματος 1. Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασμός) 2. Προγραμματισμός (Σχεσιακή Άλγεβρα, SQL) ημιουργία/κατασκευή Εισαγωγή εδομένων

Διαβάστε περισσότερα

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

Διαβάστε περισσότερα

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

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL) Περιεχόμενα Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL Παύλος Εφραιμίδης Προχωρημένα Ερωτήματα SQL Συνένωση Συναθροιστικές Συναρτήσεις Ομαδοποίηση Βάσεις Δεδομένων SQL - Μέρος Τρίτο 1 Βάσεις Δεδομένων

Διαβάστε περισσότερα

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

Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων Κεφάλαιο 10 Άλλες Πράξεις Θεωρίας Συνόλων Σύνοψη Στο παρόν κεφάλαιο θα παρουσιαστεί η πράξη της διαίρεσης. Στο κομμάτι των ασκήσεων θα γίνει συνολική επισκόπηση ερωτημάτων που εμπλέκουν πράξεις συνόλων.

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - SQL ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - SQL Διδάσκων του μαθήματος 2 Δρ. Λεωνίδας Φραγγίδης Επίκουρος Καθηγητής Τμήμα Διοίκησης Επιχειρήσεων ΤΕΙ ΑΜΘ Email: fragidis@teiemt.gr Ώρες Γραφείου: Τρίτη (10:00 12:00) Προτεινόμενα

Διαβάστε περισσότερα

Certified Data Base Designer (CDBD)

Certified Data Base Designer (CDBD) Certified Data Base Designer (CDBD) Εξεταστέα Ύλη (Syllabus) Πνευµατικά ικαιώµατα Το παρόν είναι πνευµατική ιδιοκτησία της ACTA Α.Ε. και προστατεύεται από την Ελληνική και Ευρωπαϊκή νοµοθεσία που αφορά

Διαβάστε περισσότερα

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) Ενότητα Advanced Βάσεις Δεδομένων, Προχωρημένο Επίπεδο. Copyright 2013 ECDL Foundation Ref: SL_AM3_Syl2.

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) Ενότητα Advanced Βάσεις Δεδομένων, Προχωρημένο Επίπεδο. Copyright 2013 ECDL Foundation Ref: SL_AM3_Syl2. ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) Ενότητα Advanced Βάσεις Δεδομένων, Προχωρημένο Επίπεδο Copyright 2013 ECDL Foundation Ref: SL_AM3_Syl2.0_v1 Page 17 of 29 Βάσεις Δεδομένων, Προχωρημένο Επίπεδο Ακολουθεί η Εξεταστέα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων Σύνθετα SQL queries Βάσεις Δεδομένων Σύνθετα SQL queries Παύλος Εφραιμίδης Βάσεις Δεδομένων SQL - Μέρος Δεύτερο 1 Ασάφεια και Πλήρη Ονόματα Ονόματα Πεδίων: Στην SQL, τα ονόματα των πεδίων (γνωρισμάτων) σε κάθε σχέση είναι

Διαβάστε περισσότερα

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

Τεχνολογία Πολιτισμικού Λογισμικού Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Τεχνολογία Πολιτισμικού Λογισμικού Ενότητα 12: SQL και πολιτισμικά δεδομένα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

Διαβάστε περισσότερα

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

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 2 ο Σύνολο Ασκήσεων Οι βαθμοί θα ανακοινωθούν αύριο μαζί με τους βαθμούς της προγραμματιστικής άσκησης Τα αστεράκια δείχνουν τον εκτιμώμενο βαθμό δυσκολίας (*) εύκολο (**) μέτριο (***) δύσκολο Βάσεις Δεδομένων

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (8 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (8 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα SQL (συνέχεια) Φωλιασμένες υπο-ερωτήσεις Δημιουργία όψεων Πράξεις ενημέρωσης και περιορισμοί 1/5/2014 Βάσεις Δεδομένων 2 Από το

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Περιεχόμενα. Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Πρόλογος... 33

Περιεχόμενα. Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων Πρόλογος... 33 Περιεχόμενα Πρόλογος... 33 Μέρος Ι Εισαγωγή στα συστήματα βάσεων δεδομένων... 39 1 Μια βόλτα στις βάσεις δεδομένων... 41 1.1 Η πρώτη βάση δεδομένων... 42 1.1.1 Άλλοι τρόποι... 42 1.1.2 Απαιτήσεις της εφαρμογής...

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής ΑΠΘ Βάσεις Δεδομένων Εργαστήριο ΙΙI Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 3 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: η μελέτη ερωτημάτων επιλογής, προβολής και απλών συνδέσεων σε δύο ή περισσότερες

Διαβάστε περισσότερα

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

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL Αντώνης Χρυσόπουλος Χριστίνα Αυδίκου Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL MySQL For Pros Διαλέχτε, καλέ κυρία, Διαλέχτε 1. Ταξινόμηση 2. Περιορισμοί 3. Τελεστές LIKE, IN, BETWEEN

Διαβάστε περισσότερα

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

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3 ΔΕΣΠΟΙΝΑ ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ dpap@unipi.gr 2 ΤΙ ΕΙΝΑΙ Η SQL? (1/2) Η SQL (Structured Query Language) αποτελεί μια πρότυπη

Διαβάστε περισσότερα

Ηλεκτρονικοί Υπολογιστές ΙI. Βάσεις Δεδομένων. Ακαδημαϊκό Έτος Εργαστήριο 5. Διαφάνεια 1. Κάπαρης Αναστάσιος

Ηλεκτρονικοί Υπολογιστές ΙI. Βάσεις Δεδομένων. Ακαδημαϊκό Έτος Εργαστήριο 5. Διαφάνεια 1. Κάπαρης Αναστάσιος Βάσεις Δεδομένων Εργαστήριο 5 Διαφάνεια 1 Τι είναι και πώς δουλεύουν τα ερωτήματα σε ένα πίνακα της Θα εξετάσουμε στη συνέχεια πώς λειτουργούν τα ερωτήματα σε ένα μόνο πίνακα. Από τη βάση lab5_hy_ii θα

Διαβάστε περισσότερα

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

Επεξεργασία Ερωτήσεων Εισαγωγή Σ Β Σύνολο από προγράμματα για τη διαχείριση της Β Επεξεργασία Ερωτήσεων Αρχεία ευρετηρίου Κατάλογος συστήματος Αρχεία δεδομένων ΒΑΣΗ Ε ΟΜΕΝΩΝ Σύστημα Βάσεων εδομένων (ΣΒ ) Βάσεις Δεδομένων 2007-2008

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ Διδάσκων του μαθήματος 2 Δρ. Λεωνίδας Φραγγίδης Τμήμα Διοίκησης Επιχειρήσεων ΤΕΙ ΑΜΘ Email: fragidis@teiemt.gr Ώρες Γραφείου: Τρίτη (10:00 12:00) Προτεινόμενα Βιβλία

Διαβάστε περισσότερα

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

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use Παράδειγμα Σχέσης attributes

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεφάλαιο 3. Ερωτήματα SQL Κεφάλαιο 3. Ερωτήματα SQL Σύνοψη Σ αυτό το κεφάλαιο θα παρουσιάσουμε βασικά και σύνθετα ερωτήματα της SQL. Τα ερωτήματα θα υποβληθούν στην βάση δεδομένων DVDclub που δημιουργήθηκε στο προηγούμενο κεφάλαιο.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (6 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (6 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr (Συνέχεια) ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ 3/4/2014 2 Περιεχόμενα Συνέχεια στη Σχεσιακή άλγεβρα Συνένωση Θήτα Ισότητας Φυσική Διαίρεση Σύνθετες λειτουργίες

Διαβάστε περισσότερα

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

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9; ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ 4.10 Επαναφέρετε πάλι το είδος 20 (όλο το στιγμιότυπο) στον πίνακα products με τις εντολές INSERT INTO. 4.11 Διαγράψτε το είδος 12 (όλο το στιγμιότυπο) στον πίνακα products και επαναφέρετε

Διαβάστε περισσότερα

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

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός

Διαβάστε περισσότερα