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

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

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

Transcript

1 SQL Βάσεις Δεδομένων

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

3 Ειδικού σκοπού γλώσσα προγραμματισμού για βάσεις δεδομένων Η standard γλώσσα για σχεσιακές βάσεις δεδομένων. Δηλωτική (declarative) (αν και έχει κάποια στοιχεία διαδικαστικού προγραμματισμού) αρχικά Sequel (Structured English Query language) στην IBM ως μέρος του System R, τώρα SQL (Stuctured Query Language) SQL-89, SQL-92, SQL-99, SQL 3

4 SQL DDL (Data Definition Language) Γλώσσα Ορισμού Δεδομένων (ΓΟΔ): ορισμός, δημιουργία, τροποποίηση και διαγραφή σχήματος την είδαμε σε προηγούμενο μάθημα DML (Data Manipulation Language) Γλώσσα Χειρισμού Δεδομένων (ΓΟΔ) εισαγωγή, τροποποίηση, διαγραφή δεδομένων - την είδαμε σε προηγούμενο μάθημα επιλογή δεδομένων (γλώσσα ερωτήσεων, query language) Προδιαγραφές ασφάλειας - χρήστες και δικαιώματα. 4

5 Διαφορές στην υποστήριξη της SQL σε διάφορα σχεσιακά ΣΔΒΔ (πχ Oracle SQL, MySQL, SQLite, 5

6 Βασική Δομή Ερώτησης 6

7 Βασική Δομή Η βασική δομή μιας ερώτησης σε SQL έχει την εξής μορφή: ονόματα γνωρισμάτων SELECT Α 1, Α 2,.., Α n FROM R 1, R 2, R m WHERE P ονόματα σχέσεων συνθήκη Ισοδύναμο του: π A1, A 2,.., A n (σ P (R 1 x R 2 x R m )) 7

8 select SELECT Α1, Α2,.., Αn FROM R 1, R 2, R m WHERE P π A1, A 2,.., A n (σ P (R 1 x R 2 x R m )) SELECT αντιστοιχεί στην πράξη της προβολής της σχεσιακής άλγεβρας Ποια γνωρίσματα θέλουμε να υπάρχουν στο αποτέλεσμα της ερώτησης. 8

9 from SELECT Α1, Α2,.., Αn FROM R 1, R 2, R m WHERE P π A1, A 2,.., A n (σ P (R 1 x R 2 x R m )) FROM αντιστοιχεί στην πράξη του καρτεσιανού γινομένου της σχεσιακής άλγεβρας. Ποιες σχέσεις θα χρησιμοποιηθούν για τον υπολογισμό του αποτελέσματος. 9

10 where SELECT Α 1, Α 2,.., Α n FROM R1, R2, Rm WHERE P π A1, A 2,.., A n (σ P (R 1 x R 2 x R m )) WHERE αντιστοιχεί στη συνθήκη της πράξης της επιλογής στη σχεσιακή άλγεβρα. Το κατηγόρημα P έχει γνωρίσματα των σχέσεων που εμφανίζονται στο FROM. 10

11 Παράδειγμα Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Ονόματα ηθοποιών που παίζουν στην ταινία Gone by the Wind SELECT Name FROM Plays WHERE Title = 'Gone by the Wind ; 11

12 select Όταν δεν υπάρχει το where, το P θεωρείται ότι ισχύει. Παράδειγμα: Ονόματα όλων των ηθοποιών που έχουν παίξει σε ταινίες Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) SELECT Name FROM Plays; 12

13 select distinct ΠΡΟΣΟΧΗ: Δε γίνεται απαλοιφή των διπλών εμφανίσεων. Η SQL επιτρέπει πολλαπλές εμφανίσεις της ίδιας πλειάδας σε μια σχέση. Μια σχέση στην SQL είναι ένα πολυσύνολο (multiset) ή θύλακας (bag). Απαλοιφή διπλών εμφανίσεων SELECT DISTINCT Name FROM Plays; Πόσες φορές εμφανίζεται το όνομα ενός ηθοποιού αν δεν υπάρχει το DISTINCT; 13

14 select * Επιλογή όλων των γνωρισμάτων SELECT * FROM Plays; Η «μικρότερη» SQL ερώτηση (μας δίνει το περιεχόμενο του αντίστοιχου πίνακα) 14

15 select Αριθμητικές πράξεις (+, -, *, /) ανάμεσα σε σταθερές ή γνωρίσματα πλειάδων SELECT Title, Year, Duration/60, Type FROM Movie; Επιστρέφει μια σχέση ίδια με τη σχέση Ταινία μόνο που το γνώρισμα διάρκεια μας δίνει τις ώρες (έχει διαιρεθεί με το 60) 15

16 where Συνθήκη του where Λογικοί τελεστές: and, or, not Τελεστές σύγκρισης: <, <=, >, >=, =, <>, between, not between ανάμεσα σε αριθμητικές εκφράσεις, συμβολοσειρές (strings), και ειδικούς τύπους. 16

17 Παράδειγμα Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Τον τίτλο όλων των ταινιών που γυρίστηκαν μετά το 1995 και είναι ασπρόμαυρες SELECT DISTINCT Title FROM Movie WHERE Year > 1995 AND Type = 'Ασπρόμαυρη ; 17

18 Παράδειγμα Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Χρήση του between : SELECT DISTINCT Title FROM Movie WHERE Year BETWEEN 1990 AND 1995; αντί του SELECT DISTINCT Title FROM Movie WHERE Year >= 1990 AND Year <= 1995; 18

19 Βασική Δομή Όταν το ίδιο γνώρισμα εμφανίζεται στο σχήμα περισσότερων από μια σχέσεων, τότε διάκριση βάση του συμβολισμού: <όνομα-σχέσης>. <όνομα-γνωρίσματος> 19

20 Παράδειγμα Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα φυσικής συνένωσης: Tους ηθοποιούς (το όνομα τους) που γεννήθηκαν πριν το 1950 και έπαιξαν σε ταινίες μετά το 2010 SELECT DISTINCT Name FROM Plays, Actor WHERE Actor.Year-of-Birth < 1950 AND Play.Year > 2010 AND Actor.Name = Plays.Name; Προσοχή στις συνθήκες συνένωσης 20

21 Παράδειγμα Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα φυσικής συνένωσης: Τους ηθοποιούς που παίζουν σε ασπρόμαυρες ταινίες SELECT DISTINCT Name FROM Plays, Movie WHERE Type = Ασπρόμαυρη AND Plays.Title = Movie.Title AND Plays.Year = Movie.Year Συνθήκη συνένωσης 21

22 Βασική Δομή (επανάληψη) Η βασική δομή μιας ερώτησης σε SQL έχει την εξής μορφή: ονόματα γνωρισμάτων SELECT DISTINCT Α 1, Α 2,.., Α n FROM R 1, R 2, R m ονόματα σχέσεων WHERE P συνθήκη Ισοδύναμο του: π A1, A 2,.., A n (σ P (R 1 x R 2 x R m )) 22

23 Βασική Δομή (επανάληψη) Select Διαγραφή διπλότιμων: SELECT DISTINCT SELECT * (όλα τα γνωρίσματα) Συνθήκη του where Λογικοί τελεστές: and, or, not Τελεστές σύγκρισης: <, <=, >, >=, =, <>, between, not between ανάμεσα σε αριθμητικές εκφράσεις, συμβολοσειρές (strings), και ειδικούς τύπους. Τα αποτελέσματα μιας ερώτησης ΔΕΝ αποθηκεύονται 23

