Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 5: SQL

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

Download "Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 5: SQL"

Transcript

1 Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Σεμινάριο 5: SQL Ευάγγελος Καρκαλέτσης, Αναστασία Κριθαρά, Γεώργιος Πετάσης Εργαστήριο Τεχνολογίας Γνώσεων & Λογισμικού, Ινστιτούτο Πληροφορικής & Τηλεπικοινωνιών, Ε.Κ.Ε.Φ.Ε. Δημόκριτος Τηλ.: , Fax: , {vangelis, akrithara, Ακαδημαϊκό Έτος: Τεχνολογίες Πληροφορικής στην Ιατρική και τη Βιολογία,

2 Σεμινάριο 5, SQL < 1 > Οι διαφάνειες αυτού του σεμιναρίου βασίζονται σε διαφάνειες των: Δ. Γουνόπουλος, Ι. Ιωαννίδης

3 ΚΕΦΑΛΑΙΟ 8 SQL-99: Ορισμός Σχήματος, Περιορισμοί, και Επερωτήσεις και Όψεις Copyright 2011 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση Δίαυλος Σεμινάριο 5, SQL

4 Ορισμός Δεδομένων, Περιορισμοί, και Αλλαγές Σχήματος Οι CREATE, DROP, και ALTER χρησιμοποιούνται για αλλαγές της περιγραφής των πινάκων (σχέσεων) μιας βάσης δεδομένων Σεμινάριο 5, SQL 3

5 CREATE TABLE Ορίζει μια νέα βασική σχέση δίνοντας της ένα όνομα και ορίζοντας κάθε γνώρισμα και τον τύπο δεδομένων του γνωρίσματος (INTEGER, FLOAT, DECIMAL(i,j), CHAR(n), VARCHAR(n)) Σε ένα γνώρισμα μπορεί να ορισθεί ένας περιορισμός NOT NULL CREATE TABLE ΤΜΗΜΑ ( Τ_ΟΝΟΜΑ VARCHAR(10) NOT NULL, ΚΩΔ_ΤΜΗΜ INTEGER NOT NULL, ΔΙΕΥΘΥΝΤΗΣ CHAR(9), ΗΜΕΡ_ΕΝΑΡΞΗΣ CHAR(9) ); Σεμινάριο 5, SQL 4

6 CREATE TABLE Στην SQL2, μπορούμε να χρησιμοποιήσουμε την εντολή CREATE TABLE για τον προσδιορισμό των γνωρισμάτων του πρωτεύοντος κλειδιού, των δευτερευόντων κλειδιών, και των αναφορικών περιορισμών ακεραιότητας (ξένα κλειδιά). Τα γνωρίσματα κλειδιού προσδιορίζονται με τις προτάσεις PRIMARY KEY and UNIQUE. CREATE TABLE ΤΜΗΜΑ ( Τ_ΟΝΟΜΑ VARCHAR(10) NOT NULL, ); ΚΩΔ_ΤΜΗΜ INTEGER NOT NULL, ΔΙΕΥΘΥΝΤΗΣ CHAR(9), ΗΜΕΡ_ΕΝΑΡΞΗΣ CHAR(9), PRIMARY KEY (ΚΩΔ_ΤΜΗΜ), UNIQUE (Τ_ΟΝΟΜΑ), FOREIGN KEY(ΔΙΕΥΘΥΝΤΗΣ) REFERENCES ΕΡΓΑΖΟΜΕΝΟΣ Σεμινάριο 5, SQL 5

7 DROP TABLE Χρησιμοποιείται για τη διαγραφή μιας σχέσης (βασικός πίνακας) και του ορισμού του Η σχέση δεν μπορεί να χρησιμοποιηθεί περαιτέρω σε ερωτήσεις, ενημερώσεις, ή οποιαδήποτε άλλη εντολή αφού δεν υπάρχει ο ορισμός της Παράδειγμα: DROP TABLE ΕΞΑΡΤΩΜΕΝΟΣ; Σεμινάριο 5, SQL 6

8 ALTER TABLE Χρησιμοποιείται για την προσθήκη ενός γνωρίσματος σε μια από τις βασικές σχέσεις Το νέο γνώρισμα θα έχει τιμές NULL σε όλες τις πλειάδες της σχέσης μετά την εκτέλεση της εντολής επομένως, δεν επιτρέπεται ο περιορισμός NOT NULL για το γνώρισμα αυτό Παράδειγμα: ALTER TABLE ΕΡΓΑΖΟΜΕΝΟΣ ADD ΕΡΓΑΣΙΑ VARCHAR(12); Οι χρήστες της βάσης δεδομένων πρέπει πάλι να εισάγουν μια τιμή για το νέο γνώρισμα ΕΡΓΑΣΙΑ για κάθε πλειάδα ΕΡΓΑΖΟΜΕΝΟΣ. Αυτό μπορεί να επιτευχθεί με την εντολή UPDATE. Σεμινάριο 5, SQL 7

9 Πρόσθετα χαρακτηριστικά της SQL2 και της SQL-99 Create schema Επιλογές Αναφορικής Ακεραιότητας Σεμινάριο 5, SQL 8

10 CREATE SCHEMA Ορίζει το σχήμα μιας νέας βάσης δεδομένων δίνοντας της ένα όνομα. Σεμινάριο 5, SQL 9

11 ΕΠΙΛΟΓΕΣ ΑΝΑΦΟΡΙΚΗΣ ΑΚΕΡΑΙΟΤΗΤΑΣ Στου αναφορικούς περιορισμούς ακεραιότητας (ξένα κλειδιά) μπορούμε να προσδιορίσουμε τις RESTRICT, CASCADE, SET NULL ή SET DEFAULT CREATE TABLE ΤΜΗΜΑ ( Τ_ΟΝΟΜΑ VARCHAR(10) NOT NULL, ΚΩΔ_ΤΜΗΜ INTEGER NOT NULL, ΔΙΕΥΘΥΝΤΗΣ CHAR(9), ΗΜΕΡ_ΕΝΑΡΞΗΣ CHAR(9), PRIMARY KEY (ΚΩΔ_ΤΜΗΜ), UNIQUE (Τ_ΟΝΟΜΑ), FOREIGN KEY (ΔΙΕΥΘΥΝΤΗΣ) REFERENCES ΕΡΓΑΖΟΜΕΝΟΣ ON DELETE SET DEFAULT ON UPDATE CASCADE); Σεμινάριο 5, SQL 10

12 ΕΠΙΛΟΓΕΣ ΑΝΑΦΟΡΙΚΗΣ ΑΚΕΡΑΙΟΤΗΤΑΣ (συνέχεια) CREATE TABLE ΕΡΓ( E_ΟΝΟΜΑ VARCHAR(30) NOT NULL, E_ΑΡΤΑΥΤ CHAR(9), ΗΜ_ΓΕΝ DATE, ΑΡΙΘ_Τ INTEGER DEFAULT 1, ΠΡΟΙΣΤΑΜΕΝΟΣ CHAR(9), PRIMARY KEY (E_ΑΡΤΑΥΤ), FOREIGN KEY (ΑΡΙΘ_Τ) REFERENCES ΤΜΗΜΑ ON DELETE SET DEFAULT ON UPDATE CASCADE, FOREIGN KEY (ΠΡΟΙΣΤΑΜΕΝΟΣ) REFERENCES ΕΡΓ ON DELETE SET NULL ON UPDATE CASCADE); Σεμινάριο 5, SQL 11

13 Πρόσθετοι τύποι δεδομένων των SQL2 και SQL-99 Έχει τους τύους δεδομένων DATE, TIME, and TIMESTAMP DATE: Σχηματίζετε από τα year-month-day σε μορφή yyyy-mmdd TIME: Σχηματίζετε από:minute:second σε μορφή hh:mm:ss TIME(i): Σχηματίζετε από hour:minute:second με επιπλέον ψηφία που ορίζουν δέκατα δευτερολέπτου η μορφή είναι hh:mm:ss:ii...i Σεμινάριο 5, SQL 12

14 Πρόσθετοι τύποι δεδομένων των SQL2 και SQL-99(συνεχ.) TIMESTAMP: Έχει και τις δύο, DATE και TIME συνιστώσες INTERVAL: Προσδιορίζει μια σχετική τιμή παρά σαν απόλυτη τιμή. Μπορεί να είναι διαστήματα DAY/TIME ή YEAR/MONTH Μπορεί να είναι θετική ή αρνητική όταν προστεθεί ή αφαιρεθεί από μια απόλυτη τιμή, το αποτέλεσμα είναι μια απόλυτη τιμή Σεμινάριο 5, SQL 13

15 Ερωτήσεις ανάκτησης στην SQL Η SQL έχει μια βασική εντολή για ανάκτηση πληροφοριών από μια βάση δεδομένων την εντολή SELECT Δεν είναι ίδια με την πράξη SELECT (επιλογή) της σχεσιακής άλγεβρας Σημαντική διαφορά μεταξύ της SQL και του τυπικού σχεσιακού μοντέλου: Η SQL επιτρέπει σε ένα πίνακα (σχέση) να έχει δύο ή περισσότερες ταυτόσημες πλειάδες (ίδια τιμή σε όλα τους τα γνωρίσματα) Επομένως, μια SQL σχέση (πίνακας) είναι ένα πολυ-σύνολο (ονομάζεται και bag) από πλειάδες δεν είναι ένα σύνολο από πλειάδες Οι σχέσεις της SQL μπορούν να περιορισθούν σε σύνολα με προσδιορισμό γνωρισμάτων PRIMARY KEY ή UNIQUE, ή χρησιμοποιώντας την επιλογή DISTINCT σε μια ερώτηση Σεμινάριο 5, SQL 14

16 Ερωτήσεις Ανάκτησης στην SQL (συν.) Ένα bag ή πολυ-σύνολο μοιάζει με σύνολο, αλλά ένα στοιχείο μπορεί να εμφανισθεί περισσότερες από μια φορές. Παράδειγμα το: {A, B, C, A} είναι bag. Το {A, B, C} είναι επίσης bag που είναι και σύνολο. Τα bags μοιάζουν με λίστες, αλλά στο bag δεν ενδιαφέρει η σειρά. Παράδειγμα: {A, B, A} = {B, A, A} είναι bags Ωστόσο, τα [A, B, A] και [B, A, A] δεν ίσα σαν λίστες Σεμινάριο 5, SQL 15

17 Ερωτήσεις Ανάκτησης στην SQL (συν.) Η βασική μορφή της SQL εντολής SELECT ονομάζεται μια απεικόνιση ή ένα SELECT-FROM-WHERE μπλοκ SELECT <λίστα γνωρισμάτων> FROM <λίστα πινάκων> WHERE <συνθήκη> < λίστα γνωρισμάτων > είναι μια λίστα ονομάτων γνωρισμάτων που η τιμή τους πρέπει να ανακτηθεί από την ερώτηση < λίστα πινάκων > είναι μια λίστα από ονόματα σχέσεων που απαιτούνται για επεξεργασία της ερώτησης <συνθήκη> είναι μια έκφραση συνθήκης (Boolean) που προσδιορίζει τις πλειάδες που θα ανακτηθούν από την ερώτηση. Σεμινάριο 5, SQL 16

18 Σχεσιακό σχήμα βάσης δεδομένων Σεμινάριο 5, SQL 17

19 Βάση με δεδομένα Σεμινάριο 5, SQL 18

20 Απλές SQL Ερωτήσεις Οι βασικές SQL ερωτήσεις αντιστοιχούν στη χρήση των παρακάτω πράξεων της σχεσιακής άλγεβρας: SELECT PROJECT JOIN Όλα τα παραδείγματα που ακολουθούν χρησιμοποιούν τη βάση δεδομένων ΕΤΑΙΡΕΙΑ Σεμινάριο 5, SQL 19

21 Απλές SQL Ερωτήσεις(συν.) Παράδειγμα απλής ερώτησης σε μια σχέση Ερώτηση 0: Να βρεθεί η ημερομηνία γέννησης και η διεύθυνση του εργαζόμενου που το όνομα του είναι John B. Smith Q0: SELECT ΗΜ_ΓΕΝ, ΔΙΕΥΘΥΝΣΗ FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE ΟΝΟΜΑ='John' AND ΑΡΧ_ΠΑΤ='B AND ΕΠΙΘΕΤΟ='Smith' Μοιάζει με ένα ζεύγος SELECT-PROJECT πράξεων της σχεσιακής άλγεβρας: Η πρόταση SELECT- προσδιορίζει τα γνωρίσματα της προβολής και η πρόταση WHERE- προσδιορίζει την συνθήκη επιλογής Ωστόσο, το αποτέλεσμα της ερώτησης μπορεί να περιέχει διπλότυπες πλειάδες Σεμινάριο 5, SQL 20

22 Απλές SQL Ερωτήσεις (συν.) Ερώτηση 1: Να βρεθούν το όνομα και η διεύθυνση όλων των εργαζομένων στο τμήμα Research. SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΔΙΕΥΘΥΝΣΗ FROM ΕΡΓΑΖΟΜΕΝΟΣ ΤΜΗΜΑ WHERE Τ_ΟΝΟΜΑ='Research' AND ΚΩΔ_ΤΜΗΜ=ΑΡΙΘ_Τ Παρόμοια με μια ακολουθία SELECT-PROJECT-JOIN πράξεων της σχεσιακής άλγεβρας (Τ_ΟΝΟΜΑ='Research') είναι μια συνθήκη επιλογής (αντιστοιχεί σε μια πράξη επιλογής στη σχεσιακή άλγεβρα) (ΚΩΔ_ΤΜΗΜ=ΑΡΙΘ_Τ) είναι μια συνθήκη επιλογής (αντιστοιχεί σε μια πράξη JOIN της σχεσιακής άλγεβρας) Σεμινάριο 5, SQL 21

23 Απλές SQL Ερωτήσεις (συν.) Ερώτηση 2: Για κάθε έργο στο Stafford να βρεθεί ο κωδικός του έργου, ο κωδικός του τμήματος που το ελέγχει και το επίθετο, η διεύθυνση και η ημερομηνία γέννησης του διευθυντή του τμήματος. SELECT ΚΩΔ_ΕΡΓΟΥ, Κ_ΤΜΗΜΑ, ΕΠΙΘΕΤΟ, ΗΜ_ΓΕΝ, ΔΙΕΥΘΥΝΣΗ FROM ΕΡΓΟ, ΤΜΗΜΑ, ΕΡΓΑΖΟΜΕΝΟΣ WHERE Κ_ΤΜΗΜΑ=ΚΩΔ_ΤΜΗΜ AND ΔΙΕΥΘΥΝΤΗΣ=ΑΡ_ΤΑΥΤ AND ΤΟΠ_ΕΡΓΟΥ='Stafford' Στην ερώτηση, δύο συνθήκες συνένωσης Η συνθήκη συνένωσης Κ_ΤΜΗΜΑ=ΚΩΔ_ΤΜΗΜ συσχετίζει ένα έργο με το τμήμα που το ελέγχει Η συνθήκη συνένωσης ΔΙΕΥΘΥΝΤΗΣ=ΑΡ_ΤΑΥΤ συσχετίζει το τμήμα που ελέγχει με τον εργαζόμενο που το διευθύνει Σεμινάριο 5, SQL 22

24 Ψευδώνυμα, * και DISTINCT, Κενή πρόταση WHERE Στην SQL, μπορούμε να χρησιμοποιήσουμε το ίδιο όνομα για ένα (ή περισσότερα) γνωρίσματα αν τα γνωρίσματα είναι σε διαφορετικές σχέσεις Μια ερώτηση που αναφέρεται σε ένα ή περισσότερα γνωρίσματα με το ίδιο όνομα πρέπει να χαρακτηρίζει το όνομα του γνωρίσματος με το όνομα της σχέσης προτάσσοντας το όνομα της σχέσης στο όνομα του γνωρίσματος Παράδειγμα: ΕΡΓΑΖΟΜΕΝΟΣ.ΕΠΙΘΕΤΟ, ΤΜΗΜΑ.Τ_ΟΝΟΜΑ Σεμινάριο 5, SQL 23

25 Ψευδώνυμα Μερικές ερωτήσεις χρειάζεται να αναφερθούν στην ίδια σχέση δύο φορές Στην περίπτωση αυτή, δίνονται ψευδώνυμα στη σχέση αυτή Ερώτηση 8: Για κάθε εργαζόμενο να βρεθούν το όνομα και το επίθετό του, καθώς και το όνομα και το επίθετο του άμεσου προϊσταμένου του. Ε8: SELECT E.ΟΝΟΜΑ, E.ΕΠΙΘΕΤΟ, S.ΟΝΟΜΑ, S.ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ E S WHERE E.ΠΡΟΙΣΤΑΜΕΝΟΣ=S.ΑΡ_ΤΑΥΤ Στην Ε8, τα εναλλακτικά ονόματα E και S της σχέσης ονομάζονται ψευδώνυμα ή μεταβλητές πλειάδες για τη σχέση ΕΡΓΑΖΟΜΕΝΟΣ Οι E και S μπορούν να θεωρηθούν σαν δύο διαφορετικά αντίγραφα της ΕΡΓΑΖΟΜΕΝΟΣ η E αντιπροσωπεύει εργαζόμενους σε ρόλο υφισταμένων και η S αντιπροσωπεύει εργαζόμενους σε ρόλο προϊσταμένων. Σεμινάριο 5, SQL 24

26 Ψευδώνυμα (συνεχ.) Για ευκολία μπορούν να χρησιμοποιηθούν ψευδώνυμα σε οποιαδήποτε SQL ερώτηση Για τον προσδιορισμό ψευδωνύμων μπορεί να χρησιμοποιηθεί επίσης η λέξη κλειδί AS Ε8: SELECT E.ΟΝΟΜΑ, E.ΕΠΙΘΕΤΟ, S.ΟΝΟΜΑ, S.ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ AS E, ΕΡΓΑΖΟΜΕΝΟΣ AS S WHERE E.ΠΡΟΙΣΤΑΜΕΝΟΣ=S.ΑΡ_ΤΑΥΤ Σεμινάριο 5, SQL 25

27 ΜΗ ΥΠΑΡΞΗ ΠΡΟΤΑΣΗΣ WHERE Η μη ύπαρξη της πρότασης WHERE σημαίνει ότι δεν υπάρχει συνθήκη επομένως, επιλέγονται όλες οι πλειάδες από τις σχέσεις της πρότασης FROM Είναι ισοδύναμο με την συνθήκη WHERE TRUE Ερώτηση 9: Να επιλεγούν όλοι οι AP_TAYT από την EPΓAZOMENOΣ. Ε9: SELECT ΑΡ_ΤΑΥΤ FROM ΕΡΓΑΖΟΜΕΝΟΣ Αν στην πρόταση FROM ορίζονται περισσότερες από μια σχέσεις και δεν υπάρχει συνθήκη συνένωσης, τότε επιλέγεται το ΚΑΡΤΕΣΙΑΝΟ ΓΙΝΟΜΕΝΟ των πλειάδων Σεμινάριο 5, SQL 26

28 ΜΗ ΥΠΑΡΞΗ ΠΡΟΤΑΣΗΣ WHERE (συν.) Παράδειγμα: Ε10: SELECT ΑΡ_ΤΑΥΤ, Τ_ΟΝΟΜΑ FROM ΕΡΓΑΖΟΜΕΝΟΣ, ΤΜΗΜΑ Είναι πολύ σημαντικό να μην παραβλεφθεί ο προσδιορισμός οποιονδήποτε συνθηκών επιλογής και συνένωσης στην WHERE-πρόταση διαφορετικά, μπορεί να έχουμε λάθος αποτέλεσμα ή μεγάλες σχέσεις. Σεμινάριο 5, SQL 27

29 ΧΡΗΣΗ ΤΟΥ * Για ανάκτηση τις τιμές όλων των γνωρισμάτων των επιλεγμένων πλειάδων χρησιμοποιείται ένας *, που σημαίνει για όλα τα γνωρίσματα Παραδείγματα: Ε1Γ: SELECT * FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE ΑΡΙΘ_Τ=5 Ε1Δ: SELECT * FROM ΕΡΓΑΖΟΜΕΝΟΣ, ΤΜΗΜΑ WHERE Τ_ΟΝΟΜΑ='Research' AND ΑΡΙΘ_Τ=ΚΩΔ_ΤΜΗΜ Σεμινάριο 5, SQL 28

30 ΧΡΗΣΗ ΤΗΣ DISTINCT Η SQL δεν αντιμετωπίζει μια σχέση σαν ένα σύνολο μπορούν να εμφανισθούν διπλότυπες πλειάδες Για απαλοιφή διπλότυπων πλειάδων στο αποτέλεσμα μιας ερώτησης, χρησιμοποιείται η λέξη κλειδί DISTINCT Για παράδειγμα, το αποτέλεσμα της Ε11 μπορεί να περιέχει διπλότυπες τιμές ΜΙΣΘΟΣ ενώ η Ε11A δεν έχει διπλότυπες τιμές Ε11: SELECT ΜΙΣΘΟΣ FROM ΕΡΓΑΖΟΜΕΝΟΣ Ε11A: SELECT DISTINCT ΜΙΣΘΟΣ FROM ΕΡΓΑΖΟΜΕΝΟΣ Σεμινάριο 5, SQL 29

31 ΠΡΑΞΕΙΣ ΣΥΝΟΛΩΝ Η SQL έχει άμεσα ενσωματωμένες κάποιες πράξεις συνόλων Υπάρχει η πράξη της ένωσης (UNION), και σε μερικές εκδόσεις της SQL υπάρχουν οι πράξεις της διαφοράς συνόλων (MINUS) και της τομής (INTERSECT) Οι σχέσεις που προκύπτουν από αυτές τις πράξεις συνόλων είναι σύνολα πλειάδων από το αποτέλεσμα απαλείφονται οι διπλότυπες πλειάδες Οι πράξεις των συνόλων εφαρμόζονται μόνο σε σχέσεις συμβατές προς την ένωση θα πρέπει οι δύο σχέσεις να έχουν τα ίδια γνωρίσματα και θα πρέπει τα γνωρίσματα να εμφανίζονται με την ίδια σειρά. Σεμινάριο 5, SQL 30

32 ΠΡΑΞΕΙΣ ΣΥΝΟΛΩΝ (συν.) Ερώτηση 4: Bρείτε τη λίστα όλων των κωδικών έργων στα οποία εμφανίζονται εργαζόμενοι με επίθετο Smith, είτε ως απασχολούμενοι σε ένα έργο είτε ως διευθυντές του τμήματος που ελέγχει το έργο αυτό. Ε4: (SELECT DISTINCT ΚΩΔ_ΕΡΓΟΥ FROM ΕΡΓΟ, ΤΜΗΜΑ, ΕΡΓΑΖΟΜΕΝΟΣ WHERE Κ_ΤΜΗΜΑ=ΚΩΔ_ΤΜΗΜ AND ΔΙΕΥΘΥΝΤΗΣ=ΑΡ_ΤΑΥΤ AND ΕΠΙΘΕΤΟ='Smith') UNION (SELECT DISTINCT KΩΔ_EPΓOY FROM ΕΡΓΟ, ΑΠΑΣΧΟΛΗΣΗ, ΕΡΓΑΖΟΜΕΝΟΣ WHERE KΩΔ_EPΓOY=K_EPΓO AND E_APTAYT=AP_TAYT AND ΕΠΙΘΕΤΟ='Smith') Σεμινάριο 5, SQL 31

33 ΕΜΦΩΛΕΥΣΗ ΕΡΩΤΗΣΕΩΝ Σε μια πρόταση WHERE μιας ερώτησης μπορεί να υπάρχει μια άλλη πλήρης SELECT ερώτηση, που ονομάζεται μια εμφωλευμένη ερώτηση, ενώ η ερώτηση στην οποία περικλείεται λέγεται εξωτερική ερώτηση Πολλές από τις μέχρι τώρα ερωτήσεις μπορούν εναλλακτικά να γραφούν με χρήση εμφώλευσης Ερώτηση 1: Να βρεθούν το όνομα και η διεύθυνση όλων των εργαζομένων στο τμήμα Research Ε1: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΔΙΕΥΘΥΝΣΗ FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE ΑΡΙΘ_Τ IN (SELECT ΚΩΔ_ΤΜΗΜ FROM ΤΜΗΜΑ WHERE Τ_ΟΝΟΜΑ='Research') Σεμινάριο 5, SQL 32

34 ΕΜΦΩΛΕΥΣΗ ΕΡΩΤΗΣΕΩΝ (συν.) Η εμφωλευμένη ερώτηση επιλέγει τον κωδικό του τμήματος 'Research'. Η εξωτερική ερώτηση επιλέγει μια πλειάδα ΕΡΓΑΖΟΜΕΝΟΣ αν η τιμή της ΑΡΙΘ_Τ είναι στο αποτέλεσμα της εμφωλευμένης Ο τελεστής σύγκρισης IN συγκρίνει μια τιμή v με ένα σύνολο (ή πολυσύνολο) τιμών V, και αποτιμάται σε TRUE αν το v είναι ένα από τα στοιχεία του V Γενικά, μπορούμε να έχουμε πολλά επίπεδα εμφωλευμένων ερωτήσεων Μια αναφορά σε ένα γνώρισμα σχέσης που δεν προσδιορίζεται αφορά την πιο εσωτερικά εμφωλευμένη ερώτηση Στο παράδειγμα αυτό, η εμφωλευμένη ερώτηση δεν συσχετίζεται με την εξωτερική ερώτηση. Σεμινάριο 5, SQL 33

35 ΣΥΣΧΕΤΙΣΜΕΝΕΣ ΕΜΦΩΛΕΥΜΕΝΕΣ ΕΡΩΤΗΣΕΙΣ Αν μια συνθήκη στην WHERE-πρόταση μιας εμφωλευμένης ερώτησης αναφέρεται σε ένα γνώρισμα μιας σχέσης που ορίζεται στην εξωτερική ερώτηση, λέμε ότι οι δύο σχέσεις είναι συσχετισμένες Το αποτέλεσμα μιας συσχετισμένης εμφωλευμένης ερώτησης είναι διαφορετικό για κάθε πλειάδα (ή συνδυασμό πλειάδων) της(των) σχέσης(ων) της εξωτερικής ερώτησης Ερώτηση 12: Να ανακτηθεί το όνομα και το επίθετο κάθε εργαζόμενου με ένα εξαρτώμενο μέλος με το ίδιο όνομα με τον εργαζόμενο. Ε12: SELECT E.ΟΝΟΜΑ, E.ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ AS E WHERE E.ΑΡ_ΤΑΥΤ IN (SELECT Ε_ΑΡΤΑΥΤ FROM ΕΞΑΡΤΩΜΕΝΟΣ WHERE Ε_ΑΡΤΑΥΤ =E.ΑΡ_ΤΑΥΤ AND E.ΟΝΟΜΑ=ΟΝΟΜΑ_ΕΞΑΡΤΩΜΕΝΟΥ) Σεμινάριο 5, SQL 34

36 ΣΥΣΧΕΤΙΣΜΕΝΕΣ ΕΜΦΩΛΕΥΜΕΝΕΣ ΕΡΩΤΗΣΕΙΣ (συν) Στην Ε12, η εμφωλευμένη ερώτηση έχει διαφορετικό αποτέλεσμα στην εξωτερική ερώτηση Μια εμφωλευμένη ερώτηση με SELECT... FROM... WHERE... μπλοκς και χρήση των τελεστών σύγκρισης = ή IN μπορεί πάντα να γραφεί σαν μια απλή ερώτηση ενός μπλοκ. Για παράδειγμα, η Ε12 μπορεί να γραφεί σαν Ε12A Ε12A: SELECT E.ΟΝΟΜΑ, E.ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ E, ΕΞΑΡΤΩΜΕΝΟΣ D WHERE E.ΑΡ_ΑΤΑΥΤ=D.ΑΡΤΑΥΤ AND E.ΟΝΟΜΑ=D.ΟΝΟΜΑ_ΕΞΑΡΤΩΜΕΝΟΥ Σεμινάριο 5, SQL 35

37 ΣΥΣΧΕΤΙΣΜΕΝΕΣ ΕΜΦΩΛΕΥΜΕΝΕΣ ΕΡΩΤΗΣΕΙΣ (συν) Η αρχική SQL όπως ορίστηκε για το SYSTEM R έχει και τον τελεστή σύγκρισης CONTAINS, που χρησιμοποιείται σε συνδυασμό με εμφωλευμένες συσχετισμένες ερωτήσεις Ο τελεστής αυτός εγκαταλείφτηκε από τη γλώσσα, πιθανόν λόγω δυσκολίας για αποτελεσματική υλοποίηση Οι περισσότερες υλοποιήσεις της SQL δεν υποστηρίζουν αυτόν τον τελεστή Ο τελεστής CONTAINS συγκρίνει δύο σύνολα τιμών, και αποτιμάται σε TRUE αν το ένα σύνολο περιέχει όλες τις τιμές του άλλου συνόλου Που θυμίζει την πράξη της διαίρεσης στην άλγεβρα Σεμινάριο 5, SQL 36

38 ΣΥΣΧΕΤΙΣΜΕΝΕΣ ΕΜΦΩΛΕΥΜΕΝΕΣ ΕΡΩΤΗΣΕΙΣ (συν) Ερώτηση 3: Nα βρεθεί το ονοματεπώνυμο κάθε εργαζόμενου που εργάζεται σε όλα τα έργα που ελέγχονται από το τμήμα 5 Ε3: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE ((SELECT Κ_ΕΡΓΟ FROM ΑΠΑΣΧΟΛΗΣΗ WHERE ΑΡ_ΤΑΥΤ=E_ΑΡΤΑΥΤ) CONTAINS (SELECT ΚΩΔ_ΕΡΓΟΥ FROM ΕΡΓΟ WHERE Κ_ΤΜΗΜΑ=5) ) Σεμινάριο 5, SQL 37

39 ΣΥΣΧΕΤΙΣΜΕΝΕΣ ΕΜΦΩΛΕΥΜΕΝΕΣ ΕΡΩΤΗΣΕΙΣ (συν) Στην Ε3, η δεύτερη εμφωλευμένη ερώτηση, που δεν συσχετίζεται με την εξωτερική ερώτηση, ανακτά τους κωδικούς όλων των έργων of all projects controlled by department 5 Η πρώτη εμφωλευμένη ερώτηση, που συσχετίζεται, τους κωδικούς των έργων που απασχολείται ο εργαζόμενος, που είναι διαφορετικοί για κάθε πλειάδα εργαζόμενου λόγω της συσχέτισης. Σεμινάριο 5, SQL 38

40 Η ΣΥΝΑΡΤΗΣΗ EXISTS Η EXISTS χρησιμοποιείται για να ελεγχθεί αν το αποτέλεσμα μιας συσχετισμένης εμφωλευμένης ερώτησης είναι κενό (δεν περιέχει πλειάδες) ή όχι Μπορούμε να γράψουμε της ερώτηση Ε12 με εναλλακτική μορφή που χρησιμοποιεί την EXISTS όπως η Ε12B Σεμινάριο 5, SQL 39

41 Η ΣΥΝΑΡΤΗΣΗ EXISTS (συν.) Ερώτηση 12: Να ανακτηθεί το όνομα και το επίθετο κάθε εργαζόμενου με ένα εξαρτώμενο μέλος με το ίδιο όνομα με τον εργαζόμενο. Ε12B: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE EXISTS (SELECT * FROM ΕΞΑΡΤΩΜΕΝΟΣ WHERE ΑΡ_ΤΑΥΤ=E_ΑΡΤΑΥΤ AND ΟΝΟΜΑ=ΟΝΟΜΑ_ΕΞΑΡΤΩΜΕΝΟΥ) Σεμινάριο 5, SQL 40

42 Η ΣΥΝΑΡΤΗΣΗ EXISTS (συν.) Ερώτηση 6: Να ανακτηθούν το όνομα και το επίθετο όσων δεν έχουν εξαρτώμενους. Ε6: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE NOT EXISTS (SELECT * FROM ΕΞΑΡΤΩΜΕΝΟΣ WHERE ΑΡ_ΤΑΥΤ=E_ΑΡΤΑΥΤ) Στην Ε6, η συσχετισμένη εμφωλευμένη ερώτηση ανακτά όλες τις πλειάδες ΕΞΑΡΤΩΜΕΝΟΣ που σχετίζονται με μια πλειάδα ΕΡΓΑΖΟΜΕΝΟΣ. Αν δεν υπάρχουν, επιλέγεται η πλειάδα ΕΡΓΑΖΟΜΕΝΟΣ Η EXISTS είναι απαραίτητη για τις εκφραστικές δυνατότητες της SQL Σεμινάριο 5, SQL 41

43 ΡΗΤΑ ΣΥΝΟΛΑ Είναι επίσης δυνατόν να χρησιμοποιηθεί ρητά (απαριθμήσιμο) σύνολο τιμών στην πρόταση WHERE αντί μιας εμφωλευμένης ερώτησης Ερώτηση 13: Να ανακτηθούν οι αριθμοί ταυτότητας όλων των εργαζομένων που απασχολούνται στα έργα με κωδικούς 1, 2, ή 3. Ε13: SELECT DISTINCT E_ΑΡΤΑΥΤ FROM ΑΠΑΣΧΟΛΗΣΗ WHERE Κ_ΕΡΓΟ IN (1, 2, 3) Σεμινάριο 5, SQL 42

44 ΤΙΜΕΣ NULL ΣΕ SQL ΕΡΩΤΗΣΕΙΣ Η SQL υποστηρίζει ερωτήσεις που ελέγχουν αν μια τιμή είναι NULL (δεν έχει καταγραφεί, ή δεν ορίζεται ή δεν ισχύει) Η SQL χρησιμοποιεί την IS ή την IS NOT για σύγκριση τιμών NULL επειδή θεωρεί κάθε NULL τιμή διακριτή από τις άλλες NULL τιμές, έτσι δεν είναι κατάλληλη η σύγκριση ισότητας. Ερώτηση 14: Να ανακτηθούν το όνομα και το επίθετο των εργαζομένων που δεν έχουν προϊσταμένους. Ε14: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ FROM ΕΡΑΓΑΖΟΜΕΝΟΣ WHERE ΠΡΟΙΣΤΑΜΕΝΟΣ IS NULL Σημείωση: Αν ορίζεται μια συνθήκη συνένωσης, οι πλειάδες με τιμές NULL στα γνωρίσματα συνένωσης δεν συμπεριλαμβάνονται στο αποτέλεσμα. Σεμινάριο 5, SQL 43

45 Σχέσεις Συνένωσης στην SQL2 Μπορούμε να προσδιορίσουμε «μια σχέση συνένωσης» στην πρόταση FROM Μοιάζει με οποιαδήποτε άλλη σχέση αλλά είναι το αποτέλεσμα μιας συνένωσης Επιτρέπει στον χρήστη να ορίζει διαφορετικούς τύπους συνένωσης (κανονικές «θήτα» JOIN, NATURAL JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, CROSS JOIN, κλπ) Σεμινάριο 5, SQL 44

46 Σχέσεις Συνένωσης στην SQL2 (συν.) Παραδείγματα: Ε8: SELECT E.ΟΝΟΜΑ, E.ΕΠΙΘΕΤΟ, S.ΟΝΟΜΑ, S.ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ E S WHERE E.ΠΡΟΙΣΤΑΜΕΝΟΣ=S.ΑΡ_ΤΑΥΤ Μπορεί να γραφτεί: Ε8: SELECT E.ΟΝΟΜΑ, E.ΕΠΙΘΕΤΟ, S.ΟΝΟΜΑ,S.ΕΠΙΘΕΤΟ FROM (ΕΡΓΑΖΟΜΕΝΟΣ E LEFT OUTER JOIN ΕΡΓΑΖΟΜΕΝΟΣ ON E.ΠΡΟΙΣΤΑΜΕΝΟΣ=S.ΑΡ_ΤΑΥΤ) Σεμινάριο 5, SQL 45

47 Σχέσεις Συνένωσης στην SQL2 (συν.) Παραδείγματα: Ε1: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΔΙΕΥΘΥΝΣΗ FROM ΕΡΓΑΖΟΜΕΝΟΣ, ΤΜΗΜΑ WHERE Τ_ΟΝΟΜΑ='Research' AND ΚΩΔ_ΤΜΗΜ=ΑΡΙΘ_Τ Μπορεί να γραφεί ως: Ε1: SELECT FNAME, LNAME, A ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΔΙΕΥΘΥΝΣΗ FROM (ΕΡΓΑΖΟΜΕΝΟΣ JOIN ΤΜΗΜΑ ON ΚΩΔ_ΤΜΗΜ=ΑΡΙΘ_Τ) WHERE Τ_ΟΝΟΜΑ='Research ή σαν: Ε1: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΔΙΕΥΘΥΝΣΗ FROM (ΕΡΓΑΖΟΜΕΝΟΣ NATURAL JOIN ΤΜΗΜΑ AS ΤΜΗΜ(Τ_ΟΝΟΜΑ, ΑΡΙΘ_Τ, ΔΙΕΥΘ, ΗΜΕΡ_ΕΝΑΡ) WHERE Τ_ΟΝΟΜΑ='Research' Σεμινάριο 5, SQL 46

48 Σχέσεις Συνένωσης στην SQL2 (συν.) Άλλο παράδειγμα: Η Ε2 θα μπορούσε να γραφεί σαν εδώ έχουμε πολλαπλή συνένωση πινάκων Ε2: SELECT ΚΩΔ_ΕΡΓΟΥ, Κ_ΤΜΗΜΑ, ΕΠΙΘΕΤΟ, ΗΜ_ΓΕΝ, ΔΙΕΥΘΥΝΣΗ FROM (ΕΡΓΟ JOIN ΤΜΗΜΑ ON Κ_ΤΜΗΜΑ=ΚΩΔ_ΤΜΗΜ) JOIN ΕΡΓΑΖΟΜΕΝΟΣ ON ΔΙΕΥΘΥΝΤΗΣ=ΑΡ_ΑΤΑΥΤ) ) WHERE ΤΟΠ_ΕΡΓΟΥ='Stafford' Σεμινάριο 5, SQL 47

