Η Γλώσσα SQL. Παράδειγμα ΒΔ (Τράπεζα)

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

Download "Η Γλώσσα SQL. Παράδειγμα ΒΔ (Τράπεζα)"

Transcript

1 Η Γλώσσα SQL Βασική δομή Συνήθεις τύποι ερωτημάτων Συνδέσεις (joins) Θεωρήσεις (views) και παραγόμενες σχέσεις Τροποποίηση της βάσης δεδομένων Η SQL ως γλώσσα ορισμού δεδομένων Ακεραιότητα δεδομένων Βασική πηγή διαφανειών: Silberschatz et al., Database System Concepts, 4/e Εργαστήριο Πληροφοριακών Συστηµάτων, Παν/µιο Πειραιώς ( έκδοση: Φεβ Β : [3] Η Γλώσσα SQL 1 Παράδειγμα ΒΔ (Τράπεζα) Β : [3] Η Γλώσσα SQL 2 3.1

2 Βασική δομή Συνήθεις τύποι ερωτημάτων Συνδέσεις (joins) Θεωρήσεις (views) και παραγόμενες σχέσεις Τροποποίηση της βάσης δεδομένων Η SQL ως γλώσσα ορισμού δεδομένων Ακεραιότητα δεδομένων Β : [3] Η Γλώσσα SQL 3 Βασική Δομή Η SQL βασίζεται στις πράξεις μεταξύ συνόλων και σχέσεων. Μια χαρακτηριστική ερώτηση σε SQL έχει την παρακάτω μορφή: select A 1, A 2,..., A n from r 1, r 2,..., r m where P Τα A i αναπαριστούν χαρακτηριστικά Τα r i αναπαριστούν σχέσεις Το P είναι ένα κατηγόρημα (ουσιαστικά μια συνθήκη). Το αποτέλεσμα μιας SQL ερώτησης είναι μια σχέση. Το ερώτημα αυτό είναι ισοδύναμο με την ακόλουθη έκφραση ΣΑ: A1, A2,..., An (σ P (r 1 x r 2 x... x r m )) Β : [3] Η Γλώσσα SQL 4 3.2

3 Το τμήμα select (1) Το τμήμα select χρησιμοποιείται για την προβολή των χαρακτηριστικών που θέλουμε να υπάρχουν στο αποτέλεσμα της ερώτησης. Παράδειγμα: «Βρες τα ονόματα των υποκαταστημάτων που έχουν συνάψει δάνεια» select branch name from loan Οαστερίσκοςστοτμήμαselect δηλώνει όλα τα χαρακτηριστικά. Για παράδειγμα: select * from loan ΗισοδύναμηέκφρασηΣΑείναιηεξής: branch name (loan) Β : [3] Η Γλώσσα SQL 5 Το τμήμα select (2) H SQL επιτρέπει πολλαπλές εμφανίσεις της ίδιας πλειάδας σε μια σχέση, όπως και στο αποτέλεσμα μιας ερώτησης. Για την απαλοιφή των πολλαπλών εμφανίσεων, εισάγουμε τη δεσμευμένη λέξη distinct μετά το select. Παράδειγμα: «Βρες τα (διακριτά) ονόματα των υποκαταστημάτων που έχουν συνάψει δάνεια» select distinct branch name from loan Το τμήμα select μπορεί να περιέχει αριθμητικές εκφράσεις περιλαμβάνοντας τις πράξεις +,, και / ανάμεσα σε σταθερές ή χαρακτηριστικά πλειάδων. Το ερώτημα: select loan number, branch name, amount 100 from loan θα επιστρέψει μια σχέση η οποία είναι η ίδια με τη σχέση loan, εκτός από το χαρακτηριστικό amount, το οποίο έχει πολλαπλασιαστεί επί 100. Β : [3] Η Γλώσσα SQL 6 3.3

4 Το τμήμα where Το τμήμα where αποτελείται από ένα κατηγόρημα που περιέχει χαρακτηριστικά των σχέσεων που εμφανίζονται στην πρόταση from. Παράδειγμα: «Βρες τα δάνεια που έγιναν στο υποκατάστημα Perryridge με ποσά άνω των 1200» select * from loan where branch name = Perryridge and amount > 1200 Τα αποτελέσματα των συγκρίσεων μπορούν να συνδυαστούν με χρήση των λογικών τελεστών and, or και not. Οι συγκρίσεις μπορούν να εφαρμοστούν σε αποτελέσματα αριθμητικών εκφράσεων. ΗισοδύναμηέκφρασηΣΑείναιηεξής: σ branch name = Perryridge and amount > 1200 (loan) Β : [3] Η Γλώσσα SQL 7 Το τμήμα from Το τμήμα from αντιστοιχεί στο Καρτεσιανό γινόμενο μεταξύ σχέσεων. Παραθέτει τις σχέσεις που πρέπει να σαρωθούν για την αποτίμηση της έκφρασης. Παράδειγμα: Καρτεσιανό γινόμενο borrower x loan select from borrower, loan Παράδειγμα: «Βρες το όνομα, αριθμό δανείου και ποσό δανείου για όλους τους πελάτες, οι οποίοι έχουν πάρει δάνειο από το υποκατάστημα Perryridge» select customer name, borrower.loan number, amount from borrower, loan where borrower.loan number = loan.loan number and branch name = Perryridge ΗισοδύναμηέκφρασηΣΑείναιηεξής: borrower x loan Β : [3] Η Γλώσσα SQL 8 3.4

5 Η λειτουργία Rename Η SQL επιτρέπει τη μετονομασία σχέσεων και χαρακτηριστικών με χρήση της πρότασης as: old name as new name Παράδειγμα: «Βρες το όνομα, αριθμό δανείου και ποσό δανείου για όλους τους πελάτες (ηστήληloan number να μετονομαστεί σε loan id)» select customer name, borrower.loan number as loan id, amount from borrower, loan where borrower.loan number = loan.loan number Β : [3] Η Γλώσσα SQL 9 Μεταβλητές πλειάδων Οι μεταβλητές πλειάδων ορίζονται στην πρόταση from με χρήση της πρότασης as. Παράδειγμα: «Βρες τα ονόματα των πελατών και τους αντίστοιχους αριθμούς δανείων για όλους τους πελάτες που έχουν πάρει δάνειο από κάποιο υποκατάστημα» select customer name, b.loan number, l.amount from borrower as b, loan as l where b.loan number = l.loan number Παράδειγμα: «Βρες τα υποκαταστήματα που έχουν αποθεματικό μεγαλύτερο του αποθεματικού ενός (οποιουδήποτε) υποκαταστήματος του Brooklyn» select distinct b1.branch name from branch as b1, branch as b2 where b1.assets > b2.assets and b2.branch city = Brooklyn Β : [3] Η Γλώσσα SQL

6 Πράξεις με συμβολοσειρές Η SQL παρέχει έναν τελεστή ταιριάσματος συμβολοσειρών (τον τελεστή like) για συγκρίσεις με χρήση δύο ειδικών χαρακτήρων % και _ : (%). Ο χαρακτήρας % ταιριάζει οποιαδήποτε υπο συμβολοσειρά. (_). Ο χαρακτήρας _ ταιριάζει οποιοδήποτε χαρακτήρα. Παράδειγμα: «Βρες τα ονόματα των πελατών, των οποίων ο δρόμος της κατοικίας περιλαμβάνει τη λέξη Main. select customer name from customer where customer street like %Main% Η SQL υποστηρίζει ένα πλήθος από πράξεις σε συμβολοσειρές όπως: αλληλουχία (με χρήση του ), μετατροπή από κεφαλαία σε πεζά (και αντίστροφα), εύρεση του μήκους της συμβολοσειράς, κλπ. Β : [3] Η Γλώσσα SQL 11 Διάταξη των πλειάδων Παράδειγμα: «Βρες τα ονόματα των πελατών που έχουν πάρει δάνειο απότουποκατάστημαperryridge και εμφάνισέ τα σε αλφαβητική σειρά» select distinct customer name from borrower, loan where borrower loan number = loan.loan number and branch name = Perryridge order by customer name Μπορούμε να καθορίσουμε desc για φθίνουσα σειρά ή asc για αύξουσα σειρά για κάθε χαρακτηριστικό. Προκαθορισμένη σειρά είναι η αύξουσα. Παράδειγμα:... order by customer name desc Β : [3] Η Γλώσσα SQL

7 Βασική δομή Συνήθεις τύποι ερωτημάτων Συνδέσεις (joins) Θεωρήσεις (views) και παραγόμενες σχέσεις Τροποποίηση της βάσης δεδομένων Η SQL ως γλώσσα ορισμού δεδομένων Ακεραιότητα δεδομένων Β : [3] Η Γλώσσα SQL 13 Πράξεις συνόλων (1) Οι πράξεις συνόλων union, intersect και except εφαρμόζονται σε σχέσεις Καθεμιά από τις παραπάνω πράξεις αυτομάτως αφαιρεί τις διπλοεγγραφές. Για να διατηρηθούν οι πολλαπλές εμφανίσεις των εγγραφών χρησιμοποιούνται οι παρακάτω εκδοχές union all, intersect all και except all. Υποθέστε ότι μια πλειάδα εμφανίζεται m φορές στην r και n φορές στην s, τότε, εμφανίζεται: m + n φορές στην r union all s min(m,n) φορές στην r intersect all s max(0, m n)φορές στην r except all s Αντιστοιχούν στις πράξεις " ", " ", " " της ΣΑ. Β : [3] Η Γλώσσα SQL

8 Πράξεις συνόλων (2) Παράδειγμα: «Βρες τους πελάτες που έχουν πάρει δάνειο ή διαθέτουν λογαριασμό» (select customer name from depositor) union (select customer name from borrower) Παράδειγμα: «Βρες τους πελάτες που έχουν πάρει δάνειο και διαθέτουν λογαριασμό» (select customer name from depositor) intersect (select customer name from borrower) Παράδειγμα: «Βρες τους πελάτες που διαθέτουν λογαριασμό και δεν έχουν πάρει δάνειο» (select customer name from depositor) except (select customer name from borrower) Β : [3] Η Γλώσσα SQL 15 Συναθροιστικές συναρτήσεις (1) Αυτές οι συναρτήσεις εφαρμόζονται στις τιμές μιας στήλης μιας σχέσης και επιστρέφουν μια τιμή. avg / min / max: μέση / ελάχιστη / μέγιστη τιμή sum / count: άθροισμα / πλήθος τιμών Παράδειγμα: «Βρες το μέσο υπόλοιπο των λογαριασμών στο υποκατάστημα Perryridge» select avg (balance) from account where branch name = Perryridge Παράδειγμα: «Βρες το πλήθος των πελατών της τράπεζας» select count (*) from customer Παράδειγμα: «Βρες το πλήθος των καταθετών της τράπεζας» select count (distinct customer name) from depositor Β : [3] Η Γλώσσα SQL

9 Συναθροιστικές συναρτήσεις (2) Ομαδοποίηση εγγραφών το τμήμα group by Παράδειγμα: «Βρες το πλήθος των καταθετών σε κάθε υποκατάστημα της τράπεζας». select branch name, count (distinct customer name) from depositor as d, account as a where d.account number = a.account number group by branch name Σημείωση: τα χαρακτηριστικά που εμφανίζονται στο τμήμα select πρέπει να είναι είτε μεταξύ αυτών στα οποία εφαρμόζονται οι συναθροιστικές συναρτήσεις, είτεμεταξύαυτώνπουεμφανίζονταιστη λίστα group by. Β : [3] Η Γλώσσα SQL 17 Συναθροιστικές συναρτήσεις (3) Συναθροιστικές συναρτήσεις πάνω στις ομάδες εγγραφών το τμήμα having Παράδειγμα: «Βρες τα υποκαταστήματα που έχουν μέσο υπόλοιπο λογαριασμών άνω των 2.000» select branch name, avg (balance) from account group by branch name having avg (balance) > 2000 Σημείωση: Τα κατηγορήματα (συνθήκες) στο τμήμα having εφαρμόζονται μετά το σχηματισμό των ομάδων, ενώ τα κατηγορήματα στο τμήμα where εφαρμόζονται πριν το σχηματισμό των ομάδων. Β : [3] Η Γλώσσα SQL

10 Η τιμή null Είναι πιθανό κάποιες πλειάδες για κάποια από τα χαρακτηριστικά τους να έχουν μια κενή τιμή, η οποία δηλώνεται με null. Το null δηλώνει μια άγνωστη τιμή ή μια τιμή που δεν υπάρχει. Το κατηγόρημα is null (και όχι = null) μπορεί να χρησιμοποιηθεί για τον έλεγχο τιμών null. Π.χ.«Βρες τα δάνεια που δεν έχουν καταχωρημένο το ποσό δανείου» select loan number from loan where amount is null Β : [3] Η Γλώσσα SQL 19 Οι τιμές null και οι συναθροίσεις Το αποτέλεσμα μιας αριθμητικής έκφρασης που περιέχει το null είναι null. Π.χ. 5 + null επιστρέφει null Παρ όλα αυτά, οι συναθροιστικές συναρτήσεις απλώς αγνοούν τα nulls. Παράδειγμα: «Βρες το συνολικό ύψος των δανείων» select sum (amount) from loan Το παραπάνω ερώτημα SQL αγνοεί τις τιμές null Το αποτέλεσμα θα είναι null μόνο εάν η στήλη amount είναι γεμάτη από τιμές null Β : [3] Η Γλώσσα SQL

11 Εμφωλιασμένα υποερωτήματα (1) Η SQL παρέχει ένα μηχανισμό για το εμφώλιασμα υποερωτημάτων (subquery nesting). Έναυποερώτημαείναιμιαselect from where έκφραση, η οποία είναι εμφωλιασμένη σε μια άλλη ερώτηση. Μια κοινή χρήση των υποερωτημάτων είναι η πραγματοποίηση ελέγχων για συμμετοχή σε σύνολα, για συγκρίσεις συνόλων και για την πληθικότητα συνόλων. Β : [3] Η Γλώσσα SQL 21 Εμφωλιασμένα υποερωτήματα (2) Παραδείγματα «Βρες τους πελάτες που έχουν λογαριασμό στην τράπεζα και έχουν πάρει δάνειο από αυτήν» select distinct customer name from borrower where customer name in (select customer name from depositor) «Βρες τους πελάτες που έχουν πάρει δάνειο από την τράπεζα, αλλά δεν έχουν λογαριασμό σε αυτή» select distinct customer name from borrower where customer name not in (select customer name from depositor) Β : [3] Η Γλώσσα SQL

12 Σύγκριση συνόλων Παράδειγμα: «Βρες τα υποκαταστήματα που έχουν αποθεματικό μεγαλύτερο του αποθεματικού ενός (οποιουδήποτε) υποκαταστήματος του Brooklyn» select distinct b1.branch name from branch as b1, branch as b2 where b1.assets > b2.assets and b2.branch city = Brooklyn Το ίδιο ερώτημα με χρήση της πρότασης > some select branch name from branch where assets > some (select assets from branch where branch city = Brooklyn ) Β : [3] Η Γλώσσα SQL 23 Ορισμός της πρότασης some F? some r t r τέτοιο ώστε (F? t) όπου? είναι ένας από τους τελεστές σύγκρισης: <,, >, =, (5< some 0 5 ) = true 6 (διαβάζεται: 5 < κάποια πλειάδα στη σχέση) 0 0 (5< some 5 ) = false (5 = some ) = true 5 0 (5 some ) = true (αφού 0 5) 5 (= some) in Παρ όλα αυτά, ( some) not in Β : [3] Η Γλώσσα SQL

13 Ορισμός της πρότασης all F? all r t r ισχύει (F? t) 0 4 (5< all 5 ) = false (2< all ) = true 5 6 (5 = all 0 5 ) = false (5 all 4 ) = true (αφού 5 4 και 5 6) 6 ( all) not in Παρ όλα αυτά, (= all) in Β : [3] Η Γλώσσα SQL 25 Παράδειγμα «Βρες τα υποκαταστήματα που έχουν αποθεματικό μεγαλύτερο του αποθεματικού όλων των υποκαταστημάτων του Brooklyn» select branch name from branch where assets > all (select assets from branch where branch city = Brooklyn ) Β : [3] Η Γλώσσα SQL

14 Έλεγχος για κενές σχέσεις Ο τελεστής exists επιστρέφει τιμή true εάν το υποερώτημα που παίρνει ως όρισμα είναι μη κενό. exists r r Ø not exists r r = Ø Σημειώστε ότι X Y = Ø X Y Παράδειγμα: «Βρες τους πελάτες που έχουν λογαριασμούς σε όλα τα υποκαταστήματα που βρίσκονται στο Brooklyn» select distinct S.customer name from depositor as S where not exists ( (select branch name from branch where branch city = Brooklyn ) except (select R.branch name from depositor as T, account as R where T.account number = R.account number and S.customer name = T.customer name)) Β : [3] Η Γλώσσα SQL 27 Ερωτήσεις τύπου top N N (1) Κάποιες φορές θέλουμε να προσδιορίσουμε πόσες πλειάδες θα βγουν στο αποτέλεσμα. Δύσκολο στην SQL!! Παράδειγμα: Βρείτε τους λογαριασμούς με τα 10 μεγαλύτερα υπόλοιπα. select account number, balance from account as A where 10 > (select count(*) from account as B where A.balance < B.balance) and balance is not null order by balance desc για το λόγο αυτό, τα περισσότερα συστήματα έχουν ειδική υποστήριξη αυτής της λειτουργίας (οπότε προκύπτουν ζητήματα μεταφερσιμότητας). Β : [3] Η Γλώσσα SQL

15 Ερωτήσεις τύπου top N N (2) MySQL: select account number, balance from account where balance is not null order by balance desc limit 10 Oracle: select account number, balance from ( select account number, balance from account where balance is not null order by balance desc) where rownum <= 10 SQL Server: select top 10 account number, balance from account where balance is not null order by balance desc (υπογραµµισµένα είναι τα ειδικά keywords που χρησιµοποιεί το κάθε σύστηµα) Β : [3] Η Γλώσσα SQL 29 Βασική δομή Συνήθεις τύποι ερωτημάτων Συνδέσεις (joins) Θεωρήσεις (views) και παραγόμενες σχέσεις Τροποποίηση της βάσης δεδομένων Η SQL ως γλώσσα ορισμού δεδομένων Ακεραιότητα δεδομένων Β : [3] Η Γλώσσα SQL

16 Σύνδεση σχέσεων (join) Οι λειτουργίες σύνδεσης (join) παίρνουν ως είσοδο δυο σχέσεις και επιστρέφουν ως αποτέλεσμα μια άλλη σχέση. Αυτές οι επιπρόσθετες πράξεις χρησιμοποιούνται συνήθως ως εκφράσεις υποερωτημάτων στο τμήμα from. Συνθήκη Join: καθορίζει ποιες πλειάδες στις δυο σχέσεις ταιριάζουν και ποια χαρακτηριστικά εμφανίζονται στο αποτέλεσμα του join. Τύπος Join: καθορίζει πώς θα χειριστούμε τις πλειάδες της μίας σχέσης, οι οποίες δεν ταιριάζουν (βάσει της συνθήκης του join) με κάποια πλειάδα της άλλης σχέσης. Τύποι Join inner join left outer join right outer join full outer join Συνθήκες Join natural on <predicate> using (A 1, A 2,..., A n ) Β : [3] Η Γλώσσα SQL 31 Τύποι join Α C B σχέσεις Α, B, συνθήκη c Inner Join: το αποτέλεσμα περιλαμβάνει μόνο τις πλειάδες των A και B που ταιριάζουν μεταξύ τους (σύμφωνα με την συνθήκη c) Outer Join: το αποτέλεσμα περιλαμβάνει επιπλέον και πλειάδες (της A ή/και της B) που δεν ταιριάζουν, ως εξής: Left outer join: περιλαμβάνονταιοιπλειάδεςτηςa που δεν αντιστοιχούν σε πλειάδες της B Right outer join: περιλαμβάνονται οι πλειάδες της B που δεν αντιστοιχούν σε πλειάδες της A Full outer join: περιλαμβάνονται τόσο οι πλειάδες της A που δεν αντιστοιχούν σε πλειάδες της B όσοκαιοιπλειάδεςτηςb που δεν αντιστοιχούν σε πλειάδες της A Γιακάθεπλειάδατηςμιαςσχέσηςπουδενέχειαντίστοιχηπλειάδαστηνάλλη σχέση, τα χαρακτηριστικά που δεν βρίσκουν αντιστοιχία παίρνουν τιμή null. Β : [3] Η Γλώσσα SQL

17 Συνθήκες join Natural ελέγχει τα χαρακτηριστικά των σχέσεων Α και Β με το ίδιο όνομα. Το αποτέλεσμα περιλαμβάνει πλειάδες των Α, Β που έχουν ίδια τιμή πάνω σε αυτά τα χαρακτηριστικά. On <predicate> δηλώνεται ένα κατηγόρημα (ουσιαστικά μια συνθήκη) που υπαγορεύει τον τρόπο που θα ταιριάξουν οι πλειάδες της A με τις πλειάδες της B. Using (A 1, A 2,..., A n ) περιλαμβάνει μια λίστα με χαρακτηριστικά (που πρέπει να υπάρχουν και στους δύο πίνακες). Το αποτέλεσμα περιλαμβάνει πλειάδες των Α, Β που έχουνίδιατιμήπάνωσεαυτάταχαρακτηριστικά. Οι παρακάτω εκφράσεις είναι συντακτικά ισοδύναμες a Inner Join b USING (c1,c2,c3) a Inner Join b ON a.c1=b.c1 AND a.c2=b.c2 AND a.c3=b.c3 Β : [3] Η Γλώσσα SQL 33 Σύνδεση σχέσεων παραδείγματα Σχέση loan loan-number branch-name amount L-170 L-230 L-260 Downtown Redwood Perryridge Σχέση borrower customer-name loan-number Jones Smith Hayes L-170 L-230 L-155 Σηµείωση: (για τους σκοπούς του παραδείγµατος) στη σχέση borrower λείπει πληροφορία για το L-260 και στη σχέση loan λείπει πληροφορία για το L-155 Β : [3] Η Γλώσσα SQL

18 Σύνδεση σχέσεων Παραδείγματα (1) loan inner join borrower on loan.loan number = borrower.loan number loan-number branch-name amount customer-name loan-number L-170 L-230 Downtown Redwood Jones Smith L-170 L-230 loan left outer join borrower on loan.loan-number = borrower.loan-number loan-number branch-name amount customer-name loan-number L-170 L-230 L-260 Downtown Redwood Perryridge Jones Smith null L-170 L-230 null Β : [3] Η Γλώσσα SQL 35 Σύνδεση σχέσεων Παραδείγματα (2) loan natural inner join borrower loan-number branch-name amount customer-name L-170 L-230 Downtown Redwood Jones Smith loan natural right outer join borrower loan-number branch-name amount customer-name L-170 L-230 L-155 Downtown Redwood null null Jones Smith Hayes Β : [3] Η Γλώσσα SQL

19 Σύνδεση σχέσεων Παραδείγματα (3) loan full outer join borrower using (loan number) loan-number branch-name amount customer-name L-170 Downtown 3000 Jones L-230 Redwood 4000 Smith L-260 L-155 Perryridge null 1700 null null Hayes Β : [3] Η Γλώσσα SQL 37 Βασική δομή Συνήθεις τύποι ερωτημάτων Συνδέσεις (joins) Θεωρήσεις (views) και παραγόμενες σχέσεις Τροποποίηση της βάσης δεδομένων Η SQL ως γλώσσα ορισμού δεδομένων Ακεραιότητα δεδομένων Β : [3] Η Γλώσσα SQL

20 Θεωρήσεις (views) Παρέχουν ένα μηχανισμό απόκρυψης προκαθορισμένων δεδομένων από προκαθορισμένους χρήστες. Γιατηδημιουργίαμιαςθεώρησης χρησιμοποιούμε την εντολή: CREATE VIEW <view_name> (<column_name1>, <column_name2>,, <column_namen>) AS <SQL_select_statement> όπου: < SQL_select_statement> είναι οποιαδήποτε έγκυρη έκφραση SQL view_name το όνομα της θεώρησης Β : [3] Η Γλώσσα SQL 39 Παραδείγματα Μια θεώρηση που αποτελείται από τα υποκαταστήματα και τους πελάτες τους create view all customer as (select branch name, customer name from depositor, account where depositor.account number = account.account number) union (select branch name, customer name from borrower, loan where borrower.loan number = loan.loan number) Παράδειγμα: «Βρες τους πελάτες του υποκαταστήματος Perryridge» select customer name from all customer where branch name = Perryridge Β : [3] Η Γλώσσα SQL

21 Παραγόμενες σχέσεις Παράδειγμα: «Βρες το μέσο υπόλοιπο των λογαριασμών των υποκαταστημάτων τα οποία έχουν λογαριασμούς με μέσο υπόλοιπο άνω των 1200» select branch name, avg balance from (select branch name, avg (balance) from account group bybranch name) as result (branch name, avg balance) where avg balance > 1200 Σημείωση: δενχρειαζόμαστετηνπρόταση having, αφού υπολογίζουμε την προσωρινή σχέση (θεώρηση) result στην πρόταση from και τα χαρακτηριστικά της result μπορούν να χρησιμοποιηθούν απευθείας στην πρόταση where. Β : [3] Η Γλώσσα SQL 41 Το τμήμα With Το τμήμα With επιτρέπει των ορισμό των θεωρήσεων τοπικά στο ερώτημα, παρά καθολικά. Είναι ουσιαστικά ανάλογο με τη χρήση των διαδικασιών σε μια γλώσσα προγραμματισμού. Παράδειγμα: «Βρες τους λογαριασμούς που έχουν το μέγιστο υπόλοιπο» with max balance(value) as selectmax (balance) from account select account number from account, max balance where account.balance = max balance.value Προσοχή: κάποια εμπορικά ΣΔΒΔ (π.χ. MySQL) δεν υποστηρίζουν WITH Β : [3] Η Γλώσσα SQL

22 Σύνθετα ερωτήματα με χρήση του With Παράδειγμα: «Βρες τα υποκαταστήματα όπου το συνολικό υπόλοιπο των λογαριασμών είναι μεγαλύτερο από το μέσο όρο των συνολικών καταθέσεων σε όλα τα υποκαταστήματα» with branch total (branch name, value) as select branch name, sum (balance) from account group by branch name with branch total avg(value) as select avg (value) frombranch total select branch name from branch total, branch total avg where branch total.value >= branch total avg.value Β : [3] Η Γλώσσα SQL 43 Βασική δομή Συνήθεις τύποι ερωτημάτων Συνδέσεις (joins) Θεωρήσεις (views) και παραγόμενες σχέσεις Τροποποίηση της βάσης δεδομένων Η SQL ως γλώσσα ορισμού δεδομένων Ακεραιότητα δεδομένων Β : [3] Η Γλώσσα SQL

23 Τροποποίηση της ΒΔ Διαγραφή (1) Παράδειγμα: «Να διαγραφούν όλοι οι λογαριασμοί από όλα τα υποκαταστήματα που βρίσκονται στην πόλη Needham» delete from account where branch name in (select branch name from branch where branch city = Needham ) delete from depositor where account number in (select account number from branch, account where branch city = Needham and branch.branch name = account.branch name) Β : [3] Η Γλώσσα SQL 45 Τροποποίηση της ΒΔ Διαγραφή (2) Παράδειγμα: «Να διαγραφούν οι εγγραφές των λογαριασμών με υπόλοιπο κάτω του μέσου υπολοίπου της τράπεζας» delete from account where balance < (select avg (balance) from account) Πρόβλημα: καθώς διαγράφουμε πλειάδες από τη σχέση deposit, το μέσο υπόλοιπο αλλάζει!! Λύση που χρησιμοποιείται στην SQL: 1. Πρώτα υπολογίζουμε το avg balance και βρίσκουμε τις πλειάδες που πρέπει να διαγραφούν 2. Έπειτα διαγράφουμε όλες τις πλειάδες που βρήκαμε στο βήμα 1 (χωρίς να υπολογίζουμε εκ νέου το avg ή να επανελέγχουμε τις πλειάδες) Β : [3] Η Γλώσσα SQL

24 Τροποποίηση της ΒΔ Εισαγωγή (1) Παράδειγμα: «Να εισαχθεί μια νέα πλειάδα στη σχέση account με κωδικό λογαριασμού A 9732, όνομα υποκαταστήματος Perryridge και υπόλοιπο 1200» insert into account values ( A 9732, Perryridge,1200) ήισοδύναμα insert into account (branch name, balance, account number) values ( Perryridge, 1200, A 9732 ) Αν δεν γνωρίζουμε την τιμή ενός χαρακτηριστικού... insert into account values ( A 777, Perryridge, null) Β : [3] Η Γλώσσα SQL 47 Τροποποίηση της ΒΔ Εισαγωγή (2) Παράδειγμα: «Να δοθεί ως δώρο σε όλους τους δανειολήπτες του υποκαταστήματος Perryridge ένας καταθετικός λογαριασμός με ποσό 200. Ο λογαριασμός αυτός ως κωδικό τον κωδικό του αντίστοιχου δανείου» insert into account select loan number, branch name, 200 from loan where branch name = Perryridge insert into depositor select customer name, loan number from loan, borrower where branch name = Perryridge and loan.account number = borrower.account number Ηέκφρασηselect from where αποτιμάται πλήρως πριν από την εισαγωγή στη σχέση οποιουδήποτε εκ των αποτελεσμάτων της Β : [3] Η Γλώσσα SQL

25 Τροποποίηση της ΒΔ Ενημέρωση Παράδειγμα: «Να δοθεί αύξηση 6% (5%) σε όλους τους λογαριασμούς με υπόλοιπο μεγαλύτερο των (μέχρι) » Γράφουμε δυο εντολές update (η σειράείναισημαντική): update account set balance = balance 1.06 where balance > update account set balance = balance 1.05 where balance Μπορεί να υλοποιηθεί με μία εντολή, με χρήση της εντολής case: update account set balance = case when balance <= then balance *1.05 else balance * 1.06 end Β : [3] Η Γλώσσα SQL 49 Παράδειγμα ενημέρωσης μιας θεώρησης Δημιουργήστε μια θεώρηση για τα δεδομένα της σχέσης loan, κρύβοντας το χαρακτηριστικό amount create view branch loan as select branch name, loan number from loan Προσθέστε μια νέα πλειάδα στη θεώρηση branch loan insert into branch loan values ( Perryridge, L 307 ) Αυτήηεισαγωγήπρέπεινααναπαρασταθείμετηνεισαγωγήτης πλειάδας ( L 307, Perryridge, null) στη σχέση loan Οι ενημερώσεις σε πιο πολύπλοκες θεωρήσεις είναι δύσκολο ή αδύνατο να μεταφραστούν και επομένως δεν επιτρέπονται. Οι πιο πολλές υλοποιήσεις της SQL επιτρέπουν ενημερώσεις μόνο σε απλές θεωρήσεις (χωρίς συναθροίσεις) που ορίζονται σε μια μόνο σχέση Β : [3] Η Γλώσσα SQL

26 Βασική δομή Συνήθεις τύποι ερωτημάτων Συνδέσεις (joins) Θεωρήσεις (views) και παραγόμενες σχέσεις Τροποποίηση της βάσης δεδομένων Η SQL ως γλώσσα ορισμού δεδομένων Ακεραιότητα δεδομένων Β : [3] Η Γλώσσα SQL 51 Γλώσσα Ορισμού Δεδομένων ΗγλώσσαSQL χρησιμοποιείται και ως Γλώσσα Ορισμού Δεδομένων (Data Definition Language DDL), με χρήση της οποίας καθορίζονται οι σχέσεις της ΒΔ, αλλά και επιπλέον πληροφορία για κάθε σχέση, όπως: Το σχήμα για κάθε σχέση Το πεδίο τιμών κάθε χαρακτηριστικού Περιορισμούς ακεραιότητας Το σύνολο των ευρετηρίων που συντηρούνται για κάθε σχέση (*) Τη δομή φυσικής αποθήκευσης κάθε σχέσης στο δίσκο (*) (*) θέματα που θα μελετηθούν σε επόμενη ενότητα Β : [3] Η Γλώσσα SQL

27 Τύποι πεδίου ορισμού στην SQL char(n). Σταθερού μήκους συμβολοσειρά, με μήκος n (το n καθορίζεται από το χρήστη). varchar(n). Μεταβλητού μήκους συμβολοσειρά, με μέγιστο μήκος n (τοn καθορίζεται από το χρήστη). int. Ακέραιος (το εύρος του εξαρτάται από τη μηχανή). smallint. Μικρός ακέραιος (υποσύνολο των ακεραίων, το εύρος του εξαρτάται από τη μηχανή). numeric(p,d). Αριθμόςσταθερήςυποδιαστολής, με ακρίβεια p ψηφίων (το p καθορίζεται από το χρήστη), με n ψηφία στα δεξιά της υποδιαστολής. real, double precision. Αριθμός κινητής υποδιαστολής απλής και διπλής ακρίβειας, αντίστοιχα (η ακρίβειά του εξαρτάται από τη μηχανή). float(n). Αριθμός κινητής υποδιαστολής. Ο χρήστης καθορίζει την ακρίβεια τουλάχιστον n ψηφίων. Β : [3] Η Γλώσσα SQL 53 Τύποι Date/Time στην SQL date. Ημερομηνίες, που περιέχουν τετραψήφιο έτος, μήνα και ημέρα Π.χ. date time. Ώρα της ημέρας (ώρες, λεπτά, δευτερόλεπτα). Π.χ. time 09:00:30 time 09:00:30.75 timestamp: ημερομηνία + ώρα Π.χ. timestamp :00:30.75 Interval: χρονική περίοδος Π.χ. Interval 1 day Η αφαίρεση μιας τιμής date / time / timestamp από μια άλλη δίνει μια interval τιμή Οι interval τιμές μπορούν να προστεθούν σε τιμές date / time / timestamp Β : [3] Η Γλώσσα SQL

28 Σύνταξη Create Table Μια σχέση ορίζεται στην SQL με την εντολή create table: create table r (A 1 D 1, A 2 D 2,..., A n D n, (περιορισμός ακεραιότητας 1 ),..., (περιορισμός ακεραιότητας k )) r είναι το όνομα της σχέσης κάθε A i είναι ένα όνομα χαρακτηριστικού στο σχήμα της σχέσης r D i είναι ο τύπος δεδομένων των τιμών στον τύπο πεδίου ορισμού του χαρακτηριστικού A i Παράδειγμα: create table branch (branch name char(15) not null, branch city char(30), assets integer) Β : [3] Η Γλώσσα SQL 55 Οι εντολές Drop και Alter Table Ηεντολήdrop table διαγράφει όλες τις πληροφορίες για τη σχέση που διαγράφεται από τη βάση δεδομένων. Ηεντολήalter table χρησιμοποιείται για την προσθήκη χαρακτηριστικών σε μια σχέση που έχει ήδη δημιουργηθεί. Σε όλες τις πλειάδες στη σχέση καταχωρείται η τιμή null για το νέο χαρακτηριστικό. Η μορφή της εντολής alter table είναι: alter table r add A D όπου A είναι το όνομα του χαρακτηριστικού που προστίθεται στη σχέση r και D είναι ο τύπος πεδίου ορισμού του A. Ηεντολήalter table μπορεί επίσης να χρησιμοποιηθεί για τη διαγραφή χαρακτηριστικών από μια σχέση alter table r drop A όπου A είναι το όνομα ενός χαρακτηριστικού της σχέσης r Σημείωση: πολλά ΣΔΒΔ δεν υποστηρίζουν διαγραφή χαρακτηριστικών Β : [3] Η Γλώσσα SQL

29 Βασική δομή Συνήθεις τύποι ερωτημάτων Συνδέσεις (joins) Θεωρήσεις (views) και παραγόμενες σχέσεις Τροποποίηση της βάσης δεδομένων Η SQL ως γλώσσα ορισμού δεδομένων Ακεραιότητα δεδομένων Β : [3] Η Γλώσσα SQL 57 Απλοί περιορισμοί ακεραιότητας not null primary key (A 1,..., A n ) check (P), όπου P είναι ένα κατηγόρημα Παράδειγμα: Ορίστε το branch name ως το πρωτεύον κλειδί για τη σχέση branch καιεξασφαλίστεότιοιτιμέςτουχαρακτηριστικού assets είναι μη αρνητικές. create table branch (branch name char(15), branch city char(30) assets integer, primary key (branch name), check (assets >= 0)) Σημείωση: Στην SQL 92 η δήλωση ενός χαρακτηριστικού ως primary key αυτόματα εγγυάται ότι δεν επιτρέπεται να πάρει null τιμές Β : [3] Η Γλώσσα SQL

30 Περιορισμοί πεδίου Ηπρότασηcheck στην SQL 92 επιτρέπει να διατυπώνουμε περιορισμούς για τα πεδία: Π.χ. η πρόταση check εξασφαλίζει ότι το πεδίο ωρομίσθιο (hourly wage) επιτρέπει μόνο τιμές μεγαλύτερες από μία συγκεκριμένη τιμή. create domain hourly wage numeric(5,2) constraint value test check(value > = 4.00) Το πεδίο έχει έναν περιορισμό που εξασφαλίζει ότι το ωρομίσθιο είναι μεγαλύτερο ή ίσο του 4.00 Ηπρότασηconstraint value test είναι προαιρετική. Στον έλεγχο του πεδίου μπορεί να υπάρχουν πολύπλοκες συνθήκες: create domain AccountType char(10) constraint account type check (value in ( checking, saving )) check (branch name in (select branch name from branch)) Β : [3] Η Γλώσσα SQL 59 Αναφορική ακεραιότητα στην SQL Το πρωτεύον κλειδί και τα ξένα κλειδιά μπορούν να οριστούν ως μέρος της SQL δήλωσης create table: Οόροςprimary key της δήλωσης create table περιλαμβάνει τη λίστα των γνωρισμάτων που συνθέτουν το πρωτεύον κλειδί. Οόροςforeign key της δήλωσης create table περιλαμβάνει και μια λίστα με τα γνωρίσματα που συνθέτουν το ξένο κλειδί και το όνομα τηςσχέσηςστηνοποίααναφέρεταιτοξένοκλειδί. Β : [3] Η Γλώσσα SQL

31 Αναφορική ακεραιότητα στην SQL (συν.) create table customer (customer name char(20), customer street char(30), customer city char(30), primary key (customer name)) create table branch (branch name char(15), branch city char(30), assetsinteger, primary key (branch name)) create table account (account number char(10), branch name char(15), balance integer, primary key (account number), foreign key (branch name) references branch) create table depositor (customer name char(20), account number char(10), primary key (customer name, account number), foreign key (account number) references account, foreign key (customer name) references customer) Β : [3] Η Γλώσσα SQL 61 Συμπαρασυρόμενες (cascading) ενέργειες create table account... foreign key(branch name) references branch on delete cascade on update cascade... ) Λόγω του όρου on delete cascade, αν η διαγραφή μιας πλειάδας της σχέσης branch οδηγήσει σε παραβίαση του περιορισμού αναφορικής ακεραιότητας, τότε η διαγραφή αυτή θα μεταφερθεί διαδοχικά και στη σχέση account, διαγράφοντας τις πλειάδες που αναφέρονται στο υποκατάστημα που διαγράφηκε από τη σχέση account. Κατά παρόμοιο τρόπο εκτελούνται οι συμπαρασυρόμενες ενημερώσεις (on update cascade). Β : [3] Η Γλώσσα SQL