24 Παραδείγματα Pizza(Name, Ingredient) Likes(Student, Ingredient) 1. Όλα τα συστατικά που αρέσουν σε φοιτητές 2. Τα συστατικά που αρέσουν στον φοιτητή Δημήτρη 3. Τα συστατικά της πίτσας Σπέσιαλ 4. Τις πίτσες που έχουν συστατικά που αρέσουν στον φοιτητή Δημήτρη 24

25 Παράδειγμα Pizza Name Vegetarian Vegetarian Χαβάη Χαβάη Σπέσιαλ Σπέσιαλ Σπέσιαλ Ελληνική Ingredient μανιτάρι ελιά ανανάς ζαμπόν ζαμπόν μπέικον μανιτάρι ελιά Likes Student Δημήτρης Κώστας Μαρία Κατερίνα Μαρία Δημήτρης Μαρία Ingredient μανιτάρι ζαμπόν ελιά μανιτάρι ζαμπόν μπέικον ανανάς 25

26 SQL Περισσότερα για τη γλώσσα ερωτήσεων - Πράξεις με Συμβολοσειρές - Διάταξη Πλειάδων - Αλλαγή Ονόματος - Μεταβλητές Πλειάδων - Η τιμή null 26

27 Πράξεις με συμβολοσειρές Η πιο συνηθισμένη πράξη είναι ταίριασμα προτύπων: % ταιριάζει οποιαδήποτε συμβολοσειρά _ ταιριάζει οποιοδήποτε χαρακτήρα Γίνεται διάκριση ανάμεσα σε κεφαλαία και μικρά Σύγκριση χρησιμοποιώντας το LIKE, NOT LIKE 27

28 Πράξεις με συμβολοσειρές Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Οι τίτλοι όλων των ταινιών που περιέχουν τη λέξη Θάλασσα SELECT DISTINCT Title FROM Movies WHERE Title LIKE %Θάλασσα% ; Πολλές ακόμα πράξεις διαθέσιμες. 28

29 Διάταξη Πλειάδων Χρήση του ORDER BY ώστε οι πλειάδες στο αποτέλεσμα να είναι ταξινομημένες με βάση το αντίστοιχο γνώρισμα Default: αύξουσα διάταξη SELECT DISTINCT Title, Year FROM Plays WHERE Name = Robert De Niro ORDER BY Year; 29

30 Διάταξη Πλειάδων Default: αύξουσα διάταξη Αλλά και άμεσος προσδιορισμός χρησιμοποιώντας το ASC (αύξουσα) DESC (φθίνουσα). Επίσης, ταξινόμηση με βάση πολλά γνωρίσματα. ή το Παράδειγμα: SELECT * FROM Movie ORDER BY Year DESC, Title ASC; Η ταξινόμηση είναι δαπανηρή λειτουργία. 30

31 Περιορισμός μεγέθους αποτελέσματος Περιορισμό του μεγέθους του αποτελέσματος με χρήση του LIMIT <k> Σε συνδυασμό ή όχι με το order by: αν δεν υπάρχει το order by το limit k μας δίνει κάποιες τυχαίες k πλειάδες από το αποτέλεσμα αν υπάρχει το order by μας δίνει τις πρώτες k SELECT Title, Year FROM Plays WHERE Name = Robert De Niro ORDER BY Year DESC LIMIT 8; 8 από τις πιο πρόσφατες -- αν δεν υπάρχει το order by, δίνει 8 τυχαίες 31

32 Αλλαγή Ονόματος Τα ονόματα των γνωρισμάτων στο αποτέλεσμα είναι αυτά των σχέσεων στην ερώτηση. Δυνατότητα αλλαγής του ονόματος τόσο μιας σχέσης όσο και ενός γνωρίσματος: <παλιό-όνομα> AS <νέο-όνομα> Το as μπορεί να εμφανίζεται στο select ή στο from 32

33 Αλλαγή Ονόματος Για παράδειγμα: SELECT Title, Year, Duration/60 as Hourly-Duration, Type FROM Movie; 33

34 Αλλαγή Ονόματος Χρήσιμο όταν (α) όταν έχουμε αριθμητικές εκφράσεις στο SELECT και δεν έχουν όνομα (β) όταν θέλουμε να αλλάξουμε το όνομα του γνωρίσματος στο αποτέλεσμα (γ) δυο σχέσεις του FROM έχουν γνωρίσματα με το ίδιο όνομα 34

35 Μεταβλητές πλειάδων Μια μεταβλητή πλειάδας μπορεί να οριστεί στο FROM χρησιμοποιώντας το AS: Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) SELECT DISTINCT Name FROM Plays AS Π, Movie AS Τ WHERE Π.Title = Τ.Τitle AND Π.Year = Τ.Year AND Type = Ασπρόμαυρη ; 35

36 Μεταβλητές πλειάδων Οι μεταβλητές πλειάδων είναι ιδιαίτερα χρήσιμες όταν θέλουμε να συγκρίνουμε δυο πλειάδες της ίδιας σχέσης (με συνένωση - self-join). Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Τα ονόματα όλων των ταινιών που έχουν διάρκεια μεγαλύτερη τουλάχιστον από μία ταινία που γυρίστηκε το 1995 SELECT DISTINCT T.Title FROM Movie AS T, Movie AS S WHERE T.Duration > S. Duration AND S.Year = 1995; 36

37 Η τιμή null Χρήση της λέξης κλειδί IS NULL (IS NOT NULL) σε μια συνθήκη για να ελέγξουμε αν μια τιμή είναι null. Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) SELECT Name FROM Actor WHERE Address IS NULL; 37

38 Λογική Τριών Τιμών Η SQL λογική τριών τιμών με τιμές TRUE, FALSE, και ΑΓΝΩΣΤΟ (null) Στο αποτέλεσμα του SELECT-FROM-WHERE ανήκουν μόνο οι πλειάδες που ικανοποιούν την συνθήκη του where (η έκφραση έχει την τιμή TRUE) NOT TRUE FALSE ΑΓΝΩΣΤΟ (NULL) FALSE TRUE ΑΓΝΩΣΤΟ (NULL) 38

39 Λογική Τριών Τιμών AND TRUE FALSE UNKNOWN TRUE TRUE FALSE UNKNOWN FALSE FALSE FALSE FALSE UNKOWN UNKNOWN FALSE UNKNOWN OR TRUE FALSE UNKNOWN TRUE TRUE TRUE TRUE FALSE TRUE FALSE UNKNOWN UNKOWN TRUE UNKNOWN UNKNOWN P = Q, αν ένα από τα δύο είναι UNKNOWN δίνει UNKNOWN 39

40 Η τιμή null Εμφάνιση null Σε αριθμητικές πράξεις: το αποτέλεσμα είναι null όταν οποιαδήποτε τιμή είναι null Σε συναθροιστικές συναρτήσεις: αγνοείται πλην από το count(*) 40

41 Επανάληψη Πράξεις με Συμβολοσειρές Η πιο συνηθισμένη πράξη είναι ταίριασμα προτύπων: % ταιριάζει οποιαδήποτε συμβολοσειρά _ ταιριάζει οποιοδήποτε χαρακτήρα Σύγκριση χρησιμοποιώντας το LIKE, NOT LIKE Διάταξη των Πλειάδων Χρήση του ORDER BY ώστε οι πλειάδες στο αποτέλεσμα να είναι ταξινομημένες με βάση το αντίστοιχο γνώρισμα Default: αύξουσα διάταξη, αλλά και άμεσα χρησιμοποιώντας το ASC (αύξουσα) ή το DESC (φθήνουσα). 41

