1 / 150

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

Download "1 / 150"

Transcript

1 Ερωτήματα SQL με σύζευξη πινάκων Αθανάσιος Σταυρακούδης Άνοιξη / 150

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

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

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

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

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

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

8 Το σχήμα της βάσης 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

27 Συσχέτιση 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

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

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

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

31 Καρτεσιανό γινόμενο Καρτεσιανό γινόμενο: Ο συνδυασμός των πινάκων departments και employees departments employees λέγεται καρτεσιανό γινόμενο, και περιλαμβάνει όλους τους συνδυασμούς των εγγραφών των πινάκων departments και employees. 31 / 150

32 Καρτεσιανό γινόμενο Καρτεσιανό γινόμενο: Ο συνδυασμός των πινάκων departments και employees departments employees λέγεται καρτεσιανό γινόμενο, και περιλαμβάνει όλους τους συνδυασμούς των εγγραφών των πινάκων departments και employees. Στο αποτέλεσμα περιλαμβάνονται όλα τα πεδία των πινάκων departments και employees. Οι εγγραφές του αποτελέσματος περιλαμβάνει όλους τους συνδυασμούς των εγγραφών των πινάκων departments και employees. 32 / 150

33 Καρτεσιανό γινόμενο departments employees departments employees Ολες οι δυνατές συνδέσεις ανάμεσα στα τμήματα και σε δείγμα 3 υπαλλήλων. Μόνο οι κόκκινη γραμμή αντιστοιχεί στην πραγματικότητα: (1, 109), (6, 102) (2,153). Τα καρτεσιανό γινόμενο απεικονίζει όλα τα πιθανά 33 / 150

34 Καρτεσιανό γινόμενο στην SQL Καρτεσιανό γινόμενο τμημάτων και υπαλλήλων departments employees 1 SELECT * 2 FROM departments, employees; Η σύνταξη στην SQL είναι απλή: γράφουμε τους πίνακες μετά τον όρο FROM και τους χωρίζουμε με κόμμα. Μπορούμε να γράψουμε περισσότερο από δύο πίνακες. Προσοχή! το αποτέλεσμα μπορεί να περιέχει μεγάλο όγκο εγγραφών, πχ δύο πίνακες με 6 και 30 εγγραφές αντίστοιχα δίνουν στο αποτέλεσμα 6 30 = 180 εγγραφές. 34 / 150

35 Καρτεσιανό γινόμενο στην SQL92, CROSS JOIN 35 / 150

36 Καρτεσιανό γινόμενο στην SQL92, CROSS JOIN Με χρήση του όρου CROSS JOIN 1 SELECT * 2 FROM departments CROSS JOIN employees; 36 / 150

37 Καρτεσιανό γινόμενο στην SQL92, CROSS JOIN Με χρήση του όρου CROSS JOIN 1 SELECT * 2 FROM departments CROSS JOIN employees; Η απλά JOIN 1 SELECT * 2 FROM departments JOIN employees; 37 / 150

38 Καρτεσιανό γινόμενο στην SQL92, CROSS JOIN Με χρήση του όρου CROSS JOIN 1 SELECT * 2 FROM departments CROSS JOIN employees; Η απλά JOIN 1 SELECT * 2 FROM departments JOIN employees; Οι δύο εκφράσεις είναι ισοδύναμες, θα επιστρέψουν το ίδιο αποτέλεσμα. Προτιμούμε τον πρώτο τρόπο CROSS JOIN, δηλώνει με πιο καθαρό τρόπο τη σύζευξη με βάση το καρτεσιανό γινόμενο. 38 / 150

39 Αποτέλεσμα καρτεσιανού γινομένου 1 SELECT * 2 FROM departments, employees; 3 4 depid depname manager empid firstname lastname depid salary hiredate Διοίκ./Επιβ Νικηφόρος Διαμαντίδης Οικον./Λογ Νικηφόρος Διαμαντίδης Επιστημ./Μηχ Νικηφόρος Διαμαντίδης Εξωτ. συνερ Νικηφόρος Διαμαντίδης Γραμματείας Νικηφόρος Διαμαντίδης Μάνατζ./Πωλ Νικηφόρος Διαμαντίδης Διοίκ./Επιβ Μαρία Αθανασίου Οικον./Λογ Μαρία Αθανασίου Επιστημ./Μηχ Μαρία Αθανασίου rows in set (0.00 sec) 39 / 150

40 Επιλογή πεδίων από πίνακες 1 SELECT departments.depid, depname, empid, lastname 2 FROM departments, employees; 3 4 depid depname empid lastname Διοίκ./Επιβ. 102 Διαμαντίδης 7 2 Οικον./Λογ. 153 Διαμαντίδης 8 3 Επιστημ./Μηχ. 431 Διαμαντίδης 9 4 Εξωτ. συνερ. 230 Διαμαντίδης 10 5 Γραμματείας 234 Διαμαντίδης 11 6 Μάνατζ./Πωλ. 189 Διαμαντίδης 12 1 Διοίκ./Επιβ. 109 Αθανασίου 13 2 Οικον./Λογ. 153 Αθανασίου 14 3 Επιστημ./Μηχ. 431 Αθανασίου rows in set (0.00 sec) 40 / 150

41 Επιλογή πεδίων από πίνακες 1 SELECT departments.depid, depname, empid, lastname 2 FROM departments, employees; Τι προσέχουμε: 1 Οποιοδήποτε όνομα πεδίου/στήλης υπάρχει στους πίνακες που ακολουθούν τον όρο FROM μπορούν να τοποθετηθούν μετά τον όρο SELECT. 2 Σε περίπτωση που το όνομα πεδίου είναι μοναδικό σε όλους τους πίνακες μπορούμε να το γράψουμε ως έχει, πχ depname ή lastname. 3 Αν το ίδιο όνομα πεδίου υπάρχει σε δύο διαφορετικούς πίνακες, τότε πρέπει να γραφεί με τη μορφή πίνακας.πεδίο. 41 / 150

42 Μετονομασία πινάκων Τι προσέχουμε: 1 SELECT d.depid, d.depname, e.empid, e.lastname 2 FROM departments d, employees e; 1 Η χρήση ψευδωνύμων είναι προαιρετική. 2 Βολεύει όταν το όνομα του πίνακα γράφεται πολλές φορές. 42 / 150

43 Μετονομασία πινάκων Τι προσέχουμε: 1 SELECT d.depid, d.depname, e.empid, e.lastname 2 FROM departments d, employees e; 1 Η χρήση ψευδωνύμων είναι προαιρετική. 2 Βολεύει όταν το όνομα του πίνακα γράφεται πολλές φορές. Ιδιοι κανόνες στην SQL92: 1 SELECT d.depid, d.depname, e.empid, e.lastname 2 FROM departments d CROSS JOIN employees e; 43 / 150

44 Καρτεσιανό γινόμενο υπαλλήλων και έργων 1 SELECT e.empid, p.proid 2 FROM employees e, projects p; 3 4 empid proid rows in set (0.00 sec) 44 / 150

45 Καρτεσιανού γινόμενο υπαλλήλων και έργων 1 SELECT e.empid, p.proid 2 FROM employees e, projects p; 45 / 150

46 Καρτεσιανού γινόμενο υπαλλήλων και έργων 1 SELECT e.empid, p.proid 2 FROM employees e, projects p; 1 Το αποτέλεσμα συνδέει όλους τους υπαλλήλους με όλα τα έργα. 46 / 150