32 Συμπαρασυρόμενες ενέργειες (συν.) Αν υπάρχει μία αλυσίδα από εξαρτήσεις ξένων κλειδιών μεταξύ πολλαπλών σχέσεων, με τη δήλωση on delete cascade που καθορίζεται για κάθε εξάρτηση, μια διαγραφή ή τροποποίηση στο ένα άκρο της αλυσίδας μπορεί να διαδοθεί κατά μήκος ολόκληρης της αλυσίδας. Αν οι συμπαρασυρόμενες διαγραφές οδηγήσουν σε παραβίαση του περιορισμού που δεν μπορεί να αντιμετωπιστεί από κάποια περαιτέρω συμπαρασυρόμενη λειτουργία, το σύστημα εμποδίζει την δοσοληψία (transaction). Ως αποτέλεσμα, όλες οι αλλαγές που προκλήθηκαν από τη δοσοληψία και τις διαδοχικές της ενέργειες αναιρούνται. Β : [3] Η Γλώσσα SQL 63 Διαβεβαιώσεις (Assertions) Η διαβεβαίωση (assertion) είναι ένα κατηγόρημα που εκφράζει μια συνθήκηπουθέλουμεναικανοποιείπάνταηβάσηδεδομένων. Ένα assertion στην SQL έχει τη μορφή: create assertion <assertion name> check <predicate> Όταν δημιουργείται ένα assertion, το σύστημα ελέγχει την ορθότητά του και επαναλαμβάνεται ο έλεγχος σε κάθε ενημέρωση (update) που μπορεί να οδηγήσει σε παραβίαση του assertion. Ο έλεγχος αυτός μπορεί να εισάγει μια σημαντική επιβάρυνση στο χρόνο απόκρισης. Συνεπώς τα assertions πρέπει να χρησιμοποιούνται με μεγάλη προσοχή. Ηικανοποίησητουassertion : X: P(X) επιτυγχάνεται μέσω της συνθήκης: X: P(X) Σε αντίθεση με την πρώτη, η δεύτερη συνθήκη μπορεί να υλοποιηθεί στην SQL. Β : [3] Η Γλώσσα SQL