49 ΣΥΝΑΘΡΟΙΣΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Είναι οι COUNT, SUM, MAX, MIN, και AVG Ερώτηση 15: Να βρεθεί ο μέγιστος μισθός, ο ελάχιστος μισθός, και ο μέσος μισθός των εργαζομένων. Ε15: SELECT MAX(ΜΙΣΘΟΣ), MIN(ΜΙΣΘΟΣ), AVG(ΜΙΣΘΟΣ) FROM ΕΡΓΑΖΟΜΕΝΟΣ Μερικές υλοποιήσεις της SQL μπορεί να μην επιτρέπουν περισσότερες από μια συναρτήσεις στην SELECT-πρόταση Σεμινάριο 5, SQL 48

50 ΣΥΝΑΘΡΟΙΣΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ (συν.) Ερώτηση 16: Να βρεθεί ο μέγιστος μισθός, ο ελάχιστος μισθός, και ο μέσος μισθός των εργαζομένων που εργάζονται στο τμήμα 'Research'. Ε16: SELECT MAX(ΜΙΣΘΟΣ), MIN(ΜΙΣΘΟΣ), AVG(ΜΙΣΘΟΣ) FROM EMPLOYEE, DEPARTMENT WHERE ΑΡΙΘ_Τ=ΚΩΔ_ΤΜΗΜ AND Τ_ΟΝΟΜΑ='Research' Σεμινάριο 5, SQL 49