47 Καρτεσιανού γινόμενο υπαλλήλων και έργων 1 SELECT e.empid, p.proid 2 FROM employees e, projects p; 1 Το αποτέλεσμα συνδέει όλους τους υπαλλήλους με όλα τα έργα. 2 Είναι πιθανό ένας υπάλληλος να απασχολείται σε όλα τα έργα, αλλά αυτό δεν συμβαίνει υποχρεωτικά για όλους τους υπαλλήλους. 47 / 150

48 Καρτεσιανού γινόμενο υπαλλήλων και έργων 1 SELECT e.empid, p.proid 2 FROM employees e, projects p; 1 Το αποτέλεσμα συνδέει όλους τους υπαλλήλους με όλα τα έργα. 2 Είναι πιθανό ένας υπάλληλος να απασχολείται σε όλα τα έργα, αλλά αυτό δεν συμβαίνει υποχρεωτικά για όλους τους υπαλλήλους. 3 Είναι πιθανό ένα έργο να απασχολεί όλους τους υπαλλήλους, αλλά αυτό δεν συμβαίνει υποχρεωτικά για όλα τα έργα. 48 / 150

49 Καρτεσιανού γινόμενο υπαλλήλων και έργων 1 SELECT e.empid, p.proid 2 FROM employees e, projects p; 1 Το αποτέλεσμα συνδέει όλους τους υπαλλήλους με όλα τα έργα. 2 Είναι πιθανό ένας υπάλληλος να απασχολείται σε όλα τα έργα, αλλά αυτό δεν συμβαίνει υποχρεωτικά για όλους τους υπαλλήλους. 3 Είναι πιθανό ένα έργο να απασχολεί όλους τους υπαλλήλους, αλλά αυτό δεν συμβαίνει υποχρεωτικά για όλα τα έργα. 4 Το καρτεσιανό γινόμενο μας δίνει όλα τα πιθανά ενδεχόμενα, δεν μας αποκαλύπτει το «τι συμβαίνει». 49 / 150

50 Σύζευξη θήτα στην SQL Σύζευξη τμημάτων και υπαλλήλων departments departments.depid=employees.depid employees 1 SELECT * 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; 50 / 150

51 Σύζευξη θήτα στην SQL Σύζευξη τμημάτων και υπαλλήλων departments departments.depid=employees.depid employees 1 SELECT * 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; 51 / 150

52 Σύζευξη θήτα στην SQL Σύζευξη τμημάτων και υπαλλήλων departments departments.depid=employees.depid employees 1 SELECT * 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; 1 Προσέξτε τη γραφή πίνακας.πεδίο. 52 / 150

53 Σύζευξη θήτα στην SQL Σύζευξη τμημάτων και υπαλλήλων departments departments.depid=employees.depid employees 1 SELECT * 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; 1 Προσέξτε τη γραφή πίνακας.πεδίο. 2 Στη φράση WHERE μπορούν να προστεθούν επιπλέον περιορισμοί με λογική σύζευξη (AND). 53 / 150

54 Σύζευξη θήτα στην SQL Σύζευξη τμημάτων και υπαλλήλων departments departments.depid=employees.depid employees 1 SELECT * 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; 1 Προσέξτε τη γραφή πίνακας.πεδίο. 2 Στη φράση WHERE μπορούν να προστεθούν επιπλέον περιορισμοί με λογική σύζευξη (AND). 3 Η θήτα σύζευξη είναι δυνατό να πραγματοποιηθεί και με πεδία που δεν έχουν το ίδιο όνομα. 54 / 150

55 Σύζευξη θήτα στην SQL Σύζευξη τμημάτων και υπαλλήλων departments departments.depid=employees.depid employees 1 SELECT * 2 FROM departments, employees 3 WHERE departments.depid = employees.depid; 1 Προσέξτε τη γραφή πίνακας.πεδίο. 2 Στη φράση WHERE μπορούν να προστεθούν επιπλέον περιορισμοί με λογική σύζευξη (AND). 3 Η θήτα σύζευξη είναι δυνατό να πραγματοποιηθεί και με πεδία που δεν έχουν το ίδιο όνομα. 4 Στο αποτέλεσμα εμφανίζονται μόνο οι εγγραφές για τις οποίες η συνθήκη είναι TRUE. 55 / 150

56 θ σύζευξη, επιπλέον παράδειγμα Τμήματα με υπαλλήλους με μισθό πάνω από SELECT DISTINCT d.depname 2 FROM departments d, employees e 3 WHERE d.depid = e.depid 4 AND e.salary > 1500; 56 / 150

57 θ σύζευξη, επιπλέον παράδειγμα Τμήματα με υπαλλήλους με μισθό πάνω από SELECT DISTINCT d.depname 2 FROM departments d, employees e 3 WHERE d.depid = e.depid 4 AND e.salary > 1500; 57 / 150

58 θ σύζευξη, επιπλέον παράδειγμα Τμήματα με υπαλλήλους με μισθό πάνω από SELECT DISTINCT d.depname 2 FROM departments d, employees e 3 WHERE d.depid = e.depid 4 AND e.salary > 1500; 1 Περιορισμός εγγραφών της θ σύζευξης με βάση μια παράσταση σύγκρισης. 58 / 150

59 θ σύζευξη, επιπλέον παράδειγμα Τμήματα με υπαλλήλους με μισθό πάνω από SELECT DISTINCT d.depname 2 FROM departments d, employees e 3 WHERE d.depid = e.depid 4 AND e.salary > 1500; 1 Περιορισμός εγγραφών της θ σύζευξης με βάση μια παράσταση σύγκρισης. 2 Στο αποτέλεσμα εμφανίζονται μόνο οι εγγραφές για τις οποίες όλες οι είναι TRUE. 59 / 150

60 θ σύζευξη, επιπλέον παράδειγμα Τμήματα με υπαλλήλους με μισθό πάνω από SELECT DISTINCT d.depname 2 FROM departments d, employees e 3 WHERE d.depid = e.depid 4 AND e.salary > 1500; 1 Περιορισμός εγγραφών της θ σύζευξης με βάση μια παράσταση σύγκρισης. 2 Στο αποτέλεσμα εμφανίζονται μόνο οι εγγραφές για τις οποίες όλες οι είναι TRUE. 3 Η θ σύζευξη δεν έχει νόημα να ακολουθείται από λογική διάζευξη OR. 60 / 150

61 θ σύζευξη στην SQL 1:1 Να βρεθούν τα ονοματεπώνυμα των υπαλλήλων που είναι διευθυντές τμημάτων 1 SELECT firstname, lastname 2 FROM departments, employees 3 WHERE departments.manager = employees.empid; 61 / 150

62 θ σύζευξη στην SQL 1:1 Να βρεθούν τα ονοματεπώνυμα των υπαλλήλων που είναι διευθυντές τμημάτων 1 SELECT firstname, lastname 2 FROM departments, employees 3 WHERE departments.manager = employees.empid; Να βρεθεί το ονοματεπώνυμο του υπαλλήλου που διευθύνει το τμήμα 2 1 SELECT firstname, lastname 2 FROM departments, employees 3 WHERE departments.manager = employees.empid 4 AND departments.depid = 2; 62 / 150

63 θ σύζευξη στην SQL Ν:Ν Να βρεθεί ο τίτλος των έργων και τα ονοματεπώνυμα των υπαλλήλων που συμμετέχουν σε αυτά. 1 SELECT title, firstname, lastname 2 FROM employees, workson, projects 3 WHERE employees.empid = workson.empid 4 AND workson.proid = projects.proid; 63 / 150