33 Παράδειγμα assertion 1 Το άθροισμα των δανείων κάθε υποκαταστήματος θα πρέπει να είναι μικρότερο από το άθροισμα των υπολοίπων των λογαριασμών του εν λόγω υποκαταστήματος. create assertion sum constraint check (not exists (select * from branch where (select sum(amount) from loan where loan.branch name = branch.branch name) >= (select sum(balance) from account where account.branch name = branch.branch name))) branch: sum(loan.amount) < sum(account.balance) branch: sum(loan.amount) sum(account.balance) Β : [3] Η Γλώσσα SQL 65 Παράδειγμα assertion 2 Κάθε δάνειο θα πρέπει να έχει έναν τουλάχιστον δανειολήπτη που να διατηρεί λογαριασμό με ελάχιστο υπόλοιπο create assertion balance constraint check (not exists ( select * from loan l where not exists ( select * from borrower b, depositor d, account a where l.loan number = b.loan number and b.customer name = d.customer name and d.account number = a.account number and a.balance >= 1000))) loan: borrower with balance 1000 loan: borrower with balance 1000 Β : [3] Η Γλώσσα SQL

34 Ενεργοποιητές (Triggers) Ένας ενεργοποιητής (trigger) είναι μια εντολή που εκτελείται αυτόματα απότοσύστημαωςάμεσοαποτέλεσματηςτροποποίησηςτηςβάσης. Οσχεδιασμόςενόςμηχανισμούtrigger απαιτεί: Τονκαθορισμότωνσυνθηκώνκάτωαπότιςοποίεςθα«πυροδοτείται» ο trigger. Τον καθορισμό των ενεργειών που θα πραγματοποιούνται κατά την εκτέλεση του trigger. Ομηχανισμόςτων triggers εισήχθη ως SQL standard στην SQL:1999, αλλά από νωρίτερα υπήρχε σχετική υποστήριξη από τις περισσότερες βάσεις δεδομένων. Β : [3] Η Γλώσσα SQL 67 Παράδειγμα trigger Ας υποθέσουμε πως αντί να επιτρέπει αρνητικά υπόλοιπα στους λογαριασμούς, η τράπεζα αντιμετωπίζει τις υπεραναλήψεις (overdrafts) ως εξής: Θέτει το υπόλοιπο του λογαριασμού στο μηδέν Δημιουργεί ένα δάνειο με το ακάλυπτο ποσό Δίνει στο δάνειο έναν αριθμό δανείου παρόμοιο με τον αριθμό λογαριασμού από τον οποίο προέρχεται το ακάλυπτο ποσό. Ησυνθήκη"πυροδότησης" του trigger είναι κάποια ενημέρωση στη σχέση account που οδηγεί σε αρνητικό υπόλοιπο. Β : [3] Η Γλώσσα SQL