42 Επανάληψη Χρήση του συμβολισμού: <όνομα-σχέσης>.<όνομα-γνωρίσματος> Δυνατότητα αλλαγής του ονόματος τόσο μιας σχέσης όσο και ενός γνωρίσματος: <παλιό-όνομα> AS <νέο-όνομα> To as μπορεί να εμφανίζεται στο select ή στο from Οι μεταβλητές πλειάδων (AS στο FROM) είναι ιδιαίτερα χρήσιμες 42

43 Βασική Δομή Ερώτησης SELECT [DISTINCT] Α 1, Α 2,.., Α n FROM R 1, R 2, R m WHERE P ORDER BY Α i LIMIT k; 43

44 Παραδείγματα Pizza(Name, Ingredient) Likes(Student, Ingredient) 1. Τρία συστατικά που αρέσουν σε φοιτητές 2. Τα συστατικά που αρέσει σε δύο τουλάχιστον φοιτητές 44

45 Πράξεις Συνόλου 45

46 Πράξεις Συνόλου Πράξεις: UNION (ένωση) INTERSECT (τομή) EXCEPT (διαφορά) εφαρμόζονται σε συμβατές σχέσεις. 46

47 Γενική Σύνταξη (SELECT FROM WHERE ) UNION/INTERSECT/EXCEPT (SELECT FROM WHERE ) 47

48 Ένωση Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Τα ονόματα των ηθοποιών που έπαιξαν σε ταινίες του 2006 ή του 2007 (SELECT Name FROM Plays WHERE Year = 2006) UNION (SELECT Name FROM Plays WHERE Year = 2007); 48

49 Ένωση Απαλοιφή διπλών εμφανίσεων, εκτός αν χρησιμοποιηθεί το UNION ALL Μέγιστος αριθμός πολλαπλών εμφανίσεων; 49

50 Ένωση Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) (SELECT Name FROM Plays WHERE Year = 2006) UNION ALL (SELECT Name FROM Plays WHERE Year = 2007); Μέγιστος αριθμός πολλαπλών εμφανίσεων; 50

51 Ένωση Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) (SELECT DISTINCT Name FROM Plays WHERE Year = 2006) UNION ALL (SELECT Name FROM Plays WHERE Year = 2007); 51

52 Τομή Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Τα ονόματα των ηθοποιών που έπαιξαν σε ταινίες του 2006 και του 2007 (SELECT Name FROM Plays WHERE Year = 2006) INTERSECT (SELECT Name FROM Plays WHERE Year = 2007); INTERSECT ALL Μέγιστος αριθμός πολλαπλών εμφανίσεων; 52

53 Διαφορά Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) (SELECT Name FROM Plays WHERE Year = 2006) EXCEPT (ή MINUS) (SELECT Name FROM Plays WHERE Year = 2007); EXCEPT ALL Μέγιστος αριθμός πολλαπλών εμφανίσεων; 53

54 Παράδειγμα (SELECT * FROM BAG1) UNION ALL (SELECT * FROM BAG2); (SELECT * FROM BAG1) EXCEPT ALL (SELECT * FROM BAG2); (SELECT * FROM BAG1) INTERSECT ALL (SELECT * FROM BAG2); 54

55 Παραδείγματα Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) 1. Ηθοποιούς που δεν έπαιξαν σε έγχρωμη ταινία 2. Τις ταινίες (τίτλο) με τον ίδιο τίτλο που γυρίστηκαν το 2005 και το 2006 (δώστε δυο ερωτήσεις μια με πράξη συνόλου και μια χωρίς) 55

56 Επανάληψη Πράξεις: UNION INTERSECT EXCEPT (minus) εφαρμόζονται σε συμβατές σχέσεις (ΠΡΟΣΟΧΗ: πρακτικά τα ΙΔΙΑ ΓΝΩΡΙΣΜΑΤΑ (ίδιο αριθμό και τύπο γνωρισμάτων) στα δύο select) Σύνταξη, (SELECT-FROM-WHERE) UNION/INTERSECT/EXCEPT (SELECT-FROM-WHERE) Απαλοιφή διπλών εμφανίσεων, εκτός αν χρησιμοποιηθεί το UNION/INTERSECT/EXCEPT ALL 56

57 Υποερωτήσεις 57

58 Υποερωτήσεις Η SQL επιτρέπει το φώλιασμα υπο-ερωτήσεων. Μια υπο-ερώτηση είναι μια έκφραση SFW που χρησιμοποιείται μέσα σε μια άλλη SFW ερώτηση ως συνθήκη στο WHERE. 58

59 Σύνταξη SELECT... FROM... WHERE <τελεστής> (SELECT... FROM... WHERE... ); Υπο-ερώτηση Η εσωτερική (φωλιασμένη) υπο-ερώτηση υπολογίζεται για κάθε γραμμή (πλειάδα) της εξωτερικής ερώτησης Στη συνέχεια θα δούμε τι μπορεί να είναι ο τελεστής 59

60 Ο τελεστής in (not in) Ελέγχει αν μια πλειάδα ανήκει (δεν ανήκει) σε ένα σύνολο από πλειάδες που έχουν προκύψει από μια έκφραση SFW. Γενική δομή: SELECT... FROM... WHERE T IN (NOT IN) (SELECT... FROM... WHERE... ); T: πλειάδα 60

61 Ο τελεστής in (not in) Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) SELECT DISTINCT Actor.Name FROM Actor WHERE Actor.Name NOT IN (SELECT Name FROM Plays); 61

62 Ο τελεστής in (not in) Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) SELECT DISTINCT Plays.Name FROM Plays WHERE (Plays.Title, Plays.Year) IN (SELECT Movie.Title, Movie.Year FROM Movie WHERE Type = Ασπρόμαυρη ); 62

63 Ο τελεστής in (not in) Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Τον τίτλο όλων των ταινιών με διάρκεια πάνω από 100 λεπτά για τις οποίες υπάρχει ταινία με το ίδιο τίτλο και διάρκεια μικρότερη από 60 λεπτά SELECT DISTINCT Title FROM Movie WHERE Duration > 100 AND Title IN (SELECT Title FROM Movie WHERE Duration < 60); (1) Η ίδια ερώτηση με πράξη συνόλου και με συνένωση (2) Τροποποίηση της ερώτησης με το IN ώστε η ταινία με διάρκεια < 60 να είναι διαφορετικού είδους 63

64 Ο τελεστής in (not in) Μπορεί να χρησιμοποιηθεί και με enumerated σύνολα Παράδειγμα: Τους τίτλους όλων των ταινιών που δεν γυρίστηκαν το 2006 και το SELECT Title FROM Movie WHERE Year NOT IN (2006, 2007); 64

65 Σύγκριση με (τιμές) συνόλου: any Ο τελεστής any (some) έχει τη σημασία του τουλάχιστον ένα από ένα σύνολο Γενική δομή: SELECT... FROM... WHERE T > ANY (SELECT... FROM... WHERE... ); T: πλειάδα 65

66 any Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Τους τίτλους όλων των ταινιών που γυρίστηκαν αργότερα από τουλάχιστον μια ασπρόμαυρη ταινία SELECT DISTINCT Title FROM Movie WHERE Year >ANY (SELECT Year FROM Movie WHERE Type = Ασπρόμαυρη ); 66