51 ΣΥΝΑΘΡΟΙΣΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ (συν.) Ερωτήσεις 17 και 18: Nα βρεθεί ο συνολικός αριθμός των εργαζομένων στην εταιρεία (E21) και ο αριθμός των εργαζομένων στο τμήμα Research (E22). Ε17: SELECT COUNT (*) FROM ΕΡΓΑΖΟΜΕΝΟΣ Ε18: SELECT COUNT (*) FROM ΕΡΓΑΖΟΜΕΝΟΣ, ΤΜΗΜΑ WHERE ΑΡΙΘ_Τ=ΚΩΔ_ΤΜΗΜ AND Τ_ΟΝΟΜΑ='Research' Σεμινάριο 5, SQL 50

52 ΟΜΑΔΟΠΟΙΗΣΗ Σε πολλές περιπτώσεις, θέλουμε να εφαρμόσουμε τις συναθροιστικές συναρτήσεις σε υποομάδες πλειάδων σε μια σχέση Κάθε υποομάδα πλειάδων αποτελείται από το σύνολο των πλειάδων που έχουν την ίδια τιμή για τα γνωρίσματα ομαδοποίησης Η συνάρτηση εφαρμόζεται ανεξάρτητα σε κάθε υποομάδα Η SQL έχει την πρόταση GROUP BY για προσδιορισμό των γνωρισμάτων της ομάδας που πρέπει να εμφανισθούν και στην πρόταση SELECT. Σεμινάριο 5, SQL 51