35 Παράδειγμα trigger (SQL:1999) create trigger overdraft trigger after update on account referencing new row as nrow for each row when nrow.balance < 0 begin atomic insert into borrower (select customer name, account number from depositor where nrow.account number = depositor.account number); insert into loan values (nrow.account number, nrow.branch name, nrow.balance); update account set balance = 0 where account.account number = nrow.account number end Β : [3] Η Γλώσσα SQL 69 Πότε πυροδοτούνται οι triggers Υπάρχουν τρία συμβάντα που μπορούν να πυροδοτήσουν έναν trigger: insert, delete και update. Στην περίπτωση των ενημερώσεων οι triggers μπορούν να περιοριστούν σε συγκεκριμένα γνωρίσματα Π.χ. create trigger overdraft trigger after update of balance on account Οι τιμές των γνωρισμάτων είναι προσπελάσιμες πριν και μετά από κάθε ενημέρωση. referencing old row as... (για τις διαγραφές και τις ενημερώσεις) referencing new row as... (για τις εισαγωγές και τις ενημερώσεις) Β : [3] Η Γλώσσα SQL

36 Πότε πυροδοτούνται οι triggers (συν.) Οι triggers μπορούν να πυροδοτηθούν πριν από κάποιο συμβάν, γεγονός που μπορεί να χρησιμοποιηθεί ως επιπλέον περιορισμός. π.χ. μετατροπή των κενών σε null. create trigger setnull trigger before update on r referencing new row as nrow for each row when nrow.phone number = set nrow.phone number = null Β : [3] Η Γλώσσα SQL 71 Triggers σε επίπεδο εντολής SQL Αντί να εκτελείται μια ξεχωριστή ενέργεια για κάθε γραμμή (row) που επηρεάζεται, μπορεί να εκτελείται μία ξεχωριστή ενέργεια σε επίπεδο εντολής (statement), για όλες τις γραμμές που επηρεάζονται από μια δοσοληψία. Στην περίπτωση αυτή: χρησιμοποιείται η εντολή for each statement αντί της εντολής for each row. Χρησιμοποιείται η δήλωση referencing old table ή referencing new table προκειμένου να αναφερθούμε σε προσωρινούς πίνακες που περιέχουν τις γραμμές που επηρεάζονται. Ο τρόπος αυτός είναι πιο αποδοτικός σε περιπτώσεις εντολών SQL που ενημερώνουν ένα μεγάλο πλήθος γραμμών. Β : [3] Η Γλώσσα SQL