64 θ σύζευξη στην SQL Ν:Ν Να βρεθεί ο τίτλος των έργων και τα ονοματεπώνυμα των υπαλλήλων που συμμετέχουν σε αυτά. 1 SELECT title, firstname, lastname 2 FROM employees, workson, projects 3 WHERE employees.empid = workson.empid 4 AND workson.proid = projects.proid; Να βρεθεί ο τίτλος των έργων και τα ονοματεπώνυμα των υπαλλήλων που συμμετέχουν σε αυτά. 1 SELECT title, firstname, lastname 2 FROM employees, projects 3 WHERE employees.empid = workson.empid 4 AND workson.proid = projects.proid; 64 / 150

65 θ ανισοσύζευξη στην SQL Να βρεθούν τα ονοματεπώνυμα των υπαλλήλων που προσλήφθηκαν μετά την έναρξη του έργου με κωδικό SELECT firstname, lastname 2 FROM employees, workson, projects 3 WHERE employees.empid = workson.empid 4 AND workson.proid = projects.proid 5 AND employees.hiredate > projects.startdate 6 AND projects.proid = 21; 65 / 150

66 θ ανισοσύζευξη στην SQL Να βρεθούν τα ονοματεπώνυμα των υπαλλήλων που προσλήφθηκαν μετά την έναρξη του έργου με κωδικό SELECT firstname, lastname 2 FROM employees, workson, projects 3 WHERE employees.empid = workson.empid 4 AND workson.proid = projects.proid 5 AND employees.hiredate > projects.startdate 6 AND projects.proid = 21; Να βρεθούν τα ονοματεπώνυμα των υπαλλήλων που προσλήφθηκαν μετά την έναρξη του έργου με κωδικό SELECT firstname, lastname 2 FROM employees, projects 3 WHERE employees.hiredate > projects.startdate 4 AND projects.proid = 21; 66 / 150

67 Μετονομασία πινάκων Με χρήση του AS 1 FROM employees AS e Χωρίς χρήση του AS 1 FROM employees e 67 / 150

68 Μετονομασία πινάκων Με χρήση του AS 1 FROM employees AS e Χωρίς χρήση του AS 1 FROM employees e Στη σύζευξη 1 FROM departments d, employees e 68 / 150

69 Μετονομασία πινάκων Με χρήση του AS 1 FROM employees AS e Χωρίς χρήση του AS 1 FROM employees e Στη σύζευξη 1 FROM departments d, employees e Στο ερώτημα 1 SELECT e.firstname, e.lastname 2 FROM employees e, projects p 3 WHERE e.hiredate > p.startdate 4 AND p.proid = 21; 69 / 150

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

71 Φυσική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων departments employees 1 SELECT * 2 FROM departments NATURAL JOIN employees; 71 / 150

72 Φυσική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων departments employees 1 SELECT * 2 FROM departments NATURAL JOIN employees; 72 / 150

73 Φυσική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων 1 SELECT * departments employees 2 FROM departments NATURAL JOIN employees; 1 Απαιτείται η ύπαρξη ενός τουλάχιστον κοινού πεδίου, εδώ το πεδίο depid. 73 / 150

74 Φυσική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων 1 SELECT * departments employees 2 FROM departments NATURAL JOIN employees; 1 Απαιτείται η ύπαρξη ενός τουλάχιστον κοινού πεδίου, εδώ το πεδίο depid. 2 Μόνο οι εγγραφές όπου οι τιμές του κοινού πεδίου ταυτίζονται υπάρχουν στο αποτέλεσμα του ερωτήματος. 74 / 150

75 Φυσική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων 1 SELECT * departments employees 2 FROM departments NATURAL JOIN employees; 1 Απαιτείται η ύπαρξη ενός τουλάχιστον κοινού πεδίου, εδώ το πεδίο depid. 2 Μόνο οι εγγραφές όπου οι τιμές του κοινού πεδίου ταυτίζονται υπάρχουν στο αποτέλεσμα του ερωτήματος. 3 Το κοινό γνώρισμα υπάρχει μόνο μία φορά στο αποτέλεσμα. 75 / 150

76 Αποτέλεσμα φυσικής σύζευξης 1 SELECT * 2 FROM departments NATURAL JOIN employees; 3 4 depid depname manager empid firstname lastname salary hiredat Διοίκ./Επιβ Μαρία Αθανασίου Διοίκ./Επιβ Κρινιώ Μαροπούλου Διοίκ./Επιβ Κυριάκος Ρούσσης Οικον./Λογ Μαρία Αλεβιζάτου Οικον./Λογ Δέσποινα Παπαδοπούλου rows in set (0.00 sec) 76 / 150

77 Προβολή και φυσική σύζευξη στην SQL Να βρεθεί ο κωδικός και το επώνυμο των υπαλλήλων, καθώς και το όνομα του τμήματος στο οποίο απασχολούνται 77 / 150

78 Προβολή και φυσική σύζευξη στην SQL Να βρεθεί ο κωδικός και το επώνυμο των υπαλλήλων, καθώς και το όνομα του τμήματος στο οποίο απασχολούνται Π empid,lastname,depname (departments employees) 78 / 150

79 Προβολή και φυσική σύζευξη στην SQL Να βρεθεί ο κωδικός και το επώνυμο των υπαλλήλων, καθώς και το όνομα του τμήματος στο οποίο απασχολούνται Π empid,lastname,depname (departments employees) 1 SELECT empid, lastname, depname 2 FROM departments NATURAL JOIN employees; 79 / 150

80 Φυσική σύζευξη τριών πινάκων στην SQL Να βρεθεί το ονοματεπώνυμο των υπαλλήλων, ο κωδικός και ο τίτλος του έργου που απασχολούνται 80 / 150

81 Φυσική σύζευξη τριών πινάκων στην SQL Να βρεθεί το ονοματεπώνυμο των υπαλλήλων, ο κωδικός και ο τίτλος του έργου που απασχολούνται Π firstname,lastname,proid,title (employees workson projects) 81 / 150

82 Φυσική σύζευξη τριών πινάκων στην SQL Να βρεθεί το ονοματεπώνυμο των υπαλλήλων, ο κωδικός και ο τίτλος του έργου που απασχολούνται Π firstname,lastname,proid,title (employees workson projects) 1 SELECT firstname, lastname, proid, title 2 FROM employees NATURAL JOIN workson 3 NATURAL JOIN projects; 82 / 150

83 Φυσική σύζευξη ή καρτεσιανό γινόμενο; departments projects = departments projects Π depid,proid (employees projects) 1 SELECT depid, proid 2 FROM departments NATURAL JOIN projects; 83 / 150

84 Φυσική σύζευξη ή καρτεσιανό γινόμενο; departments projects = departments projects Π depid,proid (employees projects) 1 SELECT depid, proid 2 FROM departments NATURAL JOIN projects; depid proid Το αποτέλεσμα είναι ίδιο με αυτό του φυσικού γινομένου. 2 Αν δεν υπάρχει κοινό πεδίο στους πίνακες της φυσικής σύζευξης τότε φυσική σύζευξη και καρτεσιανό γινόμενο θα δώσουν το ίδιο αποτέλεσμα. 84 / 150

85 Περιορισμός εγγραφών στη φυσική σύζευξη Να βρεθεί ο κωδικός και το επώνυμο των υπαλλήλων που απασχολούνται στο έργο με κωδικό 5 Π empid,lastname (σ proid=5 (employees workson)) 85 / 150

86 Περιορισμός εγγραφών στη φυσική σύζευξη Να βρεθεί ο κωδικός και το επώνυμο των υπαλλήλων που απασχολούνται στο έργο με κωδικό 5 Π empid,lastname (σ proid=5 (employees workson)) 1 SELECT empid, lastname 2 FROM employees NATURAL JOIN workson 3 WHERE proid = 5; 86 / 150