67 any Επίσης: <ANY (SOME), <=ANY (SOME), >=ANY (SOME), =ANY (SOME) (ισοδ. του IN) <>ANY (όχι ισοδ. του NOT IN) 67

68 Σύγκριση με (τιμές) συνόλου: all Ο τελεστής ALL έχει τη σημασία από όλα τα στοιχεία ενός συνόλου Παράδειγμα: Τους τίτλους όλων των ταινιών που γυρίστηκαν αργότερα από όλες τις ασπρόμαυρες ταινίες SELECT DISTINCT Title FROM Movie WHERE Year >ALL (SELECT Year FROM Movie WHERE Type = Ασπρόμαυρη ); 68

69 all Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Τι υπολογίζει το παρακάτω; SELECT Name FROM Actor WHERE Year-of-Birth <=ALL (SELECT Year-of-Birth FROM Actor, Plays WHERE Actor.Name = Plays.Name AND Title = Μανταλένα ); 69

70 all Επίσης: <ALL, <=ALL, >=ALL, =ALL, <>ALL (ισοδ. του NOT IN) 70

71 Ο τελεστής exists (not exists) Έλεγχος για άδεια σχέση: Ο τελεστής EXISTS (NOT EXISTS): επιστρέφει true ανν η υποερώτηση δεν είναι κενή (είναι κενή) Γενική δομή: SELECT... FROM... WHERE EXISTS (NOT EXISTS) (SELECT... FROM... WHERE... ); 71

72 Ο τελεστής exists (not exists) Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Οι ασπρόμαυρες ταινίες με τουλάχιστον ένα ηθοποιό SELECT Τ.Title, Τ.year FROM Movie as Τ WHERE Τ.type = Ασπρόμαυρη AND EXISTS (SELECT * FROM Plays WHERE Plays.Τitle = Τ.Τitle AND Play.Year = Τ.year); 72

73 Ο τελεστής exists (not exists) Ο τελεστής NOT EXISTS μπορεί να χρησιμοποιηθεί για έλεγχο αν η σχέση A περιέχει τη σχέση B (σχέση υπερσυνόλου/υποσυνόλου) NOT EXISTS (Β EXCEPT Α) True if and only if A B 73

74 Ο τελεστής exists (not exists) Ερώτηση Πως μπορεί να χρησιμοποιηθεί για να υπολογίσουμε τη «διαίρεση»; 74

75 Παράδειγμα Διαίρεσης Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Οι ηθοποιοί που έχουν παίξει σε όλες τις ταινίες που έχει παίξει ο George Clooney B: όλες οι ταινίες του George Clooney NOT EXISTS (Β EXCEPT Α) Α: όλες οι ταινίες του συγκεκριμένου ηθοποιού SELECT DISTINCT S.Name FROM Plays AS S WHERE NOT EXISTS ((SELECT Title, Year FROM Plays WHERE Name = George Clooney ) EXCEPT (SELECT Name, Year FROM Plays as R WHERE R.Name = S.Name)); B A uπολογισμός για κάθε S Τέτοιου είδους μεταβλητές δεν υπάρχουν στη σχεσιακή άλγεβρα 75

76 Παράδειγμα: Διαίρεση Τις πίτσες που έχουν όλα τα συστατικά που αρέσουν στον Δημήτρη ΙΔΕΑ Pizza(Name, Ingredient) Likes(Student, Ingredient) Θέλουμε τις πίτσες που τα συστατικά τους είναι υπερσύνολο των συστατικών που αρέσουν στο Δημήτρη Α: Συστατικά πίτσας Π Β: Συστατικά που αρέσουν στο Δημήτρη NOT EXISTS (B EXCEPT A) 76

77 Ο τελεστής unique (not unique) Έλεγχος για Διπλές Εμφανίσεις Ο τελεστής UNIQUE: επιστρέφει true ανν η υποερώτηση δεν έχει πολλαπλές όμοιες πλειάδες not unique Γενική δομή: SELECT... FROM... WHERE UNIQUE (NOT UNIQUE) (SELECT... FROM... WHERE... ); Μπορεί να χρησιμοποιηθεί για να ελεγχθεί αν το αποτέλεσμα είναι σύνολο ή πολυσύνολο 77

78 Ο τελεστής unique (not unique) Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Οι ηθοποιοί που έχουν παίξει ακριβώς σε μια ταινία SELECT Name FROM Plays AS T WHERE UNIQUE (SELECT R.Name FROM Plays AS R WHERE T.Name = R.Name); SELECT Name (θα το δούμε στη συνέχεια) FROM Plays GROUP BY Name HAVING COUNT(*) = 1; 78

79 Ο τελεστής unique (not unique) Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Οι ηθοποιοί που έχουν παίξει τουλάχιστον σε δύο ταινίες SELECT Name FROM Plays AS T WHERE NOT UNIQUE (SELECT R.Name FROM Plays AS R WHERE T.Name = R.Name); SELECT Name (θα το δούμε στη συνέχεια) FROM Plays GROUP BY Name HAVING COUNT(*) > 1; 79

80 Επανάληψη Ο τελεστής μπορεί να είναι: Τ IN/NOT IN (συμμετοχή σε σύνολο) Τ (>, =, κλπ) ANY (SOME)/ALL (σύγκριση με στοιχεία συνόλου) EXISTS/NOT EXISTS (έλεγχος για κενά σύνολα) UNIQUE/NOT UNIQUE (έλεγχος για διπλότιμα) 80

81 Επανάληψη Η SQL επιτρέπει το φώλιασμα υπο-ερωτήσεων. Μια υπο-ερώτηση είναι άλλη ερώτηση. μια έκφραση select-from-where που χρησιμοποιείται μέσα σε μια Γενική δομή ως συνθήκη στο WHERE: SELECT... FROM... WHERE <x> (SELECT... FROM... WHERE... ); <x> μπορεί να είναι T {=, <, <=, >, >=, <>} any(some), all T in exists, unique (όπου Τ πλειάδα) Δηλαδή διατυπώνονται ως συνθήκες στο where Υπολογισμός της υπο-ερώτησης για κάθε γραμμή (πλειάδα) της εξωτερικής ερώτησης 81

82 Επανάληψη Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παραδείγματα SELECT Movie.Title FROM Movie WHERE Duration >=All (SELECT Duration FROM Movie WHERE Type = Έγχρωμη ); SELECT Movie.Title FROM Movie WHERE Duration >SOME (SELECT Duration FROM Movie WHERE Type = Έγχρωμη ); SELECT Movie.Title FROM Movie WHERE Duration IN (SELECT Duration FROM Movie WHERE Type = Έγχρωμη ); 82

83 Επανάληψη Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παραδείγματα SELECT T.Title FROM Movie AS T WHERE EXISTS (SELECT * FROM Movie AS S WHERE T.Title = S.Title AND S.Duration > Τ.Duration); SELECT T.Title FROM Movie AS T WHERE UNIQUE (SELECT * FROM Movie AS S WHERE T.Title = S.Title AND S.Duration > Τ.Duration); 83

84 Συναθροιστικές Συναρτήσεις 84

85 Συναθροιστικές Συναρτήσεις Η SQL έχει 5 built-in συναθροιστικές συναρτήσεις (aggregate functions): Μέσος όρος: AVG(A) (μόνο σε αριθμούς) A γνώρισμα Ελάχιστο: MIN(A) Μέγιστο: MAX(A) Άθροισμα: SUM(A) (μόνο σε αριθμούς) Πλήθος: COUNT(A) 85