37 Εξωτερικές ενέργειες Μερικές φορές κατά την ενημέρωση της βάσης δεδομένων απαιτείται η ενεργοποίηση κάποιων εξωτερικών ενεργειών, όπως η εκ νέου παραγγελία ενός προϊόντος όταν η ποσότητά του πέσει κάτω από μία συγκεκριμένητιμήήηενεργοποίησηενόςδιακόπτη. Οι triggers προφανώς δεν μπορούν να χρησιμοποιηθούν για την κατευθείαν υλοποίηση εξωτερικών ενεργειών, ΑΛΛΑ μπορούν να χρησιμοποιηθούν για την καταγραφή σε έναν ξεχωριστό πίνακα των ενεργειών που πρέπει να ληφθούν, και μπορούμε να έχουμε μια εξωτερική διεργασία που θα σαρώνει συνεχώς τον πίνακα και θα διεκπεραιώνει τις εξωτερικές ενέργειες. Β : [3] Η Γλώσσα SQL 73 Εξωτερικές ενέργειες (συν.) Π.χ. μια ΒΔ για μια αποθήκη προϊόντων, με τους ακόλουθους πίνακες inventory(item, level): η ποσότητα κάθε αντικειμένου στην αποθήκη minlevel(item, level): το ελάχιστο επιθυμητό επίπεδο ανά αντικείμενο reorder(item, amount): η ποσότητα που πρέπει να παραγγελθεί orders(item, amount): οι παραγγελίες που πρέπει να τοποθετηθούν στον πίνακα των ενεργειών (θα διαβαστούν από την εξωτερική διεργασία) create trigger reorder trigger after update of level on inventory referencing old row as orow, new row as nrow for each row when nrow.level < = (select level from minlevel m where m.item = orow.item) and orow.level > (select level from minlevel m where m.item = orow.item) begin insert into orders (select item, amount from reorder where reorder.item = orow.item) end Β : [3] Η Γλώσσα SQL

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Περιορισμοί πεδίου τιμών Περιορισμοί ακεραιότητας

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