53 ΟΜΑΔΟΠΟΙΗΣΗ (συν.) Ερώτηση 20: Για κάθε τμήμα να βρεθεί ο κωδικός του τμήματος, το πλήθος των εργαζομένων στο τμήμα και ο μέσος μισθός τους Ε20: SELECT ΑΡΙΘ_Τ, COUNT (*), AVG (ΜΙΣΘΟΣ) FROM ΕΡΓΑΖΟΜΕΝΟΣ GROUP BY ΑΡΙΘ_Τ Στην Ε20, οι πλειάδες της ΕΡΓΑΖΟΜΕΝΟΣ χωρίζονται σε ομάδες Κάθε ομάδα έχει την ίδια τιμή για το γνώρισμα ομαδοποίησης ΑΡΙΘ_Τ Οι συναρτήσεις COUNT και AVG εφαρμόζονται σε κάθε ομάδα πλειάδων ξεχωριστά Η πρόταση SELECT περιλαμβάνει μόνο το γνώρισμα ομαδοποίησης και τις συναρτήσεις που θα εφαρμοσθούν σε κάθε ομάδα πλειάδων. Σε συνδυασμό με την ομαδοποίηση μπορεί να χρησιμοποιηθεί μια συνθήκη συνένωσης Σεμινάριο 5, SQL 52