86 Παράδειγμα Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Μέση διάρκεια όλων των έγχρωμων ταινιών SELECT AVG(Duration) FROM Movie WHERE Type = Έγχρωμη ; Το αποτέλεσμα είναι μια σχέση με ένα γνώρισμα και μια γραμμή [μπορούμε να δώσουμε όνομα στο γνώρισμα χρησιμοποιώντας το AS] Εμφανίζονται στο SELECT 86

87 Συναθροιστικές Συναρτήσεις Παράδειγμα: Μέγιστη διάρκεια όλων των έγχρωμων ταινιών και την ταινία με τη μεγαλύτερη διάρκεια!! SELECT Title, Year, MAX(Duration) FROM Movie WHERE Type = Έγχρωμη ; Αν το SELECT συναθροιστική, τότε μόνο συναθροιστικές, - εκτός αν υπάρχει group by - δηλαδή δεν μπορούμε να προβάλουμε και άλλα γνωρίσματα σχέσεων 87

88 Συναθροιστικές Συναρτήσεις Αν θέλουμε να απαλείψουμε διπλές εμφανίσεις χρησιμοποιούμε τη λέξη-κλειδί DISTINCT στην αντίστοιχη έκφραση. SELECT SUM(DISTINCT Duration) FROM Movie; 88

89 Συναθροιστικές Συναρτήσεις Για να μετρήσουμε πόσες πλειάδες έχει μια σχέση: SELECT COUNT(*) FROM Movie; Δε μπορούμε να χρησιμοποιήσουμε το DISTINCT με το count(*). 89

90 Συναθροιστικές Συναρτήσεις: group by Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Μπορούμε να εφαρμόσουμε τις συναρτήσεις όχι μόνο σε ένα σύνολο από πλειάδες, αλλά σε ομάδες από σύνολα πλειάδων. Οι ομάδες προσδιορίζονται χρησιμοποιώντας το GROUP BY Παράδειγμα: Μέση διάρκεια ταινίας ανά είδος SELECT Type, avg(duration) FROM Movie GROUP BY Type; Στο SELECT και η τιμή του GROUP BY Τον αριθμό ταινιών που έπαιξε κάθε ηθοποιός 90

91 Συναθροιστικές Συναρτήσεις: group by Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Η ομαδοποίηση μπορεί να γίνει ως προς περισσότερα του ενός πεδία. SELECT Title, Year, COUNT(Name) FROM Plays GROUP BY Title, Year; 91

92 Συναθροιστικές Συναρτήσεις: having Μπορούμε να εφαρμόσουμε μια συνθήκη σε μια συγκεκριμένη ομάδα από πλειάδες χρησιμοποιώντας το HAVING SELECT Year, COUNT(Title) FROM Movie GROUP BY Year HAVING AVG(Duration) > 100; Η συνθήκη του HAVING εφαρμόζεται αφού σχηματιστούν οι ομάδες και υπολογιστούν οι συναθροιστικές συναρτήσεις. 92

93 Συναθροιστικές Συναρτήσεις Όταν εμφανίζονται και το WHERE και το HAVING: η συνθήκη του WHERE εφαρμόζεται πρώτα, οι πλειάδες που ικανοποιούν αυτή τη συνθήκη τοποθετούνται σε ομάδες με βάση το GROUP BY και μετά αν υπάρχει συνθήκη στο HAVING εφαρμόζεται στις ομάδες και επιλέγονται όσες ικανοποιούν τη συνθήκη 93

94 Συναθροιστικές Συναρτήσεις Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: Αριθμό ταινιών που έπαιξε κάθε ηθοποιός που γεννήθηκε μετά το 1987 αν αυτός o αριθμός είναι μεγαλύτερος του SELECT Year, count(*) FROM Plays, Actor WHERE Plays.Name = Actor.Name AND Year-of-Birth> 1987 GROUP BY Actor.Name HAVING COUNT(*) >= 5; 4 94

95 Επανάληψη Μέσος όρος: AVG (μόνο σε αριθμούς) Ελάχιστο: MIN Μέγιστο: MAX Άθροισμα: SUM (μόνο σε αριθμούς) Πλήθος: COUNT Αν θέλουμε να απαλείψουμε διπλές εμφανίσεις χρησιμοποιούμε τη λέξηκλειδί DISTINCT στην αντίστοιχη έκφραση. Μπορούμε να εφαρμόσουμε τις συναρτήσεις όχι μόνο σε ένα σύνολο από πλειάδες, αλλά σε ομάδες από σύνολα πλειάδων. Οι ομάδες προσδιορίζονται χρησιμοποιώντας το GROUP BY Μπορούμε να εφαρμόσουμε μια συνθήκη σε μια συγκεκριμένη ομάδα από πλειάδες χρησιμοποιώντας το HAVING. Η συνθήκη του HAVING εφαρμόζεται αφού σχηματιστούν οι ομάδες και υπολογιστούν οι συναθροιστικές συναρτήσεις Οι null τιμές αγνοούνται πλην του count(*) 95

96 96 Pizza Name Ingredient Vegetarian μανιτάρι Vegetarian ελιά Χαβάη ανανάς Χαβάη ζαμπόν Σπέσιαλ ζαμπόν Σπέσιαλ μπέικον Σπέσιαλ μανιτάρι Ελληνική ελιά Likes Student Ingredient Δημήτρης μανιτάρι Κώστας ζαμπόν Μαρία ελιά Κατερίνα μανιτάρι Μαρία ζαμπόν Δημήτρης μπέικον Μαρία ανανάς Serves Place Name Roma Vegetarian Roma Σπέσιαλ Napoli Vegetarian Napoli Ελληνική Pizza-Express Χαβάη Pizza-Express Σπέσιαλ Pizza-Express Ελληνική Pizza-Place Σπέσιαλ Παράδειγμα Βάσεις Δεδομένων Pizza(Name, Ingredient) Likes(Student, Ingredient) Serves(Place, Name)

97 Παράδειγμα SELECT COUNT(Name) FROM PIZZA; SELECT COUNT(DISTINCT Name) FROM PIZZA; SELECT Name, COUNT(*) FROM PIZZA GROUP BY Name; Πόσα συστατικά που αρέσουν στο Δημήτρη έχει κάθε πίτσα; Πόσες πίτσες με συστατικά που αρέσουν στον Δημήτρη σερβίρει κάθε μαγαζί; Βάσεις Δεδομένων

98 Τις πίτσες που έχουν συστατικά που αρέσουν στον φοιτητή Δημήτρη Pizza Name Vegetarian Vegetarian Χαβάη Χαβάη Σπέσιαλ Σπέσιαλ Σπέσιαλ Ελληνική Ingredient μανιτάρι ελιά ανανάς ζαμπόν ζαμπόν μπέικον μανιτάρι ελιά Likes Student Δημήτρης Κώστας Μαρία Κατερίνα Μαρία Δημήτρης Μαρία Ingredient μανιτάρι ζαμπόν ελιά μανιτάρι ζαμπόν μπέικον ανανάς P.Name P.Ingredient L.Student L.Ingredient Vegetarian μανιτάρι Δημήτρης μανιτάρι Vegetarian μανιτάρι Δημήτρης μπέικον Vegetarian ελιά Δημήτρης μανιτάρι Vegetarian ελιά Δημήτρης μπέικον Χαβάη ανανάς Δημήτρης μανιτάρι Χαβάη ανανάς Δημήτρης μπέικον Χαβάη ζαμπόν Δημήτρης μανιτάρι Χαβάη ζαμπόν Δημήτρης μπέικον Σπέσιαλ ζαμπόν Δημήτρης μανιτάρι Σπέσιαλ ζαμπόν Δημήτρης μπέικον Σπέσιαλ μπέικον Δημήτρης μανιτάρι Serves Place Roma Roma Napoli Napoli Pizza-Express Pizza-Express Pizza-Express Pizza-Place Name Vegetarian Σπέσιαλ Vegetarian Ελληνική Χαβάη Σπέσιαλ Ελληνική Σπέσιαλ Σπέσιαλ μπέικον Δημήτρης μπέικον Σπέσιαλ μανιτάρι Δημήτρης μανιτάρι Σπέσιαλ μανιτάρι Δημήτρης μπέικον Ελληνική ελιά Δημήτρης μανιτάρι Ελληνική ελιά Δημήτρης μπέικον 98