87 Περιορισμός εγγραφών στη φυσική σύζευξη Να βρεθεί ο κωδικός και το επώνυμο των υπαλλήλων που απασχολούνται στο έργο με κωδικό 5 Π empid,lastname (σ proid=5 (employees workson)) 1 SELECT empid, lastname 2 FROM employees NATURAL JOIN workson 3 WHERE proid = 5; Να βρεθεί ο κωδικός και το επώνυμο των υπαλλήλων που απασχολούνται στο έργο με κωδικό 5 Π empid,lastname (σ proid=5 (employees)) 87 / 150

88 Περιορισμός εγγραφών στη φυσική σύζευξη Να βρεθεί ο κωδικός και το επώνυμο των υπαλλήλων που απασχολούνται στο έργο με κωδικό 5 Π empid,lastname (σ proid=5 (employees workson)) 1 SELECT empid, lastname 2 FROM employees NATURAL JOIN workson 3 WHERE proid = 5; Να βρεθεί ο κωδικός και το επώνυμο των υπαλλήλων που απασχολούνται στο έργο με κωδικό 5 1 SELECT empid, lastname 2 FROM employees 3 WHERE proid = 5; Π empid,lastname (σ proid=5 (employees)) 88 / 150

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

90 Εσωτερική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων 1 SELECT * 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; 90 / 150

91 Εσωτερική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων 1 SELECT * 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; 91 / 150

92 Εσωτερική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων 1 SELECT * 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; 1 Οι δύο πίνακες ενώνονται με τον όρο INNER JOIN. 92 / 150

93 Εσωτερική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων 1 SELECT * 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; 1 Οι δύο πίνακες ενώνονται με τον όρο INNER JOIN. 2 Αντί για WHERE υπάρχει (υποχρεωτικά) μετά το INNER JOIN η φράση ON. 93 / 150

94 Εσωτερική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων 1 SELECT * 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; 1 Οι δύο πίνακες ενώνονται με τον όρο INNER JOIN. 2 Αντί για WHERE υπάρχει (υποχρεωτικά) μετά το INNER JOIN η φράση ON. 3 Το πεδίο σύζευξης (εδώ το depid) υπάρχει δύο φορές στο αποτέλεσμα. 94 / 150

95 Εσωτερική σύζευξη στην SQL Σύζευξη τμημάτων και υπαλλήλων 1 SELECT * 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; 1 Οι δύο πίνακες ενώνονται με τον όρο INNER JOIN. 2 Αντί για WHERE υπάρχει (υποχρεωτικά) μετά το INNER JOIN η φράση ON. 3 Το πεδίο σύζευξης (εδώ το depid) υπάρχει δύο φορές στο αποτέλεσμα. 4 Το πεδίο σύζευξης μπορεί να έχει διαφορετικό όνομα στους δύο πίνακες. 95 / 150

96 Ισοδυναμία εσωτερικής και θ σύζευξης στην SQL Σύζευξη τμημάτων και υπαλλήλων με εσωτερική σύζευξη 1 SELECT * 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid; Σύζευξη τμημάτων και υπαλλήλων με θ σύζευξη 1 SELECT * 2 FROM departments JOIN employees 3 WHERE departments.depid = employees.depid; 96 / 150

97 Οχι στις υπερβολές Σύζευξη τμημάτων και υπαλλήλων με εσωτερική και θ σύζευξη 1 SELECT * 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid 4 WHERE departments.depid = employees.depid; 97 / 150

98 Οχι στις υπερβολές Σύζευξη τμημάτων και υπαλλήλων με εσωτερική και θ σύζευξη 1 SELECT * 2 FROM departments INNER JOIN employees 3 ON departments.depid = employees.depid 4 WHERE departments.depid = employees.depid; 1 Περιττό. 2 Δεν είναι συντακτικά λάθος, είναι όμως εννοιολογικά μπερδεμένο. 3 Μία φορά αρκεί, η πολυλογία φέρνει λάθη. 4 Δυσκολία συντήρησης του κώδικα. 98 / 150

99 Μετονομασία πινάκων Με χρήση του AS 1 FROM employees AS e Χωρίς χρήση του AS 1 FROM employees e 99 / 150

100 Μετονομασία πινάκων Με χρήση του AS 1 FROM employees AS e Χωρίς χρήση του AS 1 FROM employees e Στη σύζευξη 1 FROM departments d INNER JOIN employees e 100 / 150

101 Μετονομασία πινάκων Με χρήση του AS 1 FROM employees AS e Χωρίς χρήση του AS 1 FROM employees e Στη σύζευξη 1 FROM departments d INNER JOIN employees e Στο ερώτημα 1 SELECT * 2 FROM departments d INNER JOIN employees e; 101 / 150

102 Παράδειγμα INNER JOIN 1 Να δοθεί το επώνυμο των υπαλλήλων και το όνομα του τμήματος στο οποίο εργάζονται Π firstname,lastname,depname (departments departments.depid=employees.depid employees) 102 / 150

103 Παράδειγμα INNER JOIN 1 Να δοθεί το επώνυμο των υπαλλήλων και το όνομα του τμήματος στο οποίο εργάζονται Π firstname,lastname,depname (departments departments.depid=employees.depid employees) 1 SELECT employees.lastname, departments.depname 2 FROM departments INNER JOIN employees 3 ON employees.depid = departments.depid; 103 / 150

104 Παράδειγμα INNER JOIN 1 Να δοθεί το επώνυμο των υπαλλήλων και το όνομα του τμήματος στο οποίο εργάζονται Π firstname,lastname,depname (departments departments.depid=employees.depid employees) 1 SELECT employees.lastname, departments.depname 2 FROM departments INNER JOIN employees 3 ON employees.depid = departments.depid; Η σύζευξη γίνεται με βάση το κοινό του πεδίο depid. Η σύζευξη με βάση πρωτεύον και ξένο κλειδί είναι η πλέον συνηθισμένη περίπτωση σύζευξης. 104 / 150

105 Παράδειγμα INNER JOIN 2 Να δοθεί το όνομα των υπαλλήλων, το όνομα του τμήματος στο οποίο εργάζονται, και ο μισθός τους Π firstname,lastname,depname,salary (ϱ d (departments) d.depid=e.depid ϱ e (employees)) 105 / 150

106 Παράδειγμα INNER JOIN 2 Να δοθεί το όνομα των υπαλλήλων, το όνομα του τμήματος στο οποίο εργάζονται, και ο μισθός τους Π firstname,lastname,depname,salary (ϱ d (departments) d.depid=e.depid ϱ e (employees)) 1 SELECT e.firstname, e.lastname, d.depname, e.salary 2 FROM employees e INNER JOIN departments d 3 ON e.depid = d.depid; 106 / 150

107 Παράδειγμα INNER JOIN 2 Να δοθεί το όνομα των υπαλλήλων, το όνομα του τμήματος στο οποίο εργάζονται, και ο μισθός τους Π firstname,lastname,depname,salary (ϱ d (departments) d.depid=e.depid ϱ e (employees)) 1 SELECT e.firstname, e.lastname, d.depname, e.salary 2 FROM employees e INNER JOIN departments d 3 ON e.depid = d.depid; firstname lastname depname salary Μαρία Αθανασίου Διοίκησης/Επίβλεψης Κρινιώ Μαροπούλου Διοίκησης/Επίβλεψης Κυριάκος Ρούσσης Διοίκησης/Επίβλεψης Μαρία Αλεβιζάτου Οικονομολόγων/Λογιστών Δέσποινα Παπαδοπούλου Οικονομολόγων/Λογιστών Πέτρος Αρβανιτάκης Οικονομολόγων/Λογιστών / 150