54 ΟΜΑΔΟΠΟΙΗΣΗ (συν.) Ερώτηση 21: Για κάθε έργο να ανακτηθεί ο κωδικός του έργου, το όνομά του, καθώς και το πλήθος των εργαζομένων που απασχολούνται στο έργο αυτό. Ε21: SELECT ΚΩΔ_ΕΡΓΟΥ, Ε_ΟΝΟΜΑ, COUNT (*) FROM ΕΡΓΟ, ΑΠΑΣΧΟΛΗΣΗ WHERE ΚΩΔ_ΕΡΓΟΥ=Κ_ΕΡΓΟ GROUP BY ΚΩΔ_ΕΡΓΟΥ, Ε_ΟΝΟΜΑ Στην περίπτωση αυτή, η ομαδοποίηση και οι συναρτήσεις εφαρμόζονται μετά την συνένωση των δύο σχέσεων Σεμινάριο 5, SQL 53

55 Η ΠΡΟΤΑΣΗ HAVING Μερικές φορές θέλουμε να ανακτήσουμε τις τιμές αυτών των συναρτήσεων μόνο για εκείνες τις ομάδες που ικανοποιούν κάποιες συνθήκες Χρησιμοποιείται η πρόταση HAVING για τον προσδιορισμό μιας συνθήκης επιλογής στις ομάδες (αντί στις πλειάδες ατομικά) Σεμινάριο 5, SQL 54