SQL: Συναρτήσεις Συνάθροισης

SQL: Συναρτήσεις Συνάθροισης SQL: Συναρτήσεις Συνάθροισης Συναρτήσεις Συνάθροισης (Aggregate Functions) Εφαρμόζονται πάνω σε σύνολα τιμών γνωρισμάτων. count, max, min, avg, sum Περιορισμοί: η συνάρτηση count μπορεί να εφαρμοστεί σε

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

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

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

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

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

Αρχεία και Βάσεις Δεδομένων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αρχεία και Βάσεις Δεδομένων Διάλεξη 11η: Περιορισμοί Ακεραιότητας - Κανονικές Μορφές Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Αποτελούν μηχανισμό για τον

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφ 4: Προχωρημένες Εντολές SQL

Κεφ 4: Προχωρημένες Εντολές SQL Κεφ 4: Προχωρημένες Εντολές SQL Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Σύνδεση σχέσεων (join) Οι λειτουργίες Join παίρνουν ως είσοδο δυο σχέσεις και επιστρέφουν

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

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού Δεδομένων (ΓΟΔ) Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ) Ενσωματωμένη

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

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

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

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

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

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

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

SQL Data Manipulation Language

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

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

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

Η Γλώσσα SQL. Μέρος β. Η Γλώσσα SQL Σελίδα 1 Η Γλώσσα SQL Μέρος β Η Γλώσσα SQL Σελίδα 1 Διαγραφή - Deletion Εντολή DELETE delete from relation_name where-qualification Σημασιολογία: Εκτέλεσε την ανάλογη SELECT εντολή και έπειτα διάγραψε τις πλειάδες

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

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

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

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

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