99 Παράδειγμα R A B C SELECT COUNT, SUM, AVG, MIN, MAX(DISTINCT A) FROM R; SELECT A, MAX(C) FROM R WHERE A < B GROUP BY A HAVING MAX(B) > 2; SELECT A, B, MAX(C) FROM R GROUP BY A, B; Την πλειάδα στην οποία εμφανίζεται η μεγαλύτερη τιμή του Β (δύο τρόποι) Βάσεις Δεδομένων

100 Βασική Δομή Ερώτησης SELECT Α i1, Α i2,.., Α in,, avg, FROM R 1, R 2, R m WHERE P GROUP BY Α i1, A i2,, A in HAVING P ORDER BY A j1, A j2,, A jk 100

101 Συνενώσεις 101

102 Συνένωση (join) Η SQL-92 υποστηρίζει διάφορους τύπους συνενώσεων που συνήθως χρησιμοποιούνται στο FROM, αλλά μπορούν να χρησιμοποιηθούν οπουδήποτε μπορεί να χρησιμοποιηθεί μια σχέση. Γενική σύνταξη: <όνομα-σχέσης1> <τύπος-συνένωσης> <όνομα-σχέσης2> on <συνθήκη-συνένωσης> Τύποι Συνένωσης: o o o o [INNER] JOIN LEFT [OUTER] JOIN: αριστερή εξωτερική συνένωση RIGHT [OUTER] JOIN: δεξιά εξωτερική συνένωση FULL [OUTER] JOIN: πλήρης εξωτερική συνένωση 102

103 Παράδειγμα Pizza(Name, Ingredient) Likes(Student, Ingredient) SELECT DISTINCT Likes. Student, Pizza.Name FROM (Likes INNER JOIN Pizza ON Pizza.Ingredient = Likes.Ingredient); SELECT DISTINCT Likes. Student, Pizza.Name FROM Likes, Pizza WHERE Pizza.Ingredient = Likes.Ingredient; 103

104 Παράδειγμα Pizza(Name, Ingredient) Likes(Student, Ingredient) SELECT DISTINCT Likes. Student, Pizza.Name FROM (Likes LEFT OUTER JOIN Pizza ON Likes.Ingredient = Pizza.Ingredient); SELECT DISTINCT Likes. Student, Pizza.Name FROM (Likes RIGHT OUTER JOIN Pizza ON Likes.Ingredient = Pizza.Ingredient); 104

105 Παράδειγμα Likes Student Ingredient Δημήτρης μανιτάρι Κώστας Μαρία ζαμπόν ελιά Pizza Κατερίνα μανιτάρι Name Ingredient Μαρία ζαμπόν Vegetarian μανιτάρι Δημήτρης μπέικον Vegetarian ελιά Μαρία ανανάς Χαβάη ανανάς Ανδρόνικος αντσούγια Χαβάη ζαμπόν Σπέσιαλ ζαμπόν Σπέσιαλ μπέικον Σπέσιαλ μανιτάρι Ελληνική ελιά Γιαννιώτικη μετσοβόνε 105

106 Φυσική Συνένωση (natural join) τα γνωρίσματα εμφανίζονται στο αποτέλεσμα με την εξής διάταξη: πρώτα αυτά με τα οποία έγινε η συνένωση (δηλ., αυτά που είναι κοινά (έχουν το ίδιο όνομα) και στις δύο σχέσεις), μετά τα υπόλοιπα της πρώτης σχέσης, και τέλος τα υπόλοιπα της δεύτερης σχέσης. Pizza(Name, Ingredient) Likes(Student, Ingredient) SELECT Likes.Student, Pizza.Name FROM Pizza NATURAL JOIN Likes; SELECT Likes.Student, Pizza.Name FROM Pizza, Likes WHERE Pizza.Ingredient = Likes.Ingredient; 106

107 Παράδειγμα Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) SELECT DISTINCT Movie.Name FROM Movie, Plays WHERE Plays.Tite = Movie.Title AND Plays.Year = Movie.Year and Type = Ασπρόμαυρη ; SELECT DISTINCT Movie.Name FROM (Movie JOIN Plays ON Plays.Tite = Movie.Title AND Plays.Year = Movie.Year) WHERE Type = Ασπρόμαυρη ; SELECT DISTINCT Movie.Name FROM Movie NATURAL JOIN Plays WHERE Type = Ασπρόμαυρη ; 107

108 SFW στο FOR Μπορούμε να έχουμε μια SFW ερώτηση στο FOR Pizza(Name, Ingredient) Likes(Student, Ingredient) SELECT DISTINCT P.Name FROM Pizza AS P, ((SELECT Ingredient FROM Likes WHERE Student = Δημήτρης ) EXCEPT (SELECT Ingredient FROM Likes WHERE Student = Μαρία )) AS T WHERE P.Ingredient = T.Ingredient; 108

109 Παράδειγμα R A B C Πόσες πλειάδες έχουν την μεγαλύτερη τιμή του Β; Βάσεις Δεδομένων

110 Γλώσσα Ενημερώσεις Δεδομένων 110

111 Εισαγωγή Γλώσσα Ορισμού (του σχήματος) Γλώσσα Χειρισμού Δεδομένων (ΓΧΔ) Γλώσσα Τροποποίησης Δεδομένων (εισαγωγή, διαγραφή, ενημέρωση πλειάδων) Γλώσσα Ερωτήσεων (Query Languages) 111

112 Τροποποίηση ΒΔ Τροποποιήσεις 1. Διαγραφή 2. Εισαγωγή 3. Ενημέρωση Οι εντολές αυτές μεταβάλλουν το στιγμιότυπο της βάσης δεδομένων (δηλαδή, το περιεχόμενο των πινάκων) Δείτε και τις σχετικές διαφάνειες προηγούμενου μαθήματος 112

113 Εισαγωγή δεδομένων Για να εισάγουμε δεδομένα σε μια σχέση είτε (α) προσδιορίζουμε την πλειάδα, είτε INSERT INTO R(A 1,, A n ) VALUES (v 1,, v n ); (β) γράφουμε μια ερώτηση που το αποτέλεσμα της εισάγεται στη σχέση. INSERT INTO R(A 1,, A n ) SELECT-FROM-WHERE 113