108 Παράδειγμα INNER JOIN 3 Να δοθεί το όνομα των υπαλλήλων, το όνομα του τμήματος στο οποίο εργάζονται και ο μισθός τους, για υπαλλήλους με μισθό μεταξύ 1050 και 1300 Π firstname,lastname,depname,salary (σ salary 1050 salary 1300 (ϱ d (departments) d.depid=e.depid ϱ e (employees))) 108 / 150

109 Παράδειγμα INNER JOIN 3 Να δοθεί το όνομα των υπαλλήλων, το όνομα του τμήματος στο οποίο εργάζονται και ο μισθός τους, για υπαλλήλους με μισθό μεταξύ 1050 και 1300 Π firstname,lastname,depname,salary (σ salary 1050 salary 1300 (ϱ d (departments) d.depid=e.depid ϱ e (employees))) 1 SELECT e.firstname, e.lastname, d.depname, e.salary 2 FROM employees e INNER JOIN departments d 3 ON e.depid = d.depid 4 WHERE e.salary BETWEEN 1050 AND 1300; 109 / 150

110 Παράδειγμα INNER JOIN 3 Να δοθεί το όνομα των υπαλλήλων, το όνομα του τμήματος στο οποίο εργάζονται και ο μισθός τους, για υπαλλήλους με μισθό μεταξύ 1050 και 1300 Π firstname,lastname,depname,salary (σ salary 1050 salary 1300 (ϱ d (departments) d.depid=e.depid ϱ e (employees))) 1 SELECT e.firstname, e.lastname, d.depname, e.salary 2 FROM employees e INNER JOIN departments d 3 ON e.depid = d.depid 4 WHERE e.salary BETWEEN 1050 AND 1300; Ο όρος WHERE μπορεί να χρησιμοποιηθεί για περιορισμό των εγγραφών. Η παράσταση συνθήκης μπορεί να αφορά οποιοδήποτε πεδίο από αυτά που υπάρχουν στους δύο πίνακες. 110 / 150