Η Γλώσσα SQL. Μέρος α. Η Γλώσσα SQL Σελίδα 1 Η Γλώσσα SQL Μέρος α Η Γλώσσα SQL Σελίδα 1 SQL - ΕΙΣΑΓΩΓΗ SQL (Structured Query Language) είναι η τυποποιηµένη standard γλώσσα στις Σχεσιακές Βάσεις. Η πρώτη χρήση ήταν στο πρότυπο σύστηµα της IBM, που

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

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

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

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

H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων

H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων H Γλώσσα SQL Σχεδιασμός Βάσεων Δεδομένων Πηγή διαφανειών Ε. Πιτουρά «Βάσεις Δεδομένων», A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5th edition Η γλώσσα SQL SQL αποτελείται από:

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

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

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

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

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

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

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

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 2 Η Γλώσσα SQL (Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Η γλώσσα SQL H SQL έχει διάφορα τµήµατα: Γλώσσα Ορισµού εδοµένων (ΓΟ ) Γλώσσα

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

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1 Ενεργές ΒΔ Παύλος Εφραιμίδης pefraimi ee.duth.gr Βάσεις Δεδομένων Ενεργές ΒΔ 1 Active Databases Υποστηρίζουν την αυτόματη εκτέλεση ενεργειών όταν συμβούν συγκεκριμένα γεγονότα Ένας διαδεδομένος μηχανισμός

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

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

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

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

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

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων ΗΓλώσσαSQL Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων Εισαγωγή Η δομημένη γλώσσα ερωτημάτων SQL (Structured Query Language) χρησιμοποιείται για τους χρήστες του ΣΔΒΔ

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

Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Βάσεις Δεδομένων Ενότητα 6: Γλώσσα Structured Query Language -SQL Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

Εργαστήριο Βάσεων Δεδομένων. Triggers

Εργαστήριο Βάσεων Δεδομένων. Triggers Εργαστήριο Βάσεων Δεδομένων Triggers CREATE TRIGGER Δήλωση δημιουργίας Trigger: CREATE [DEFINER = { user CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

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

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

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

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

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

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Πίνακας Πεδίο Τύπος Κύριο κλειδί Αναφορική ακεραιότητα οντοτήτων Ξένο κλειδί Αναφορική ακεραιότητα δεδομένων Δρ. Κεραμόπουλος Ευκλείδης 2 ΚΥΡΙΟ ΚΛΕΙΔΙ ΦΟΙΤΗΤΗΣ ΑΜ CHAR(5) ΟΝΟΜΑ VARCHAR(20)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6 Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Φεβρουάριος 2008 Περιεχόμενα JOIN συνέχεια

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

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

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language) Παύλος Εφραιμίδης Βάσεις Δεδομένων Η Γλώσσα SQL - Μέρος Πρώτο 1 SQL - Structured Query Language (1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης

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

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

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 6: Εισαγωγή στις βάσεις δεδομένων (Μέρος Β) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης

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

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

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

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

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη My (1) Η (Structured Query Language) είναι μια πλήρης γλώσσα Βάσεων Δεδομενων Είναι δομημένη σε βάσεις που περιέχουν πίνακες Οι πίνακες αποτελούνται από γραμμές

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

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

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

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

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

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1) Βάσεις Δεδομένων Η γλώσσα SQL Structured Query Language) Παύλος Εφραιμίδης SQL - Structured Query Language 1) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης των Σχεσιακών ΒΔ Εξασφαλίζει μεταφερσιμότητα

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

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

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

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

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

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

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