114 Εισαγωγή δεδομένων Pizza(Name, Ingredient) Likes(Student, Ingredient) Παράδειγμα Εισαγωγή μιας πίτσας στη ΠΙΤΣΑ με όνομα «Κατερίνας-special» με συστατικά τα συστατικά που αρέσουν στη φοιτήτρια Κατερίνα INSERT INTO Pizza(Pizza.Name, Pizza.Ingredient) SELECT `Κατερίνας-Special, Likes.Ingredient FROM Likes WHERE Likes.Student = Κατερίνα ; 114

115 Διαγραφή δεδομένων Μπορούμε να σβήσουμε μόνο ολόκληρες πλειάδες και όχι συγκεκριμένα γνωρίσματα. DELETE FROM R WHERE P Σβήνει όλες τις πλειάδες της R για τις οποίες ισχύει το P. Όταν λείπει το where σβήνονται όλες οι πλειάδες μιας σχέσης. 115

116 Διαγραφή δεδομένων Στο FROM μόνο μια σχέση, αλλά στη συνθήκη του WHERE μπορεί να εμφανίζονται και άλλες Σβήνονται «ολόκληρες» πλειάδες Αν υπάρχουν παραπάνω από μια πλειάδες που ικανοποιούν τη συνθήκη, δεν υπάρχει τρόπος να διακρίνουμε τις πλειάδες, δηλαδή να σβήσουμε κάποιες Πρώτα, υπολογίζεται η συνθήκη του WHERE και μετά διαγράφονται οι πλειάδες που ικανοποιούν τη συνθήκη DELETE FROM Plays WHERE Title IN (SELECT Title FROM Movie WHERE Type = Έγχρωμη ); 116

117 Διαγραφή δεδομένων Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) Παράδειγμα: διαγραφή της ταινίας The Big Blue που γυρίστηκε το 1988 DELETE FROM Movie WHERE Title = The Big Blue AND Year = 1988; Το αποτέλεσμα εξαρτάται από το είδος περιορισμού αναφοράς που έχουμε ορίσει Αν δεν έχουμε ορίσει κάποια ειδική ενέργεια on delete πρέπει πρώτα να διαγράψουμε και τις εγγραφές του πίνακα Plays που σχετίζονται με την ταινία The Big Blue : DELETE FROM Plays WHERE Title = The Big Blue AND Year = 1988; 117

118 Ενημέρωση UPDATE R SET Attr = New_Value WHERE P Παράδειγμα: Αύξηση τις διάρκειας κάθε ταινίας κατά 10 λεπτά για όλες τις ταινίες με διάρκεια < 100 UPDATE Movie SET Duration = Duration + 10 WHERE Duration < 100; 118

119 Ενημέρωση Όπως και για τη διαγραφή: Στο UPDATE μόνο μια σχέση, αλλά στη συνθήκη του WHERE μπορεί να εμφανίζονται και άλλες Αν υπάρχουν παραπάνω από μια πλειάδες που ικανοποιούν τη συνθήκη, δεν υπάρχει τρόπος να διακρίνουμε τις πλειάδες, δηλαδή να ενημερώσουμε κάποιες Πρώτα, υπολογίζεται η συνθήκη του WHERE και μετά ενημερώνονται οι πλειάδες που ικανοποιούν τη συνθήκη δηλαδή, η συνθήκη υπολογίζεται στο τρέχων στιγμιότυπο όχι στο τροποποιημένο 119

120 Επανάληψη 1. Εισαγωγές 2. Διαγραφές INSERT INTO R(A 1,, A n ) VALUES (v 1,, v n ) INSERT INTO R(A1,, An) SFW DELETE FROM R WHERE P 3. Ενημερώσεις/Τροποποιήσεις UPDATE R SET Attr = New_Value WHERE P 120

121 Όψεις 121

122 Ορισμός Όψεων (εικονικών πινάκων) Μπορούμε να ορίσουμε μια όψη χρησιμοποιώντας την εντολή: Ορισμός Όψης CREATE VIEW <όνομα--όψης> AS <SELECT-FROM-WHERE ερώτηση> Επίσης, μπορούν να προσδιοριστούν τα ονόματα των γνωρισμάτων άμεσα CREATE VIEW <όνομα--όψης> (<λίστα ονομάτων-γνωρισμάτων>) AS <SELECT-FROM-WHERE ερώτηση> 122

123 Διαφορά από create table Αποθηκεύετε ο ορισμός Μπορεί να χρησιμοποιηθεί όπου ένας πίνακας, αλλά η όψη (δηλαδή, το περιεχόμενο του πίνακα) υπολογίζεται εκ νέου κάθε φορά Χρήση: Σε ερωτήματα που υπολογίζονται συχνά ή για έλεγχο πρόσβασης 123

124 Παράδειγμα Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, Διεύθυνση, Έτος-Γέννησης, Σύζυγος-Ηθοποιού) CREATE VIEW BlackAndWhite AS SELECT Title, Year FROM Movie WHERE Type = Ασπρόμαυρη ; Base relations/tables Βασική Σχέση 124

125 Ενημερώσιμες Όψεις Για ενημερώσεις ισχύουν περιορισμοί -- Τροποποιήσεις μέσω όψεων Ενημερώσιμες όψεις - updatable ένα μόνο πίνακα, πρωτεύον κλειδί της βασικής σχέσης και τιμές για όλα τα not null γνωρίσματα χωρίς default τιμή (select, project) Υλοποιημένη (materialized) όψη 125

126 Παράδειγμα Movie(Title, Year, Duration, Type) Plays(Name, Title, Year) Actor(Name, Address, Year-of-Birth, Spouse-Name) CREATE VIEW ActorStatistics (ActorName, NumbofMovies) AS SELECT Plays,Name, COUNT(*) FROM Plays Μη ενημερώσιμη! GROUP BY Plays.Name; 126

127 Διαγραφή όψης Ο ορισμός της όψης παραμένει στην βάση δεδομένων, εκτός αν σβηστεί: DROP VIEW <όνομα-όψης> 127

128 With WITH <όνομα--query> [<λίστα ονομάτων-γνωρισμάτων>] ( AS <SELECT- FROM-WHERE ερώτηση> SELECT Ορίζεται όπως μια view αλλά δεν είναι ανεξάρτητη πρέπει να ακολουθεί SFW ερώτηση και μπορεί να χρησιμοποιηθεί μόνο σε αυτήν (το scope είναι η ερώτηση που ακολουθεί) Μπορεί να έχουμε πολλαπλούς ορισμούς στο ίδιο WITH χωρισμένους με κόμμα Βάσεις Δεδομένων

129 Ερωτήσεις; 129

130 Ασκήσεις (Θέματα Σεπτεμβρίου 2017) Βάσεις Δεδομένων

131 Το παρακάτω σχεσιακό σχήμα μιας βάσης δεδομένων περιέχει πληροφορίες για αγώνες κολύμβησης. ATHLETE(athlete_id, country, name, age) EVENT(event_id, name) EVENT_RESULT(event_id, athlete_id, result) Ο πίνακας ATHLETE περιέχει πληροφορίες για τους αθλητές, συγκεκριμένα το μοναδικό id, τη χώρα, όνομα, και ηλικία του αθλητή. Ο πίνακας EVENT περιέχει πληροφορίες για τα αγωνίσματα, συγκεκριμένα το μοναδικό id και το όνομα (πχ 100m sprint ) του αγωνίσματος. Ο πίνακας EVENT_RESULT περιέχει τους αθλητές που πήραν μετάλλια σε κάθε αγώνισμα, συγκεκριμένα το αγώνισμα (event_id), τον αθλητή (athlete_id) και το μετάλλιο (result) που αυτός πήρε. Το γνώρισμα result παίρνει τις τιμές, Gold, Silver και Bronze. Βάσεις Δεδομένων

132 ATHLETE EVENT EVENT_RESULT (α) Για καθένα από τα παρακάτω ερωτήματα εξηγείστε με απλά λόγια τι σημαίνουν και δώστε το αποτέλεσμα τους (σε μορφή πίνακα) όταν εκτελεστούν στο παρακάτω στιγμιότυπο. (i) σ age<25 (ATLETE * EVENT_RESULT), όπου * η φυσική συνένωση (ii) π athlete_id, event_id (EVENT_RESULT) π event_id (σ athlete_id = A5 (EVENT_RESULT)) (iii) {t.name EVENT(t) AND ( r (EVENT_RESULT(r) AND r.athlete_id = A4 AND t.event_id = r.event_id))} Βάσεις Δεδομένων

133 ATHLETE(athlete_id, country, name, age) EVENT(event_id, name) EVENT_RESULT(event_id, athlete_id, result) (β) Δώστε ερωτήσεις σε σχεσιακή άλγεβρα που να έχουν ως αποτέλεσμα: (i) το id των αθλητών που έχουν κερδίσει μόνο χρυσά (gold) μετάλλια (ii) το id των Αμερικάνων αθλητών που πήραν μετάλλιο στο αγώνισμα με όνομα 100m Sprint Βάσεις Δεδομένων

134 ATHLETE(athlete_id, country, name, age) EVENT(event_id, name) EVENT_RESULT(event_id, athlete_id, result) (γ) Δώστε ερωτήσεις σε SQL που να έχουν ως αποτέλεσμα: (i) για κάθε αθλητή τον αριθμό των μεταλλίων που κέρδισε (ζεύγη: id-αθλητή, αριθμός μεταλλίων) σε φθίνουσα διάταξη βάσει του αριθμού μεταλλίων, αγνοείστε όσους αθλητές δεν πήραν μετάλλια (ii) τροποποιείστε την ερώτηση γ(i) ώστε να περιλαμβάνονται στην απάντηση και οι αθλητές που δεν πήραν μετάλλια (να εμφανίζονται με αριθμό μεταλλίων 0). (iii) το id των αθλητών που έχουν κερδίσει μόνο χρυσά (gold) μετάλλια χρησιμοποιώντας in/not in. (iv) τις χώρες που έχουν πάρει τουλάχιστον 5 μετάλλια (ζεύγη: χώρα, αριθμός μεταλλίων) σε φθίνουσα διάταξη βάσει του αριθμού μεταλλίων (υποθέστε ότι τα αγωνίσματα είναι ατομικά). Βάσεις Δεδομένων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η Γλώσσα SQL. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

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

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

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

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

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

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

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2018-2019 1 Τι έχουμε δει έως σήμερα Σχεδιασμό βάσεων δεδομένων μοντέλο Οντοτήτων/Συσχετίσεων σχεσιακό μοντέλο (ορισμός σχήματος) Μια γλώσσα ορισμού δεδομένων ΓΟΔ (για

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

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

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακή Άλγεβρα Βάσεις Δεδομένων 2017-2018 1 Τι έχουμε δει έως σήμερα Σχεδιασμό βάσεων δεδομένων μοντέλο Οντοτήτων/Συσχετίσεων σχεσιακό μοντέλο (ορισμός σχήματος) Μια γλώσσα ορισμού δεδομένων ΓΟΔ (για

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

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

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

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

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

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

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

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

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακή Άλγεβρα 1 Ανακοινώθηκε το 1 ο Σύνολο Ασκήσεων στη σελίδα του μαθήματος Ημερομηνία Παράδοσης 3/11/2016 2 Τι έχουμε δει έως σήμερα Σχεδιασμό και Υλοποίηση Σχεσιακών Βάσεων δεδομένων Μια γλώσσα ορισμού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η SQL ως γλώσσα τροποποίησης Δεδομένων

Η SQL ως γλώσσα τροποποίησης Δεδομένων Η SQL ως γλώσσα τροποποίησης Δεδομένων Τροποποίηση Βάσης Δεδομένων: Γλώσσα Χειρισμού Δεδομένων (ΓXΔ) Τροποποιήσεις 1. Διαγραφή 2. Εισαγωγή 3. Ενημέρωση Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης

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

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

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

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

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

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

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

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

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

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

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

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

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

SQL Data Manipulation Language

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η Γλώσσα SQL. What is the average salary in the Toy department? Anonymous SQL user

Η Γλώσσα SQL. What is the average salary in the Toy department? Anonymous SQL user Η γλώσσα SQL Η Γλώσσα SQL What men or gods are these? What maidens loth? What mad pursuit? What struggle to escape? What pipes and timbrels? What wild ectasy? John Keats, Ode on a Grecian Urn What is the

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

SQL. Πριν µια σύντοµη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τµήµατα: Γλώσσα Χειρισµού εδοµένων (ΓΧ )

SQL. Πριν µια σύντοµη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τµήµατα: Γλώσσα Χειρισµού εδοµένων (ΓΧ ) Εισαγωγή Πως θα υλοποιήσουµε (προγραµµατίσουµε) την εφαρµογή µας χρησιµοποιώντας ένα σχεσιακό Σ Β : 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. Πριν μια σύντομη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού εδομένων (ΓΟ ) Γλώσσα Χειρισμού εδομένων (ΓΧ )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 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,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ 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

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

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

Η Γλώσσα SQL. SQL αποτελείται από: DDL (Data Definition Language) - ορισμός, δημιουργία, τροποποίηση και διαγραφή σχήματος.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: 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. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων 2014-2015. Ευαγγελία Πιτουρά 1

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων 2014-2015. Ευαγγελία Πιτουρά 1 Το Σχεσιακό Μοντέλο Ευαγγελία Πιτουρά 1 Μοντελοποίηση Σχήμα (database schema): η περιγραφή της δομής της πληροφορίας που είναι αποθηκευμένη στη βδ με τη χρήση ενός μοντέλου δεδομένων Μοντέλο Δεδομένων:

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

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

Βάσεις Δεδομένων Ι SQL Μέρος 1 ο. Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ Βάσεις Δεδομένων Ι - 03 SQL Μέρος 1 ο Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Θεσσαλίας Γιατί SQL; Η SQL είναι γλώσσα πολύ υψηλού επιπέδου Επιτρέπει να λέμε εύκολα τι θέλουμε να κάνουμε

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

Βάσεις Δεδομένων Η γλώσσα 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) Ένας από τους βασικούς λόγους της απόλυτης επικράτησης των Σχεσιακών ΒΔ Εξασφαλίζει μεταφερσιμότητα

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

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

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

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

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

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

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

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

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

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

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

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL Βάσεις Δεδομένων 2018-2019 Ευαγγελία Πιτουρά 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 Εισαγωγή, γενικές

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

Σχεσιακή Άλγεβρα. Εισαγωγή. Εισαγωγή. Εισαγωγή. Παράδειγμα. Εισαγωγή. Ταινία Τίτλος Έτος Διάρκεια Είδος. Παίζει Όνομα-Ηθοποιού Τίτλος Έτος.

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

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

Σχεσιακή Άλγεβρα. Προγράμματα που απαντούν σε επερωτήσεις για τον τρέχον στιγμιότυπο της βάσης δεδομένων (querying)

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

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

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: Απαντήστε κάθε ερώτηση. 1. Ποια είναι τα πλεονεκτήματα που παρέχει το Περιβάλλον Βάσεων Δεδομένων της Oracle για τις επιχειρήσεις; Το σύστημα διαχείρισης βάσεων δεδομένων της Oracle δίνει

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

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

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

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