111 Παράδειγμα INNER JOIN 4 Κωδικός και όνομα όλων των υπαλλήλων του έργο με κωδικό 38, με αύξουσα ταξινόμηση ως προς το επώνυμο Π empid,firstname,lastname (σ proid=38 (ϱ e (employees) e.empid=w.empid ϱ w (workso 111 / 150

112 Παράδειγμα INNER JOIN 4 Κωδικός και όνομα όλων των υπαλλήλων του έργο με κωδικό 38, με αύξουσα ταξινόμηση ως προς το επώνυμο Π empid,firstname,lastname (σ proid=38 (ϱ e (employees) e.empid=w.empid ϱ w (workso 1 SELECT e.empid, e.firstname, e.lastname 2 FROM employees e INNER JOIN workson w 3 ON e.empid = w.empid 4 WHERE w.proid = 38 5 ORDER BY e.lastname ASC; 112 / 150

113 Παράδειγμα INNER JOIN 4 Κωδικός και όνομα όλων των υπαλλήλων του έργο με κωδικό 38, με αύξουσα ταξινόμηση ως προς το επώνυμο Π empid,firstname,lastname (σ proid=38 (ϱ e (employees) e.empid=w.empid ϱ w (workso 1 SELECT e.empid, e.firstname, e.lastname 2 FROM employees e INNER JOIN workson w 3 ON e.empid = w.empid 4 WHERE w.proid = 38 5 ORDER BY e.lastname ASC; Ο όρος ORDER BY πάντα στο τέλος. Προσέξτε πως χρειάζεται σύζευξη ακόμα και αν όλα τα πεδία που εμφανίζονται μετά τον όρο SELECT βρίσκονται σε ένα πίνακα. 113 / 150

114 Πολλά προς πολλά Να βρεθούν τα ονόματα των υπαλλήλων και ο κωδικός και ο προϋπολογισμός των έργων στα οποία συμμετέχουν υπάλληλοι με μισθό μεγαλύτερο από 1700 Π firstname,lastname,proid,budget (σ salary>1700 (ϱ e (employees) d.depid=e.depid ϱ w (workson) w.proid=p.proid ϱ p (projects) 114 / 150

115 Πολλά προς πολλά Να βρεθούν τα ονόματα των υπαλλήλων και ο κωδικός και ο προϋπολογισμός των έργων στα οποία συμμετέχουν υπάλληλοι με μισθό μεγαλύτερο από 1700 Π firstname,lastname,proid,budget (σ salary>1700 (ϱ e (employees) d.depid=e.depid ϱ w (workson) w.proid=p.proid ϱ p (projects) 1 SELECT e.firstname, e.lastname, p.proid, p.budget 2 FROM (employees e INNER JOIN workson w 3 ON e.empid = w.empid) 4 INNER JOIN projects p 5 ON p.proid = w.proid 6 WHERE e.salary > 1700; 115 / 150

116 Πολλά προς πολλά Εναλλακτικός τρόπος Να βρεθούν τα ονόματα των υπαλλήλων και ο κωδικός και ο προϋπολογισμός των έργων στα οποία συμμετέχουν υπάλληλοι με μισθό μεγαλύτερο του 1700 Π firstname,lastname,proid,budget (σ e.empid=w.empid p.proid=w.proid e.salary>1700 (ϱ e (employees) ϱ w (workson) ϱ p (projects))) 1 SELECT e.firstname, e.lastname, p.proid, p.budget 2 FROM employees e, workson w, projects p 3 WHERE e.empid = w.empid 4 AND p.proid = w.proid 5 AND e.salary > 1700; 116 / 150

117 Ερώτημα με 4 πίνακες Να βρεθεί το όνομα των υπαλλήλων και του τμήματος των υπαλλήλων για όλους τους υπαλλήλους που προσλήφθηκαν μετά από την 1/1/2002 και απασχολούνται σε έργα με βαθμό προόδου τουλάχιστον 20% Π firstname,lastname,depname (σ hiredate> budget> (ϱ d (departments) d.depid=e.depid ϱ e (employees) e.empid=w.empid ϱ w (workson) w.proid=p.proid ϱ p (projects)) 117 / 150

118 Ερώτημα με 4 πίνακες Να βρεθεί το όνομα των υπαλλήλων και του τμήματος των υπαλλήλων για όλους τους υπαλλήλους που προσλήφθηκαν μετά από την 1/1/2002 και απασχολούνται σε έργα με βαθμό προόδου τουλάχιστον 20% Π firstname,lastname,depname (σ hiredate> budget> (ϱ d (departments) d.depid=e.depid ϱ e (employees) e.empid=w.empid ϱ w (workson) w.proid=p.proid ϱ p (projects)) 1 SELECT DISTINCT e.firstname, e.lastname, d.depname 2 FROM ((departments d INNER JOIN employees e 3 ON d.depid = e.depid) 4 INNER JOIN workson w 5 ON e.empid = w.empid) 6 INNER JOIN projects p 7 ON p.proid = w.proid 8 WHERE e.hiredate > / 150

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

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

121 Παράδειγμα εξωτερικής σύζευξης το πρόβλημα Να βρεθούν τα ονόματα των υπαλλήλων του τμήματος 4 και οι κωδικοί των έργων που συμμετέχουν Π e.firstname,e.lastname,w.proid (σ e.depid=4 (ϱ e (employees) d.depid=e.depid ϱ w (workson))) 121 / 150

122 Παράδειγμα εξωτερικής σύζευξης το πρόβλημα Να βρεθούν τα ονόματα των υπαλλήλων του τμήματος 4 και οι κωδικοί των έργων που συμμετέχουν Π e.firstname,e.lastname,w.proid (σ e.depid=4 (ϱ e (employees) d.depid=e.depid ϱ w (workson))) 1 SELECT e.firstname, e.lastname, w.proid 2 FROM employees e INNER JOIN workson w 3 ON e.empid = w.empid 4 WHERE e.depid = 4; 122 / 150

123 Παράδειγμα εξωτερικής σύζευξης το πρόβλημα Να βρεθούν τα ονόματα των υπαλλήλων του τμήματος 4 και οι κωδικοί των έργων που συμμετέχουν Π e.firstname,e.lastname,w.proid (σ e.depid=4 (ϱ e (employees) d.depid=e.depid ϱ w (workson))) 1 SELECT e.firstname, e.lastname, w.proid 2 FROM employees e INNER JOIN workson w 3 ON e.empid = w.empid 4 WHERE e.depid = 4; firstname lastname proid Νίκος Βλάχος 12 Βαγγέλης Χριστόπουλος 12 Βαγγέλης Χριστόπουλος 14 Βαγγέλης Χριστόπουλος 38 Παύλος Περίδης 43 Τι γίνεται με τους υπαλλήλους του τμήματος 4 που δεν απασχολούνται σε κανένα έργο; 123 / 150

124 Παράδειγμα εξωτερικής σύζευξης Η λύση Υπάλληλοι του τμήματος 4 και οι κωδικοί των έργων Π e.firstname,e.lastname,w.proid (σ e.depid=4 (ϱ e (employees) e.empid=w.empid ϱ w (workson))) 124 / 150

125 Παράδειγμα εξωτερικής σύζευξης Η λύση Υπάλληλοι του τμήματος 4 και οι κωδικοί των έργων Π e.firstname,e.lastname,w.proid (σ e.depid=4 (ϱ e (employees) e.empid=w.empid ϱ w (workson))) 1 SELECT e.firstname, e.lastname, w.proid 2 FROM employees e LEFT JOIN workson w 3 ON e.empid = w.empid 4 WHERE e.depid = 4; 125 / 150

126 Παράδειγμα εξωτερικής σύζευξης Η λύση Υπάλληλοι του τμήματος 4 και οι κωδικοί των έργων Π e.firstname,e.lastname,w.proid (σ e.depid=4 (ϱ e (employees) e.empid=w.empid ϱ w (workson))) 1 SELECT e.firstname, e.lastname, w.proid 2 FROM employees e LEFT JOIN workson w 3 ON e.empid = w.empid 4 WHERE e.depid = 4; firstname lastname proid Νίκος Βλάχος 12 Βαγγέλης Χριστόπουλος 12 Βαγγέλης Χριστόπουλος 14 Βαγγέλης Χριστόπουλος 38 Νίκος Στεργιόπουλος NULL Παύλος Περίδης 43 Ευθαλεία Μικράκη NULL Η στήλη proid συμπληρώνεται με NULL για τους υπαλλήλους που δεν απασχολούνται σε κανένα έργο. 126 / 150

127 Αριστερή και δεξιά σύζευξη Ισοδυναμία Αριστερή σύζευξη Π e.firstname,e.lastname,w.proid (σ e.depid=4 (ϱ e (employees) e.empid=w.empid ϱ w (workson))) 1 SELECT e.firstname, e.lastname, w.proid 2 FROM employees e LEFT JOIN workson w 3 ON e.empid = w.empid 4 WHERE e.depid = 4; Δεξιά σύζευξη Π e.firstname,e.lastname,w.proid (σ e.depid=4 (ϱ w (workson) w.empid=e.empid ϱ e (employees))) 1 SELECT e.firstname, e.lastname, w.proid 2 FROM workson w RIGHT JOIN employees e 3 ON w.empid = e.empid 4 WHERE e.depid = 4; 127 / 150

128 Αριστερή και δεξιά σύζευξη 128 / 150

129 Αριστερή και δεξιά σύζευξη 1 Οι δύο προτάσεις SQL είναι απολύτως ισοδύναμες και δίνουν το ίδιο αποτέλεσμα. 129 / 150

130 Αριστερή και δεξιά σύζευξη 1 Οι δύο προτάσεις SQL είναι απολύτως ισοδύναμες και δίνουν το ίδιο αποτέλεσμα. 2 Κατά παράδοση, προτιμάται η αριστερή σύζευξη. 130 / 150

131 Αριστερή και δεξιά σύζευξη 1 Οι δύο προτάσεις SQL είναι απολύτως ισοδύναμες και δίνουν το ίδιο αποτέλεσμα. 2 Κατά παράδοση, προτιμάται η αριστερή σύζευξη. 3 Οι εξωτερικές συζεύξεις χρησιμοποιούνται όταν θέλουμε στο αποτέλεσμα όλες τις εγγραφές ενός πίνακα, ανεξάρτητα αν αυτές έχουν σύνδεση με τον άλλο πίνακα που υπάρχει στη σύζευξη. 131 / 150

132 Αριστερή και δεξιά σύζευξη 1 Οι δύο προτάσεις SQL είναι απολύτως ισοδύναμες και δίνουν το ίδιο αποτέλεσμα. 2 Κατά παράδοση, προτιμάται η αριστερή σύζευξη. 3 Οι εξωτερικές συζεύξεις χρησιμοποιούνται όταν θέλουμε στο αποτέλεσμα όλες τις εγγραφές ενός πίνακα, ανεξάρτητα αν αυτές έχουν σύνδεση με τον άλλο πίνακα που υπάρχει στη σύζευξη. 4 Κατά την εξωτερική σύζευξη, αν υπάρχουν μη συνδεδεμένες εγγραφές, δημιουργούνται τιμές NULL. 132 / 150

133 Αριστερή και δεξιά σύζευξη 1 Οι δύο προτάσεις SQL είναι απολύτως ισοδύναμες και δίνουν το ίδιο αποτέλεσμα. 2 Κατά παράδοση, προτιμάται η αριστερή σύζευξη. 3 Οι εξωτερικές συζεύξεις χρησιμοποιούνται όταν θέλουμε στο αποτέλεσμα όλες τις εγγραφές ενός πίνακα, ανεξάρτητα αν αυτές έχουν σύνδεση με τον άλλο πίνακα που υπάρχει στη σύζευξη. 4 Κατά την εξωτερική σύζευξη, αν υπάρχουν μη συνδεδεμένες εγγραφές, δημιουργούνται τιμές NULL. 5 Ο έλεγχος (WHERE) για τιμές NULL είναι πολύ συχνός στις εξωτερικές συνδέσεις. 133 / 150

134 Εξωτερική σύζευξη και έλεγχος NULL Ποιοι υπάλληλοι δεν απασχολούνται σε κανένα έργο; 134 / 150

135 Εξωτερική σύζευξη και έλεγχος NULL Ποιοι υπάλληλοι δεν απασχολούνται σε κανένα έργο; Π e. (σ w.empid IS NULL (ϱ e (employees) e.empid=w.empid ϱ w (workson))) 135 / 150

136 Εξωτερική σύζευξη και έλεγχος NULL Ποιοι υπάλληλοι δεν απασχολούνται σε κανένα έργο; 1 SELECT e.* Π e. (σ w.empid IS NULL (ϱ e (employees) e.empid=w.empid ϱ w (workson))) 2 FROM employees e LEFT JOIN workson w 3 ON e.empid = w.empid 4 WHERE w.empid IS NULL; 136 / 150

137 Εξωτερική σύζευξη και έλεγχος NULL Ποιοι υπάλληλοι δεν απασχολούνται σε κανένα έργο; 1 SELECT e.* Π e. (σ w.empid IS NULL (ϱ e (employees) e.empid=w.empid ϱ w (workson))) 2 FROM employees e LEFT JOIN workson w 3 ON e.empid = w.empid 4 WHERE w.empid IS NULL; 1 Το ερώτημα δε μπορεί να απαντηθεί με φυσική ή εσωτερική σύζευξη. 2 Οι τιμές των πεδίων e.empid και w.empid είτε ταυτίζονται, είτε κάποια τιμή του πεδίου e.empid δεν έχει αντίστοιχη τιμή στον πίνακα workson. 137 / 150

138 Εξωτερική σύζευξη επιπλέον ανάλυση Ποιοι υπάλληλοι δεν απασχολούνται σε κανένα έργο; 1 SELECT e.empid, w.empid 2 FROM employees e LEFT JOIN workson w 3 ON e.empid = w.empid 4 WHERE w.empid IS NULL; 138 / 150

139 Εξωτερική σύζευξη επιπλέον ανάλυση Ποιοι υπάλληλοι δεν απασχολούνται σε κανένα έργο; 1 SELECT e.empid, w.empid 2 FROM employees e LEFT JOIN workson w 3 ON e.empid = w.empid 4 WHERE w.empid IS NULL; e.empid w.empid 205 NULL 311 NULL 342 NULL / 150

140 Εξωτερική σύζευξη επιπλέον ανάλυση Ποιοι υπάλληλοι δεν απασχολούνται σε κανένα έργο; 1 SELECT e.empid, w.empid 2 FROM employees e LEFT JOIN workson w 3 ON e.empid = w.empid 4 WHERE w.empid IS NULL; e.empid w.empid 205 NULL 311 NULL 342 NULL : υπάρχει στον πίνακα employees αλλά δεν υπάρχει στον πίνακα workson. Η αριστερή σύζευξη επιτρέπει την εμφάνιση της τιμής 205 στο πεδίο e.empid. Το πεδίο w.empid θα συμπληρωθεί με NULL. 140 / 150

141 Εξωτερική σύζευξη σύνοψη 141 / 150

142 Εξωτερική σύζευξη σύνοψη 1 Κάποιες εγγραφές του πίνακα employees δεν έχουν ταιριαστές εγγραφές στον πίνακα workson. 142 / 150

143 Εξωτερική σύζευξη σύνοψη 1 Κάποιες εγγραφές του πίνακα employees δεν έχουν ταιριαστές εγγραφές στον πίνακα workson. 2 Ο πίνακας workson δεν περιέχει καμία εγγραφή με NULL τιμές Ο τρόπος με τον οποίο έγινε η σύζευξη των πινάκων παρήγαγε τις τιμές NULL. 143 / 150

144 Εξωτερική σύζευξη σύνοψη 1 Κάποιες εγγραφές του πίνακα employees δεν έχουν ταιριαστές εγγραφές στον πίνακα workson. 2 Ο πίνακας workson δεν περιέχει καμία εγγραφή με NULL τιμές Ο τρόπος με τον οποίο έγινε η σύζευξη των πινάκων παρήγαγε τις τιμές NULL. 3 Η αριστερή εξωτερική σύζευξη ορίζει πως στο αποτέλεσμα θα υπάρχουν όλες οι εγγραφές του αριστερού πίνακα και στα πεδία του δεξιού πίνακα θα τοποθετηθούν είτε τιμές που αντιστοιχούν στον κανόνα της σύζευξης είτε τιμές NULL, εκεί όπου δεν βρέθηκαν ταιριαστές εγγραφές. 144 / 150

145 Εξωτερική σύζευξη σύνοψη 1 Κάποιες εγγραφές του πίνακα employees δεν έχουν ταιριαστές εγγραφές στον πίνακα workson. 2 Ο πίνακας workson δεν περιέχει καμία εγγραφή με NULL τιμές Ο τρόπος με τον οποίο έγινε η σύζευξη των πινάκων παρήγαγε τις τιμές NULL. 3 Η αριστερή εξωτερική σύζευξη ορίζει πως στο αποτέλεσμα θα υπάρχουν όλες οι εγγραφές του αριστερού πίνακα και στα πεδία του δεξιού πίνακα θα τοποθετηθούν είτε τιμές που αντιστοιχούν στον κανόνα της σύζευξης είτε τιμές NULL, εκεί όπου δεν βρέθηκαν ταιριαστές εγγραφές. 4 Επομένως οι εγγραφές με NULL τιμές στα πεδία του πίνακα workson, δεν οφείλονται σε αποθηκευμένες τιμές αλλά σε παραγόμενες μετά από εξωτερική σύζευξη. 145 / 150

146 Εξωτερική σύζευξη 1:1 Να βρεθεί ο κωδικός και το όνομα των υπαλλήλων που δεν είναι διευθυντές 1 SELECT e.empid, e.firstname, e.lastname 2 FROM employees e LEFT JOIN departments d 3 ON e.empid = d.manager 4 WHERE d.manager IS NULL; 146 / 150

147 Εξωτερική σύζευξη 1:1 Να βρεθεί ο κωδικός και το όνομα των υπαλλήλων που δεν είναι διευθυντές 1 SELECT e.empid, e.firstname, e.lastname 2 FROM employees e LEFT JOIN departments d 3 ON e.empid = d.manager 4 WHERE d.manager IS NULL; Να βρεθεί ο κωδικός και το όνομα των υπαλλήλων που δεν είναι διευθυντές 1 SELECT e.empid, e.firstname, e.lastname 2 FROM employees e INNER JOIN departments d 3 ON e.empid = d.manager 4 WHERE d.manager IS NULL; 147 / 150

148 Εξωτερική ή εσωτερική σύζευξη; Να βρεθεί ο κωδικός και το όνομα των υπαλλήλων που είναι διευθυντές 1 SELECT e.empid, e.firstname, e.lastname 2 FROM employees e LEFT JOIN departments d 3 ON e.empid = d.manager 4 WHERE d.manager IS NOT NULL; 148 / 150

149 Εξωτερική ή εσωτερική σύζευξη; Να βρεθεί ο κωδικός και το όνομα των υπαλλήλων που είναι διευθυντές 1 SELECT e.empid, e.firstname, e.lastname 2 FROM employees e LEFT JOIN departments d 3 ON e.empid = d.manager 4 WHERE d.manager IS NOT NULL; Να βρεθεί ο κωδικός και το όνομα των υπαλλήλων που είναι διευθυντές 1 SELECT e.empid, e.firstname, e.lastname 2 FROM employees e INNER JOIN departments d 3 ON e.empid = d.manager; 149 / 150

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

1 / 105

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οι εντολές 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 Δημιουργία πινάκων με την

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

Οι εντολές 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 Περιεχόμενα

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

DELETE, UPDATE, INSERT.

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

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

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

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

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

DELETE, UPDATE, INSERT

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

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

1 / 97

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

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

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 Σκοπός του μαθήματος Αποκλείσετε διπλοεγγραφές από

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

1 / 106

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

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

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

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

1 / 87

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

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

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

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

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

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

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

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

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

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

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

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 Εισαγωγή, γενικές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 / 106

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED. Χέρι χέρι με τον Καρατζαφέρη Αντώνης Χρυσόπουλος Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης MYSQL PHP ADVANCED Χέρι χέρι με τον Καρατζαφέρη Τα μάθατε καλέ κυρία? 1. Ψευδώνυμα Πινάκων 2. Ένωση Πίνακα με τον εαυτό του 3. Ομαδοποίηση 4.

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

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

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

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. 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 και επαναφέρετε

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

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

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

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

Εργαστήριο 8o. Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων. Ευάγγελος Γ. Καραπιδάκης

Εργαστήριο 8o. Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων. Ευάγγελος Γ. Καραπιδάκης Εργαστήριο 8o Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων Ερωτήματα Τα Ερωτήματα μας επιτρέπουν να βλέπουμε τα δεδομένα που επιθυμούμε, με τη σειρά που επιθυμούμε. Μας δίνουν

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

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

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

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

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

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

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

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

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

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

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

Σχεσιακή Άλγεβρα. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1

Σχεσιακή Άλγεβρα. Παύλος Εφραιμίδης. Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1 Σχεσιακή Άλγεβρα Παύλος Εφραιμίδης Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1 Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός Στο μάθημα θα πούμε για Σχεσιακή Άλγεβρα Βάσεις Δεδομένων

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός

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

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

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

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

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

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

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

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σύνολα Ασκήσεων Βάσεις Δεδομένων 2018-2019 Ευαγγελία Πιτουρά 1 2 ο Σύνολο Ασκήσεων Άσκηση 3 Οι λύσεις είναι ενδεικτικές υπάρχουν και άλλες σωστές SQL ερωτήσεις για τα ερωτήματα της άσκησης. 2 (γ)(i) Τους

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΤΕΤΑΡΤΟ Insert, Update, Delete, Ένωση πινάκων Γιώργος Μαρκοµανώλης Περιεχόµενα Group By... 1 Having...1 Οrder By... 2 Εντολή Insert...

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

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

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

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

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

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005 ΛΥΣΕΙΣ Ι. Βασιλείου -----------------------------------------------------------------------------------------------------

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

Διάλεξη 04: Εννοιολογική Σχεδίαση Βάσης Δεδομένων II (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 04: Εννοιολογική Σχεδίαση Βάσης Δεδομένων II (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 04: Εννοιολογική Σχεδίαση Βάσης Δεδομένων II (Entity Relationship Modelling) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Συσχετίσεις, Ρόλοι και Δομικοί Περιορισμοί

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

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

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

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

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

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

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

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

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

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

Σχεσιακή Άλγεβρα. Συνολοθεωρητικές Πράξεις. Εκφράσεις. Ειδικές Πράξεις. Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων. Σχεσιακός Λογισμός

Σχεσιακή Άλγεβρα. Συνολοθεωρητικές Πράξεις. Εκφράσεις. Ειδικές Πράξεις. Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων. Σχεσιακός Λογισμός Σχεσιακή Άλγεβρα Παύλος Εφραιμίδης Θεμελίωση της Σχεσιακού Μοντέλου Δεδομένων Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός ΣτομάθημαθαπούμεγιαΣχεσιακή Άλγεβρα Βάσεις Δεδομένων Σχεσιακή Άλγεβρα 1 Βάσεις Δεδομένων

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο Καθ.: Νίκος Τσαπατσούλης ΥΠΟΔΕΙΓΜΑ

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

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

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

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

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

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

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

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα Εισαγωγή Σχεσιακό Μοντέλο Σχεδιασμός μιας Β : Βήματα Ανάλυση Απαιτήσεων Τι δεδομένα θα αποθηκευτούν, ποιες εφαρμογές θα κτιστούν πάνω στα δεδομένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασμός

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

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

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

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

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα Εισαγωγή Σχεσιακό Μοντέλο Σχεδιασμός μιας Β : Βήματα Ανάλυση Απαιτήσεων Τι δεδομένα θα αποθηκευτούν, ποιες εφαρμογές θα κτιστούν πάνω στα δεδομένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασμός

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

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

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

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

Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης

Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model Νικόλαος Ζ. Ζάχαρης Τι είναι το ERΜ Είναι ένα μοντέλο αναπαράστασης των δεδομένων και των συσχετίσεων τους, και χρησιμοποιείται κατά τη φάση

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

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

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

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

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

Τελεστής Προβολής - Παράδειγμα. Π Πόλη, Εξάμηνο (Φοιτητές) Σχεσιακή Άλγεβρα Προβολή, Επιλογή, Καρτεσιανό Γινόμενο, Ένωση, Διαφορά, Σύνθεση Τελεστών, Μετονομασία, Παραδείγματα Ερωτήσεων, Τομή Συνόλων, Φυσική Σύζευξη 1 Σχεσιακή Άλγεβρα Η σχεσιακή άλγεβρα (relational

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

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

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

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

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

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

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

Βάσεις Δεδομένων Ενότητα 6

Βάσεις Δεδομένων Ενότητα 6 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 6: Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός Ιωάννης Μανωλόπουλος, Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση.

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση. Εισαγωγή Σχεσιακό Μοντέλο Ανάλυση Απαιτήσεων Σχεδιασμός μιας Β : Βήματα Τι δεδομένα θα αποθηκευτούν, ποιες εφαρμογές θα κτιστούν πάνω στα δεδομένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασμός

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

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

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

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

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

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

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

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

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη MySQL (3) ER Σχεσιακό Create Tables 1/4 CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastname VARCHAR(25) DEFAULT 'unknown' NOT NULL, AM INT(5)

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

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

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

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

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

Σχεδίαση Βάσεων Δεδομένων Σχεδίαση Βάσεων Δεδομένων Εισαγωγή στις Έννοιες των Σχεσιακών Βάσεων Δεδομένων Introduction to Relational Database Concepts 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved. Στόχοι Το

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

Βάσεις εδοµένων. Συνολοθεωρητικές Πράξεις. Ειδικές Πράξεις. Εκφράσεις. Θεµελίωση της Σχεσιακού Μοντέλου εδοµένων. Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός

Βάσεις εδοµένων. Συνολοθεωρητικές Πράξεις. Ειδικές Πράξεις. Εκφράσεις. Θεµελίωση της Σχεσιακού Μοντέλου εδοµένων. Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Θεµελίωση της Σχεσιακού Μοντέλου εδοµένων Βάσεις εδοµένων Σχεσιακή Άλγεβρα Σχεσιακός Λογισµός Παύλος Εφραιµίδης pefraimi at ee.duth.gr Στο µάθηµα θα πούµε για Σχεσιακή Άλγεβρα Βάσεις εδοµένων Σχεσιακή

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

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

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke SQL: Αιτήματα Κεφάλαιο 5 Database Management Systems, R. Ramakrishnan and J. Gehrke Στιγμιότυπα Στιγμιότυπα των σχέσεων Sailors Reserves και Boats. Αν στο κλειδί της σχέσης Reserved δε συμμετείχε το γνώρισμα

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

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

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

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

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

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

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

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

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο SQL Examples Ξένου Ρουμπίνη 1 SQL-DDL Data Definition/Description Language (DDL): προσδιορίζουν τη δομή ή το σχήμα των δεδομένων.

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

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα Βάσεις

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

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

Βάσεις δεδομένων. (2 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (2 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Μοντελοποίηση δεδομένων Μοντέλο Οντοτήτων Συσχετίσεων Παραδείγματα Διαγραμματικές τεχνικές Συμβολισμοί Τριαδικές συσχετίσεις 2

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

#1.1 Τι είναι η Βάση Δεδομένων

#1.1 Τι είναι η Βάση Δεδομένων 1 2 #1.1 Τι είναι η Βάση Δεδομένων Βάση δεδομένων είναι ένα πλήθος στοιχείων συναφών μεταξύ τους, τοποθετημένα και ταξινομημένα με συγκεκριμένο τρόπο. Με τη χρήση μιας Βάσης Δεδομένων μπορούμε: να καταχωρούμε

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