56 Η ΠΡΟΤΑΣΗ HAVING (συν.) Ερώτηση 22: Για κάθε έργο στο οποίο απασχολούνται περισσότεροι από δύο εργαζόμενοι, να ανακτηθεί ο κωδικός του έργου, το όνομά του και το πλήθος των εργαζομένων που απασχολούνται σε αυτό. Ε22: SELECT ΚΩΔ_ΕΡΓΟΥ, Ε_ΟΝΟΜΑ, COUNT(*) FROM ΕΡΓΟ, ΑΠΑΣΧΟΛΗΣΗ WHERE ΚΩΔ_ΕΡΓΟΥ=Κ_ΕΡΓΟ GROUP BY ΚΩΔ_ΕΡΓΟΥ, Ε_ΟΝΟΜΑ HAVING COUNT (*) > 2 Σεμινάριο 5, SQL 55

57 ΣΥΓΚΡΙΣΕΙΣ ΣΥΜΒΟΛΟΣΕΙΡΩΝ Ο τελεστής σύγκρισης LIKE χρησιμοποιείται για μερική σύγκριση συνόλων Χρησιμοποιούνται δύο δεσμευμένοι χαρακτήρες: το '%' (ή το '*' σε μερικές υλοποιήσεις) αντικαθιστά ένα αυθαίρετο πλήθος από χαρακτήρες και το '_' αντικαθιστά ένα χαρακτήρα Σεμινάριο 5, SQL 56

58 ΣΥΓΚΡΙΣΕΙΣ ΣΥΜΒΟΛΟΣΕΙΡΩΝ (συν.) Ερώτηση 25: Να ανακτηθούν όλοι οι εργαζόμενοι με διεύθυνση στο Houston, Texas. Εδώ, η τιμή του γνωρίσματος ΔΙΕΥΘΥΝΣΗ πρέπει να περιέχει την συμβολοσειρά 'Houston,TX. Ε25: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE ΔΙΕΥΘΥΝΣΗ LIKE '%Houston,TX%' Σεμινάριο 5, SQL 57

59 ΣΥΓΚΡΙΣΕΙΣ ΣΥΜΒΟΛΟΣΕΙΡΩΝ (συν.) Ερώτηση 26: Να βρεθούν όλοι οι εργαζόμενοι που γεννήθηκαν την δεκαετία του 50. Εδώ, το '5' πρέπει να είναι ο όγδοος χαρακτήρας της συμβολοσειράς (σύμφωνα με την μορφή της ημερομηνίας), ώστε η τιμή ΗΜ_ΓΕΝ είναι ' 5_', με την υπογράμμιση σαν θέση αυθαίρετα ενός χαρακτήρα. Ε26: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE ΗΜ_ΓΕΝ LIKE ' 5_' Ο τελεστής LIKE μας επιτρέπει να ξεπερνάμε το γεγονός ότι κάθε τιμή θεωρείτε ατομική και μη διαχωρίσιμη Επομένως, στην SQL, οι τιμές των γνωρισμάτων συμβολοσειρών δεν είναι ατομικές Σεμινάριο 5, SQL 58

60 ΑΡΙΘΜΗΤΙΚΟΙ ΤΕΛΕΣΤΕΣ Στις αριθμητικές τιμές του αποτελέσματος μιας SQL ερώτησης μπορούν να εφαρμοσθούν οι τυπικοί αριθμητικοί τελεστές '+', '-'. '*', και '/' (πρόσθεση, αφαίρεση, πολλαπλασιασμό, και διαίρεση, αντίστοιχα) Ερώτηση 27: Να βρεθούν οι μισθοί που προκύπτουν αν δοθεί αύξηση 10% σε κάθε εργαζόμενο που απασχολείται στο έργο ProductX. Ε27: SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, 1.1*ΜΙΣΘΟΣ FROM ΕΡΓΑΖΟΜΕΝΟΣ, ΑΠΑΣΧΟΛΗΣΗ, ΕΡΓΟ WHERE ΑΡ_ΤΑΥΤ=Ε_ΑΡΤΑΥΤ AND Κ_ΕΡΓΟ=ΚΩΔ_ΕΡΓΟΥ AND Ε_ΟΝΟΜΑ='ProductX' Σεμινάριο 5, SQL 59

61 ORDER BY Η πρόταση ORDER BY χρησιμοποιείται για ταξινόμηση των πλειάδων του αποτελέσματος μιας ερώτησης με βάση τις τιμές κάποιων γνωρισμάτων Ερώτηση 28: Να κατασκευαστεί μια λίστα εργαζομένων και έργων στα οποία απασχολούνται κατά διάταξη τμήματος, και σε κάθε τμήμα αλφαβητικά ως προς το επίθετο και το όνομα. Ε28: SELECT Τ_ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΟΝΟΜΑ, Ε_ΟΝΟΜΑ FROM ΤΜΗΜΑ, ΕΡΓΑΖΟΜΕΝΟΣ, ΑΠΑΣΧΟΛΗΣΗ, ΕΡΓΟ WHERE ΚΩΔ_ΤΜΗΜ=ΑΡΙΘ_Τ AND ΑΡ_ΤΑΥΤ=Ε_ΑΡΤΑΥΤ AND Κ_ΕΡΓΟ=ΚΩΔ_ΕΡΓΟΥ ORDER BY Τ_ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΟΝΟΜΑ Σεμινάριο 5, SQL 60

62 ORDER BY (συν.) Η προκαθορισμένη διάταξη είναι αύξουσα σειρά τιμών Αν θέλουμε φθίνουσα σειρά μπορούμε να χρησιμοποιήσουμε τη λέξη κλειδί DESC για να ορισθεί ρητά αύξουσα σειρά μπορούμε να χρησιμοποιήσουμε τη λέξη κλειδί ASC αν και είναι η προκαθορισμένη Σεμινάριο 5, SQL 61

63 Περίληψη των SQL Ερωτήσεων Μια ερώτηση στην SQL μπορεί να αποτελείται από μέχρι 6 προτάσεις, αλλά μόνο οι δύο πρώτες, SELECT και FROM, είναι υποχρεωτικές. Οι προτάσεις προσδιορίζονται με την παρακάτω σειρά: SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY <λίστα γνωρισμάτων> <λίστα πινάκων> <συνθήκη>] <γνώρισμα(τα) ομαδοποίησης>] <συνθήκη ομάδας>] <λίστα γνωρισμάτων>] Σεμινάριο 5, SQL 62

64 Περίληψη των SQL Ερωτήσεων (συν.) Η πρόταση SELECT παραθέτει τα γνωρίσματα ή τις συναρτήσεις που θα ανακτηθούν Η πρόταση FROM καθορίζει όλες τις σχέσεις (ή τα ψευδώνυμα) που απαιτούνται στην ερώτηση αλλά όχι όσες απαιτούνται στις εμφωλευμένες ερωτήσεις Η πρόταση WHERE καθορίζει τις συνθήκες για την επιλογή και την συνένωση πλειάδων από σχέσεις που καθορίζονται στην πρόταση FROM GROUP BY καθορίζει γνωρίσματα ομαδοποίησης HAVING καθορίζει την συνθήκη επιλογής των ομάδων ORDER BY καθορίζει την διάταξη παρουσίασης του αποτελέσματος Μια ερώτηση υπολογίζεται με πρώτα εφαρμογή της πρότασης WHERE, στη συνέχεια η GROUP BY και η HAVING, και τέλος η πρόταση SELECT Σεμινάριο 5, SQL 63