Βάσεις εδοµένων 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?

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

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

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

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

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Περιορισμοί Σχεσιακού Μοντέλου και Σχεσιακά Σχήματα Πράξεις Ενημερώσεων

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

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

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

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

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις Σχεδιασμός Πληροφοριακών Συστημάτων Σημειώσεις Συμπλήρωμα για τις Εκδόσεις 4 (4.1) και 4.2 των Σημειώσεων Έκδοση 19/2/2011 Μάριος Μάντακας mmantak@gmail.com Διαφορά από την προηγούμενη Έκδοση: Προσθήκη

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΤΡΙΤΟ Foreign key, Index, DML Ερωτήµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Foreign Key... 1 Index... 4 DML Ερωτήµατα... 6 INSERT...

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

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

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

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

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

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

DELETE, UPDATE, INSERT.

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

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

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

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

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

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

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

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

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα: ΘΕΜΑΤΑ Θέμα 1 ο Σε μία βάση δεδομένων χρηματιστηριακών συναλλαγών υπάρχουν οι παρακάτω πίνακες που αποτελούνται από τα εξής πεδία : : ΚΣ, ΗΜΝΙΑ, ΩΡΑ, ΚΜ, ΤΙΜΗ ΜΕΤΟΧΗ : ΚΜ, ΟΝΟΜΑ, ΕΤΟΣ_ΙΔΡΥΣΗΣ, ΚΚ, ΚΑΤΗΓΟΡΙΑ

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

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

DELETE, UPDATE, INSERT

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3 Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Φεβρουάριος 2008 Περιεχόμενα ξένα κλειδιά

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

Θεωρία Κανονικοποίησης

Θεωρία Κανονικοποίησης Θεωρία Κανονικοποίησης Πρώτη Κανονική Μορφή (1NF) Αποσύνθεση Συναρτησιακές Εξαρτήσεις Δεύτερη (2NF) και Τρίτη Κανονική Μορφή (3NF) Boyce Codd Κανονική Μορφή (BCNF) Καθολική Διαδικασία Σχεδίασης ΒΔ Βασική

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

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

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

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

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

Βάσεις Δεδομένων Ι - 05. SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ Βάσεις Δεδομένων Ι - 05 SQL Μέρος 3 ο (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Θεσσαλίας Πρόσθετες Διαφάνειες σε Προηγούμενα Θέματα...σε Διαγραφή Πλειάδων Σημασιολογία

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

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Εισαγωγή στο περιβάλλον της oracle Δημιουργία πινάκων Δρ. Εύη Φαλιάγκα 1. Login Χρησιμοποιώντας έναν web explorer, μπαίνετε στο http://10.0.0.6:8080/apex και συμπληρώνετε

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

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα

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

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

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

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

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

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

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

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

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

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

Η Γλώσσα SQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων Η Γλώσσα SQL Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων Εισαγωγή Η δομημένη γλώσσα ερωτημάτων SQL (Structured Query Language) χρησιμοποιείται για τους χρήστες του ΣΔΒΔ

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

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

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση Βάσεις Δεδομένων 5η εργαστηριακή άσκηση SQL Δρ. Μαρία Ευθυμιοπούλου Εντολές sql Για να γράψετε ή να επικολλήσετε εντολές sql πηγαίνετε από το μενού SQL Workshop και επιλέγετε το SQL Commands 1. Δημιουργία

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Views, Triggers Γιώργος Μαρκοµανώλης Περιεχόµενα Όψη... 1 ηµιουργία όψης... 2 Επιλογή CHECK... 3 Όψεις µόνο για εµφάνιση

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

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

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

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

1. ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL

1. ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL 1. ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL Τύποι στην MySQL Κείμενο Αριθμοί Ημερομηνίες και ώρες Επιλογή του τύπου Στήλες ονομάτων τύπος κειμένου Στήλες ποσών ή ποσοτήτων Αριθμητικός τύπος Στήλες ημερομηνιών τύπος ημερομηνίας

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

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 δε συμμετείχε το γνώρισμα

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

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

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

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

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Φροντιστήριο 4/2/2009 Δικαιώματα χρηστών - Προβολές (Views) ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ MYSQL queries results mysql host DB server queries results Client host Β Δ Ηχρήσητηςmysql βασίζεται

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

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

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

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

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

Η Γλώσσα Βάσεων εδοµένων SQL Η Γλώσσα Βάσεων εδοµένων SQL 1 Η γλώσσα SQL Η SQL (Structured Query Language - οµηµένη Γλώσσα Ερωτηµάτων) είναι η καθιερωµένη σχεσιακή γλώσσα βάσεων δεδοµένων. Υλοποιήθηκε από την IBM στα πλαίσια του ερευνητικού

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

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

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2) Εργαστήριο βάσεων δεδομένων Εισαγωγή στη MySQL (2) Παράδειγμα - ER Παράδειγμα-Σχεσιακό Παράδειγμα Δημιουργία Πινάκων CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastnamevarchar(25)

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Stored procedures, Exceptions, ιακιώµατα Γιώργος Μαρκοµανώλης Περιεχόµενα Stored Procedures... 1 Exceptions... 1 Εντολή

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

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

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 SQL Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Τι είδαμε μέχρι τώρα Δύο γλώσσες ερωτήσεων που αποτελούν το θεωρητικό υπόβαθρο Σχεσιακή άλγεβρα: μια άλγεβρα συνόλων που αφορά πράξεις πάνω σε σχέσεις

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

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

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

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] Επιμέλεια: Καρβούνης Ευάγγελος, PhD, Επιστημονικός Συνεργάτης του Τμήματος Αντωνιάδης Νικόλαος, Καθηγητής Οκτώβριος

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου] Χειμερινό Εξ. 2013-14 Επιμέλεια: Καρβούνης Ευάγγελος Οκτώβριος 2013 Περιεχόμενα 1 Σχεδιασμός Βάσης...

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

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

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

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

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures): 9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers Σκοπός της παρούσας εργαστηριακής άσκησης, είναι η εξοικείωση του σπουδαστή με τη δημιουργία αποθηκευμένων διαδικασιών (Stored Procedures) και σκανδάλης

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