65 Ενημερώσεις στην SQL Υπάρχουν τρεις SQL εντολές για τροποποίηση της βάσης δεδομένων: INSERT, DELETE, και UPDATE Σεμινάριο 5, SQL 64

66 INSERT Στην απλούστερη μορφή της, χρησιμοποιείται για εισαγωγή πλειάδων σε μια σχέση Οι τιμές των γνωρισμάτων πρέπει να δοθούν με την ίδια σειρά που ορίσθηκαν στην εντολή CREATE TABLE Σεμινάριο 5, SQL 65

67 INSERT (συν.) Παράδειγμα: ΕΝ1: INSERT INTO ΕΡΓΑΖΟΜΕΝΟΣ VALUES ('Richard', 'K', 'Marini', ' ', '30-DEC-52', '98 Oak Forest, Katy, TX', 'M', 37000,' ', 4 ) Μια εναλλακτική μορφή της INSERT ορίζει ρητά τα ονόματα των γνωρισμάτων που αντιστοιχούν στις τιμές στη νέα πλειάδα Μπορούν να παραληφθούν γνωρίσματα με τιμή NULL Παράδειγμα: Εισαγωγή μιας νέας πλειάδα στη σχέση ΕΡΓΑΖΟΜΕΝΟΣ που ξέρουμε μόνο τα γνωρίσματα ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, και ΑΡ_ΤΑΥΤ. ΕΝ1A: INSERT INTO ΕΡΓΑΖΟΜΕΝΟΣ (ΟΝΟΜΑ, ΕΠΙΘΕΤΟ, ΑΡ_ΤΑΥΤ) VALUES ('Richard', 'Marini', ') Σεμινάριο 5, SQL 66

68 INSERT (συν.) Σημείωση: Κατά την ενεημέρωση, επιβάλλονται αυτόματα, από το ΣΔΒΔ, μόνο οι περιορισμοί που προσδιορίζονται στις εντολές της ΓΟΔ Μια άλλη παραλλαγή της INSERT επιτρέπει εισαγωγή πολλών πλειάδων που προκύπτουν από μια ερώτηση σε μια σχέση Σεμινάριο 5, SQL 67

69 INSERT (συν.) Παράδειγμα: Έστω ότι θέλουμε να δημιουργήσουμε ένα προσωρινό πίνακα που έχει το όνομα, το πλήθος των εργαζομένων, και τη συνολική μισθοδοσία για κάθε τμήμα. Δημιουργείται ένας πίνακας ΠΛΗΡ_ΤΜΗΜΑ από την ΕΝ3A, και φορτώνεται με τις πληροφορίες που ανακτώνται από τη βάση δεδομένων από την ερώτηση ΕΝ3B. ΕΝ3A: CREATE TABLE ΠΛΗΡ_ΤΜΗΜΑ (ΤΜ_ΟΝΟΜΑ VARCHAR(10), ΠΛΗΘΟΣ_ΕΡΓ INTEGER, ΟΛΙΚΟΣ_ΜΙΣΘ INTEGER); ΕΝ3B: INSERT INTO ΠΛΗΡ_ΤΜΗΜΑ (ΤΜ_ΟΝΟΜΑ, ΠΛΗΘΟΣ_ΕΡΓ, ΟΛΙΚΟΣ_ΜΙΣΘ) SELECT Τ_ΟΝΟΜΑ, COUNT (*), SUM (ΜΙΣΘΟΣ) FROM ΤΜΗΜΑ, ΕΡΓΑΖΟΜΕΝΟΣ WHERE ΚΩΔ_ΤΜΗΜ=ΑΡΙΘ_Τ GROUP BY Τ_ΟΝΟΜΑ; Σεμινάριο 5, SQL 68

70 INSERT (συν.) Σημείωση: Ο πίνακας ΠΛΗΡ_ΤΜΗΜΑ μπορεί να μην είναι ενημερωμένος αν αλλάξουμε τις πλειάδες είτε στη σχέση ΤΜΗΜΑ ή στην ΕΡΓΑΖΟΜΕΝΟΣ μετά εκτέλεση της ΕΝ3B. Πρέπει να δημιουργήσουμε μια νέα όψη (θα ορισθεί παρακάτω) για να είναι ένας τέτοιος πίνακας ενημερωμένος Σεμινάριο 5, SQL 69

71 DELETE Διαγράφει πλειάδες από μια σχέση Έχει μια πρόταση WHERE για επιλογή των πλειάδων που θα διαγραφούν Πρέπει να επιβληθεί η αναφορική ακεραιότητα Οι πλειάδες διαγράφονται μόνο από ένα πίνακα τη φορά (εκτός αν έχει ορισθεί αναφορικός περιορισμός ακεραιότητας CASCADE) Έλλειψη της πρότασης WHERE ορίζει ότι όλες οι πλειάδες της σχέσης θα διαγραφούν ο πίνακας που προκύπτει είναι κενός Το πλήθος των πλειάδων που διαγράφονται εξαρτάται από το πλήθος των πλειάδων της σχέσης που ικανοποιούν την πρόταση WHERE Σεμινάριο 5, SQL 70

72 DELETE (συν.) Παραδείγματα: ΕΝ4A: DELETE FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE ΕΠΙΘΕΤΟ='Brown' ΕΝ4B: DELETE FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE ΑΡ_ΤΑΥΤ=' ' ΕΝ4C: DELETE FROM ΕΡΓΑΖΟΜΕΝΟΣ WHERE ΑΡΙΘ_Τ IN (SELECT ΚΩΔ_ΤΜΗΜ FROM ΤΜΗΜΑ WHERE Τ_ΟΝΟΜΑ='Research') ΕΝ4D: DELETE FROM ΕΡΓΑΖΟΜΕΝΟΣ Σεμινάριο 5, SQL 71

73 UPDATE Χρησιμοποιείται για τροποποίηση τιμών γνωρισμάτων μιας ή περισσότερων πλειάδων Μια πρόταση WHERE επιλέγει τις πλειάδες που θα τροποποιηθούν Μια επιπλέον πρόταση SET καθορίζει τα γνωρίσματα που θα τροποποιηθούν και τις νέες τιμές τους Κάθε εντολή τροποποιεί πλειάδες στην ίδια σχέση Πρέπει να επιβληθούν οι αναφορικοί περιορισμοί ακεραιότητας Σεμινάριο 5, SQL 72

74 UPDATE (συν.) Παράδειγμα: Να αλλάξει η τοποθεσία και το τμήμα που ελέγχει το έργο 10 σε Bellaire και 5 αντίστοιχα. ΕΝ5: UPDATE ΕΡΓΟ SET ΤΟΠ_ΕΡΓΟΥ = 'Bellaire', Κ_ΤΜΗΜΑ = 5 WHERE ΚΩΔ_ΕΡΓΟΥ=10 Σεμινάριο 5, SQL 73

75 UPDATE (συν.) Παράδειγμα: Να πάρουν αύξηση στο μισθό 10% όλοι οι εργαζόμενοι στο τμήμα 'Research'. ΕΝ6: UPDATE ΕΡΓΑΖΟΜΕΝΟΣ SET ΜΙΣΘΟΣ = ΜΙΣΘΟΣ *1.1 WHERE ΑΡΙΘ_Τ IN (SELECT ΚΩΔ_ΤΜΗΜ FROM ΤΜΗΜΑ WHERE Τ_ΟΝΟΜΑ='Research') Σε αυτήν, η τροποποιημένη τιμή ΜΙΣΘΟΣ εξαρτάται από την αρχική τιμή ΜΙΣΘΟΣ σε κάθε πλειάδα Η αναφορά στο γνώρισμα ΜΙΣΘΟΣ δεξιά του = αφορά την παλαιά τιμή ΜΙΣΘΟΣ πριν την τροποποίηση Η αναφορά στο γνώρισμα ΜΙΣΘΟΣ αριστερά του = αφορά την νέα τιμή ΜΙΣΘΟΣ μετά την τροποποίηση Σεμινάριο 5, SQL 74

76 Σύνοψη των SQL Ερωτήσεων Μια ερώτηση στην SQL μπορεί να αποτελείται από μέχρι 6 προτάσεις, αλλά μόνο οι δύο πρώτες, SELECT και FROM, είναι υποχρεωτικές. Οι προτάσεις προσδιορίζονται με την παρακάτω σειρά: SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY <λίστα γνωρισμάτων> <λίστα πινάκων> <συνθήκη>] <γνώρισμα(τα) ομαδοποίησης>] <συνθήκη ομάδας>] <λίστα γνωρισμάτων>] Υπάρχουν τρεις SQL εντολές για τροποποίηση βάσεων δεδομένων: INSERT, DELETE, και UPDATE Σεμινάριο 5, SQL 75

Κεφάλαιο 8. SQL-99: Ορισμός Σχήματος, Περιορισμοί, και Επερωτήσεις και Όψεις

Κεφάλαιο 8. SQL-99: Ορισμός Σχήματος, Περιορισμοί, και Επερωτήσεις και Όψεις Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση, Δίαυλος Διαφάνεια 8-1 Κεφάλαιο 8 SQL-99: Ορισμός Σχήματος, Περιορισμοί, και Επερωτήσεις και Όψεις Copyright 2007 Ramez Elmasri and

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 4: Σχεσιακός Λογισμός

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 4: Σχεσιακός Λογισμός Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Σεμινάριο 4: Σχεσιακός Λογισμός Ευάγγελος Καρκαλέτσης, Αναστασία Κριθαρά, Γεώργιος Πετάσης Εργαστήριο Τεχνολογίας Γνώσεων & Λογισμικού,

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

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

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

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση Ευάγγελος Καρκαλέτσης, Αναστασία Κριθαρά, Γεώργιος Πετάσης

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

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

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

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

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

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

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

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

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

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

Copyright 2007 Ramez Elmasri and Shamkant B. NavatheΕλληνικήΈκδοση, ίαυλος. ιαφάνεια 8-1

Copyright 2007 Ramez Elmasri and Shamkant B. NavatheΕλληνικήΈκδοση, ίαυλος. ιαφάνεια 8-1 ιαφάνεια 8-1 ΣχεδιασµόςκαιΧρήση Βάσεων εδοµένων Μ.Χατζόπουλος (mike@di.uoa.gr) http://www.di.uoa.gr/~ys01 Τετάρτη & Πέµπτη 17-19 ΏρεςγραφείουΤετάρτη, Πέµπτη 16-17 και οποιαδήποτε άλλη ώρα είµαι στο γραφείο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Σεμινάριο 6: Δομές ευρετηρίων για αρχεία Ευάγγελος Καρκαλέτσης, Αναστασία Κριθαρά, Γεώργιος Πετάσης Εργαστήριο Τεχνολογίας Γνώσεων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Σεμινάριο 7: Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση Ευάγγελος Καρκαλέτσης, Αναστασία Κριθαρά, Γεώργιος Πετάσης

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

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

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

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 2: Εισαγωγή στις Βάσεις Δεδομένων

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 2: Εισαγωγή στις Βάσεις Δεδομένων Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Σεμινάριο 2: Εισαγωγή στις Βάσεις Δεδομένων Ευάγγελος Καρκαλέτσης, Αναστασία Κριθαρά, Γεώργιος Πετάσης Εργαστήριο Τεχνολογίας

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

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

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

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

Βάσεις Δεδομένων Η γλώσσα 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 ΚΥΡΙΟ ΚΛΕΙΔΙ ΦΟΙΤΗΤΗΣ ΑΜ CHAR(5) ΟΝΟΜΑ VARCHAR(20)

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

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

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

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

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

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

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

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

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

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 3: Σχεσιακή Άλγεβρα

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 3: Σχεσιακή Άλγεβρα Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Σεμινάριο 3: Σχεσιακή Άλγεβρα Ευάγγελος Καρκαλέτσης, Αναστασία Κριθαρά, Γεώργιος Πετάσης Εργαστήριο Τεχνολογίας Γνώσεων & Λογισμικού,

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

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

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

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

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

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

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

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

Βάσεις δεδομένων. (5 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (5 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Συνέχεια στη Σχεσιακή άλγεβρα Μετονομασία Καρτεσιανό γινόμενο Συνένωση Θήτα Ισότητας Φυσική 26/3/2015 Βάσεις Δεδομένων 2 (Συνέχεια)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#5. Σχεσιακό Μοντέλο

#5. Σχεσιακό Μοντέλο 22Γ901 Βάσεις Δεδομένων και Γνώσεων 9ο Εξάμηνο Κύκλου Σπουδών ΗΥ και Μεταπτυχιακός Κύκλος Σπουδών Διδάσκων: Ν. Αβούρης Β μέρος Διαφανειών μαθήματος (2005-2006) Ν. Αβούρης- Βάσεις Δεδομένων και Γνώσεων

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

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

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

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πράξεις στο Σχεσιακό Μοντέλο

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πράξεις στο Σχεσιακό Μοντέλο ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 Πράξεις Διαχείρισης Δεδομένων Σχεσιακή Άλγεβρα Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Πράξεις στο Σχεσιακό

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

Βάσεις Δεδομένων 2. Φροντιστήριο Αλγόριθμοι Επεξεργασίας και Βελτιστοποίησης Επερωτήσεων. Ημερ: 27/5/2008 Ακ.Έτος

Βάσεις Δεδομένων 2. Φροντιστήριο Αλγόριθμοι Επεξεργασίας και Βελτιστοποίησης Επερωτήσεων. Ημερ: 27/5/2008 Ακ.Έτος Βάσεις Δεδομένων 2 Φροντιστήριο Αλγόριθμοι Επεξεργασίας και Βελτιστοποίησης Επερωτήσεων Ημερ: 27/5/2008 Ακ.Έτος 2007-08 Υλοποίηση σχεσιακών πράξεων ΤΑΞΙΝΟΜΗΣΗ Εξωτερική ταξινόμηση για μεγάλα αρχεία, αποθηκευμένα

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

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

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

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

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

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

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

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

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

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

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

Βάσεις δεδομένων. (4 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (4 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Επέκταση του μοντέλου ΟΣ Κληρονομικότητα Εξειδίκευση/Γενίκευση Περιορισμοί Ιεραρχίες και πλέγματα Συνάθροιση Συνέχεια στο σχεσιακό

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

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

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

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

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

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

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

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

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

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

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

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

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΛΙΛΙΤΣΗΣ ΠΡΟΔΡΟΜΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών Βάσεων

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

SQL Data Manipulation Language

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

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

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

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

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

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

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

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL ΓΙΑΝΝΗΣ ΑΓΑΘΑΓΓΕΛΟΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ360 - ΑΡΧΕΙΑ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL SQL SQL - STRUCTURED QUERY LANGUAGE 2 Μια γλώσσα επερωτήσεων για τη διαχείριση Σχεσιακών

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

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

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

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων Σεμινάριο 7, μέρος 2 ο : Αλγόριθμοι για επεξεργασία ερωτήσεων και βελτιστοποίηση Ευάγγελος Καρκαλέτσης, Αναστασία Κριθαρά, Γεώργιος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βάσεις δεδομένων. (3 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (3 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Σχεσιακό μοντέλο δεδομένων Σχέσεις, γνωρίσματα, πλειάδες, πεδία ορισμού Πράξεις ενημέρωσης σε σχέσεις Απεικόνιση μοντέλου οντοτήτωνσυσχετίσεων

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

DELETE, UPDATE, INSERT.

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

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

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

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

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

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

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

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

DELETE, UPDATE, INSERT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Lecture 14: SQL DML I

Lecture 14: SQL DML I Department of Computer Science University of Cyprus EPL342 Databases Lecture 14: SQL DML I SQL Structured Query Language (Chapter 8.4, Elmasri-Navathe 5ED) ιδάσκων: Παναγιώτης Ανδρέου http://www.cs.ucy.ac.cy/courses/epl342

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1 Εισαγωγή Η Γλώσσα SQL Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού εδομένων Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή

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

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

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

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαυλος Διαφάνεια 15-1

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαυλος Διαφάνεια 15-1 Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαυλος Διαφάνεια 15-1 Κεφάλαιο 15 Αλγόριθμοιγια επεξεργασία ερωτήσεων και βελτιστοποίηση Copyright 2007 Ramez Elmasri and Shamkant

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

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

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

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

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

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

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

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

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

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

Ηλεκτρονικοί Υπολογιστές II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές II Εντολές ορισμού δεδομένων (DDL) στην 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

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

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

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

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

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

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

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

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

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

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

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

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

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