9 Η Γλώσσα SQL Ορισμός Δεδομένων (data definition)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΑΘΗΜΑ 6. SELECTSELECT SELECT * FROM όνομα_πίνακα ; • Με τη εντολή SELECT ανασύρουμε δεδομένα από την βάση δεδομένων. • Το αστεράκι.
Advertisements

Γραφήματα & Επίπεδα Γραφήματα
ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ 2 ΜΑΘΗΜΑ 4.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Φυσική Σχεδίαση – Υλοποίηση βάσης ΕΣΔ232 – Οργάνωση Δεδομένων στη.
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Εισαγωγή στην SQL ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας.
Τα στοιχειώδη περί γεωδαιτικών υπολογισμών
Βάσεις Δεδομένων.
1 Copyright © 2006 Quality & Reliability SQL 1-2.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Ασφάλεια και Δικαιοδοσία σε Βάσεις Δεδομένων.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Μοντέλο Οντοτήτων-Συσχετισμών
Δρ. Παναγιώτης Συμεωνίδης
PL/SQL.
Ορισμοί Σχεσιακού Μοντέλου και (απλές)Τροποποιήσεις Σχέσεων στην SQL
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΕ ΣΥΖΕΥΞΗ ΠΙΝΑΚΩΝ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων.
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 3.
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Βάσεις Δεδομένων Εργαστήριο Ι Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ι Ενότητα 7: H γλώσσα SQL Γεωργία Γκαράνη Επίκουρος Καθηγήτρια Τμήμα Μηχανικών Πληροφορικής Τ.Ε. T.E.I. Θεσσαλίας.
ΙΑΤΡΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ - Θ Ενότητα 7: Εισαγωγή ανανέωση, διαγραφή δεδομένων, επιλογή δεδομένων από έναν πίνακα και από πολλούς πίνακες Δρ. Π. Ασβεστάς Τμήμα.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεδιασμός Σχεσιακών Σχημάτων.
Βάσεις Δεδομένων Εργαστήριο ΙΙI Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 SQL.
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ 2 ΜΑΘΗΜΑ 8. ΑΠΑΛΟΙΦΗ ΔΙΠΛΟΕΓΓΡΑΦΩΝ DISTINCT Μπορούμε να απαλείψουμε τις διπλοεγγραφές που μας επιστρέφονται και που οφείλονται στην.
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων  Χειρισμός Δεδομένων.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων (data definition)  Χειρισμός Δεδομένων (data manipulation)
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 SQL.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ « Advanced MySQL » Σμυρνάκη Ουρανία, Πανεπιστήμιο Κρήτης Σεμινάριο: 2ο Σχολείο Κώδικα Ημερομηνία: 10/07/2015 Με.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Το σχεσιακό μοντέλο βάσεων δεδομένων ΕΣΔ232 – Οργάνωση Δεδομένων στη.
Βάσεις Δεδομένων Κεφ. 1 Πλεονεκτήματα Β.Δ. έναντι αρχείων Βασικές λειτουργίες Β.Δ. Εφαρμογές Β.Δ. στην καθημερινή ζωή.
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Βάσεις Δεδομένων Ι 4η διάλεξη
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Αρχιτεκτονική Συστημάτων
Η Γλώσσα SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
Βάσεις Δεδομένων Ι Επανάληψη
Βάσεις Δεδομένων Ενότητα 3: Σχεσιακή Άλγεβρα Βασίλης Βουτσινάς
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι να κατανοήσουμε την έννοια της όψης της γλώσσας SQL. Χ. Σκουρλάς.
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Βάσεις Δεδομένων Κωδικός Μαθήματος: MK741
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Βάσεις Δεδομένων Ι 8η διάλεξη
Βάσεις Δεδομένων και web-based Εφαρμογές
SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Σχεσιακεσ βασεισ δεδομενων
Ερωτήματα Επιλογής σε ACCESS
POSTGRESQL Η PostgreSQL είναι ένα αντικείμενο-σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων (object relational database management system - ORDBMS) και.
Ενότητα # 5: Περιορισμοί ακεραιότητας
ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή
SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Μεταγράφημα παρουσίασης:

9 Η Γλώσσα SQL Ορισμός Δεδομένων (data definition) Χειρισμός Δεδομένων (data manipulation)

Γλώσσα Ορισμού Δεδομένων Δημιουργία νέου πίνακα: CREATE TABLE νέος-πίνακας (στήλη1 τύπος-δεδομένων, στήλη2 τύπος-δεδομένων, ... στήληN τύπος-δεδομένων, <περιορισμός-ακεραιότητας-1>, <περιορισμός-ακεραιότητας-2>, <περιορισμός-ακεραιότητας-Μ>

Γλώσσα Ορισμού Δεδομένων Δημιουργία νέου πίνακα: CREATE TABLE Γνωστική_Περιοχή (κωδικός INTEGER NOT NULL, τίτλος CHAR(50) NOT NULL, αριθμός_συνδρομητών INTEGER DEFAULT 0, PRIMARY KEY (κωδικός), UNIQUE (τίτλος), CHECK (αριθμός_συνδρομητών >= 0))

Γλώσσα Ορισμού Δεδομένων Δημιουργία νέου πίνακα: CREATE TABLE Πρακτικά_Συνεδρίου (κωδικός INTEGER NOT NULL, συνέδριο VARCHAR(100) NOT NULL, ημερομηνία DATE NOT NULL, χώρα CHAR(20), κωδικός_εκδοτικού_οίκου INTEGER NOT NULL, PRIMARY KEY (κωδικός), FOREIGN KEY (κωδικός_εκδοτικού_οίκου) REFERENCES Εκδοτικός_Οίκος (κωδικός) ON DELETE CASCADE ON UPDATE CASCADE )

Γλώσσα Ορισμού Δεδομένων Αλλαγή δομής πίνακα: ALTER TABLE Χρησιμοποιείται για: προσθήκη νέας στήλης στον πίνακα, διαγραφή υπάρχουσας στήλης, εισαγωγή νέου περιορισμού (constraint), κατάργηση περιορισμού, αλλαγή της αρχικής τιμής στήλης (default), κατάργηση αρχικής τιμής στήλης.

Μεταβολή δομής πινάκων Τροποποιείται η δομή του πίνακα με έναν από τους κάτωθι τρόπους προσθήκη μιας στήλης ALTER TABLE student ADD (hmeromhnia_orkomosias DATE); αλλαγή του τύπου, δυνατότητας χρήσης τιμών NULL ή εξ ορισμού τιμής μιας στήλης ALTER TABLE student MODIFY (am integer not null); προσθήκη ή κατάργηση περιορισμών ακεραιότητας ALTER TABLE student ADD CONSTRAINT am_not_zero CHECK (am <> 0); ALTER TABLE student DROP CONSTRAINT am_not_zero;

Γλώσσα Ορισμού Δεδομένων Αλλαγή δομής πίνακα: Κατασκευή νέας στήλης ALTER TABLE Συνδρομητής ADD COLUMN ημερ/νία-γέννησης DATE NOT NULL Για την κατάργηση της στήλης ημερ/νία-γέννησης έχουμε: ALTER TABLE Συνδρομητής DROP COLUMN ημερ/νία-γέννησης

Καταστροφή πινάκων Μέσω της εντολής DROP TABLE drop table grade; Ο πίνακας δεν μπορεί να καταστραφεί αν υπάρχουν περιορισμοί ακεραιότητας που τον αναφέρουν drop table student cascade constraints;

Κανόνες Ακεραιότητας Γενικά για την επιβολή ακεραιότητας σε επίπεδο στηλών πινάκων ισχύουν οι παρακάτω κανόνες: Nulls Unique Column Values Primary Key Values Referential Integrity Complex Integrity Checking Default Values

Πλεονεκτήματα από τη χρήση των περιορισμών ακεραιότητας εύκολος ορισμός τους με χρήση εντολών SQL χωρίς επιπλέον δηλώσεις. κεντρική διαχείριση των κανόνων ακεραιότητας, που εφαρμόζονται στα δεδομένα καθώς αυτοί ορίζονται για πίνακες (και όχι για προγράμματα) και αποθηκεύονται στο data dictionary και χωρίς την ανάγκη να επαναλαμβάνονται στις εφαρμογές μέγιστη παραγωγικότητα ανάπτυξης εφαρμογών καθώς εύκολα ενημερώνονται οι περιορισμοί ακεραιότητας σε περίπτωση αλλαγής των επιχειρησιακών κανόνων. Εάν αλλάξει η φιλοσσοφία κάποιου περιορισμού ακεραιότητας, αλλάζει μόνο ο ίδιος και όχι όλες οι εφαρμογές που χρησιμοποιούν τα συγκεκριμένα δεδομένα άμεση ανάδραση στον χρήστη με βάση τα μηνύματα του ΣΔΒΔ. βελτίωση της απόδοσης κατά την εκτέλεση των ερωτημάτων (query optimizer). δυνατότητα εύκολης και γρήγορης ακύρωσης των περιορισμών ακεραιότητας προκειμένου να διευκολυνθεί η φόρτωση μεγάλων ποσοτήτων δεδομένων. Κατόπιν, μπορούν να εφαρμοσθούν οι περιορισμοί και να παραχθούν αυτόματα ο αναφορές λαθών για τις γραμμές που έχουν πρόβλημα. Μειονέκτημα: με την εφαρμογή των περιoρισμών πέφτει κάπως η απόδοση του συστήματος

Nulls Eίναι ένας κανόνας που εφαρμόζεται σε μια συγκεκριμένη στήλη και επιτρέπει ή αποτρέπει εισαγωγές ή ενημερώσεις γραμμών που περιέχουν null σε αυτή τη στήλη. NOT NULL

Unique Column Values Ο κανόνας της μοναδικής τιμής ορίζεται σε μια στήλη ή σύνολο στηλών και επιτρέπει την εισαγωγή ή ενημέρωση μιας γραμμής μόνον αν περιέχει μια μοναδική τιμή σε αυτήν ή αυτές τις στήλες. UNIQUE <attribute(s)>

Primary Key Values Η τιμή πρωτεύοντος κλειδιού που ορίζεται σε ένα κλειδί (μιας ή περισσότερων στηλών) σημαίνει ότι κάθε γραμμή του πίνακα μπορεί να προσδιορίζεται μοναδικά από τις τιμές του κλειδιού. PRIMARY KEY (<attribute(s)>)

Referential Integrity Είναι ένας κανόνας που ορίζεται σε ένα κλειδί (μιας ή περισσότερων στηλών) ενός πίνακα και εξασφαλίζει ότι οι τιμές αυτού του κλειδιού ταιριάζουν με τις τιμές σε έναν συσχετιζόμενο πίνακα (referenced value). FOREIGN KEY <attribute> REFERENCES <table (attribute)>

Complex Integrity Checking Είναι ένας κανόνας που ορίζεται από τον χρήστη για μια ή περισσότερες στήλες και επιτρέπει ή αποτρέπει την εισαγωγή, μεταβολή ή διαγραφή μιας γραμμής με βάση την τιμή (ή τιμές) που περιέχεται στην στήλη (ή στήλες). CHECK <conditional expression> e.g. YEAR INT(4) NOT NULL, DEFAULT 2003, CHECK (YEAR BETWEEN 1960 AND 2003)

Primary Key (απλοί κανόνες επιλογής) Όποτε είναι δυνατόν χρησιμοποιείστε μια στήλη με σειριακούς αριθμούς. Είναι ένας κανόνας που ικανοποιεί όλους τους επόμενους Αποφεύγετετε τη χρήση composite primary keys. Παρότι η χρήση τους δεν απαγορεύεται, εντούτις η χρήση τους παραβιάζει ενίοτε κάποιους από τους κανόνες. πχ. Είναι μεγάλο κλειδί και δεν μπορούμε να εισάγουμε σειριακούς αριθμούς Χρησιμοποιείστε ένα πεδίο που οι τιμές του είναι μοναδικές. Χρησιμοποιείστε ένα πεδίο που οι τιμές του δεν αλλάζουν. Το πρωτεύον κλειδί χρησιμοπιείται μόνο για την αναγνώριση μια γραμμής και δεν πρέπει να χρειαστεί να αλλάξει. Χρησιμοποιείστε ένα πεδίο που οι τιμές δεν περιέχουν κενά. Χρησιμοποιείστε ένα πεδίο με μικρές αριθμητικές τιμές

Foreign Key Constraints Ένα κλειδί αναφοράς μπορεί να αποτελείται από περισσότερες από μια στήλες. Στην περίπτωση αυτή πρέπει να αναφέρεται σε ένα κλειδί το οποίο επίσης να αποτελείται από περισσότερες από μια στήλες, ίδιες τον αριθμό και με δεδομένα του ιδίου ακριβώς τύπου. Το κλειδί aναφοράς επιτρέπει να υπάρχουν τιμές null, ακόμη και αν δεν υπάρχουν στην αναφορά του primary ή unique keys.

Foreign key (συνέχεια) Μπορούμε να εισάγουμε διάφορους τρόπους αντίδρασης σε περίπτωση αλλαγής/διαγραφής του κλειδιού αναφοράς στον parent table. Μπορούμε να συνδιάσουμε τις εντολές ON DELETE ή ON UPDATE για τον κύριο πίνακα με τις εντολές CASCADE, SET NULL or SET DEFAULT: ON DELETΕ CASCADE: Σε περίπτωση διαγραφής του κλειδιού στον parent table γιαγράφονται επίσης οι εγγραφές στον child table. ΟΝ DELETE RESTRICT: Σε περίπτωση διαγραφής του κλειδιού στον parent table, επιτρέπεται η διαγραφή μόνο αν δεν υπάρχουν τιμές με εναφορά σ’ αυτό στον child table. ON DELETE SET NULL: Σε περίπτωση διαγραφής του κλειδιού στον parent table, οι τιμές στον child table που αναφέρονται σ’ αυτόν παίρνουν την τιμή null. ON DELETE SET DEFAULT: Σε περίπτωση διαγραφής του κλειδιού στον parent table, οι αντίστοιχες τιμές στον child παίρνουν την default τιμή του. Πρέπει να έχει οριστεί όμως μια default τιμή, διαφορετιά γίνεται null.

Foreign key (συνέχεια) ON UPDATE CASCADE: Σε περίπτωση αλλαγής του κλειδιού στον parent table, αλλάζει επίσης και η αντίστοιχη αναφορά του στον child table. ON UPDATAE RESTRICT: Σε περίπτωση αλλαγής του κλειδιού στον parent table, η αλλαγή επιτρέπεται μόνο αν δεν υπάρχουν αναφορές του στον child table. ON UPDATE SET NULL: Όταν αλλάξει η τιμή στον parent table, α αντίστοιχη αναφορά στον child table γιέται null. ON UPDATE SET DEFAULT: Όταν αλλάξει η τιμή στον parent table, η αντίστοιχη αναφορά του στον child παίρνει την default τιμή. Πρέπει να έχει οριστεί όμως μια default τιμή, διαφορετιά γίνεται null.

Γλώσσα Χειρισμού Δεδομένων Εντολές: SELECT, για διατύπωση ερωτημάτων, INSERT, για εισαγωγή νέων δεδομένων, UPDATE, για ενημέρωση δεδομένων, και DELETE, για διαγραφή δεδομένων από τη ΒΔ,

Γλώσσα Χειρισμού Δεδομένων SELECT: SELECT [DISTINCT] <λίστα στηλών> FROM <λίστα πινάκων> [WHERE συνθήκη] [GROUP BY <λίστα στηλών>] [HAVING συνθήκη] [ORDER BY <λίστα στηλών> [ASCENDING | DESCENDING]]

Γλώσσα Χειρισμού Δεδομένων – Απλά ερωτήματα (1) Παραδείγματα SELECT ``Να επιστραφούν όλες οι γραμμές του πίνακα Γνωστική_Περιοχή.'' SELECT * FROM Γνωστική_Περιοχή ή SELECT κωδικός, τίτλος, αριθμός_συνδρομητών

Γλώσσα Χειρισμού Δεδομένων – Απλά ερωτήματα (2) Παραδείγματα SELECT ‘‘Να βρεθούν όλοι οι τίτλοι των γνωστικών περιοχών που είναι αποθηκευμένοι στη ΒΔ.’’ SELECT τίτλος FROM Γνωστική Περιοχή ‘‘Να βρεθούν τα διαφορετικά ονόματα των συνδρομητών.’’ SELECT DISTINCT όνομα FROM Συνδρομητής

Γλώσσα Χειρισμού Δεδομένων – Απλά ερωτήματα (3) Να βρεθούν οι κωδικοί, τα ονόματα και οι αριθμοί πιστωτικών καρτών των συνδρομητών που βρίσκονται στην Ελλάδα, και τα αποτελέσματα να ταξινομηθούν αλφαβητικά ως προς το όνομα, και στη συνέχεια ως προς τον αριθμό πιστωτικής κάρτας.'' SELECT κωδικός, όνομα, ΑΠΚ FROM Συνδρομητής WHERE χώρα = `Ελλάδα' ORDER BY όνομα, ΑΠΚ

Γλώσσα Χειρισμού Δεδομένων – Απλά ερωτήματα (4) ‘‘Να βρεθούν οι κωδικοί και οι τίτλοι των άρθρων που έχουν δημοσιευθεί και σε περιοδικό και σε πρακτικά συνεδρίου.’’ SELECT κωδικός, τίτλος FROM Άρθρο WHERE κωδικός περιοδικού IS NOT NULL AND κωδικός πρακτικών συνεδρίου IS NOT NULL

Γλώσσα Χειρισμού Δεδομένων – Ερωτήματα Σύνδεσης (1) ``Να βρεθούν οι κωδικοί και τα ονόματα των συνδρομητών και οι τίτλοι των γνωστικών περιοχών για τις οποίες έχουν πληρώσει συνδρομή.'' SELECT Συνδρομητής.κωδικός, Συνδρομητής.όνομα, Γνωστική_Περιοχή.τίτλος FROM Συνδρομητής, Γνωστική_Περιοχή, Συνδρομή WHERE Συνδρομητής.κωδικός = Συνδρομή.κωδικός_συνδρομητή AND Συνδρομή.κωδικός_γνωστικής_περιοχής = Γνωστική_Περιοχή.κωδικός

Γλώσσα Χειρισμού Δεδομένων – Ερωτήματα Σύνδεσης (2) ‘‘Να βρεθούν οι τίτλοι των άρθρων και τα ονόματα των συγγραφέων που τα έχουν συγγράψει. Το αποτέλεσμα να ταξινομηθεί αλφαβητικά ως προς τους τίτλους των άρθρων’’ SELECT Άρθρο.τίτλος, Συγγραφέας.όνομα FROM Άρθρο, Συγγραφέας, Συγγραφή-Άρθρου WHERE Άρθρο.κωδικός = Συγγραφή-Άρθρου.κωδικός άρθρου AND Συγγραφή-Άρθρου.κωδικός συγγραφέα = Συγγραφέας.κωδικός ORDER BY Άρθρο.τίτλος

Γλώσσα Χειρισμού Δεδομένων – Ερωτήματα Σύνδεσης (3) ‘‘Να προσδιορισθεί ο τίτλος κάθε άρθρου και ο τίτλος της γνωστικής περιοχής όπου ανήκει’’ SELECT Άρθρο.τίτλος, Γνωστική Περιοχή.τίτλος FROM Άρθρο, Γνωστική Περιοχή WHERE Γνωστική Περιοχή.κωδικός = Άρθρο.κωδικός γνωστικής περιοχής ή FROM Άρθρο JOIN Γνωστική Περιοχή ON Γνωστική Περιοχή.κωδικός=Άρθρο.κωδικός γνωστικήςπεριοχής

Γλώσσα Χειρισμού Δεδομένων – Ένωση, Διαφορά και Τομή (1) Ένωση, Διαφορά και Τομή (1) ‘‘Να προσδιορισθούν οι τίτλοι των συνεδρίων και οι τίτλοι των περιοδικών’’ SELECT συνέδριο FROM Πρακτικά Συνεδρίου UNION SELECT τίτλος FROM Περιοδικό

Γλώσσα Χειρισμού Δεδομένων – Ένωση, Διαφορά και Τομή (2) Ένωση, Διαφορά και Τομή (2) ‘‘Να βρεθούν (αν υπάρχουν) συνδρομητές που έχουν το ίδιο όνομα με κάποιο συγγραφέα’’ SELECT όνομα FROM Συνδρομητής INTERSECT FROM Συγγραφέας

Γλώσσα Χειρισμού Δεδομένων – Ένωση, Διαφορά και Τομή (3) Ένωση, Διαφορά και Τομή (3) ‘‘Να προσδιορισθούν οι κωδικοί και οι τίτλοι των άρθρων που δεν έχουν δημοσιευθεί σε κάποιο περιοδικό’’ SELECT κωδικός, τίτλος FROM Άρθρο EXCEPT WHERE κωδικός περιοδικού IS NOT NULL

Γλώσσα Χειρισμού Δεδομένων – Ερωτήματα με Συναρτήσεις Συγκέντρωσης(1) Η SQL υποστηρίζει τις ακόλουθες συναρτήσεις: ΜΙΝ και MAX για την εύρεση της ελάχιστης και της μέγιστης τιμής μίας στήλης, AVG για τον υπολογισμό της μέσης τιμής μίας στήλης, SUM, για τον υπολογισμό του αθροίσματος των τιμών μίας στήλης, COUNT, για τη μέτρηση του αριθμού των γραμμών.

Γλώσσα Χειρισμού Δεδομένων – Ερωτήματα με Συναρτήσεις Συγκέντρωσης(2) Παραδείγματα SELECT ‘‘Να βρεθεί ο αριθμός των άρθρων που έχει γράψει κάθε συγγραφέας’’ SELECT Συγγραφέας.όνομα, COUNT (Συγγραφή-Άρθρου.κωδικός άρθρου) FROM Συγγραφέας, Συγγραφή Άρθρου WHERE Συγγραφέας.κωδικός = Συγγραφή Άρθρου.κωδικός συγγραφέα GROUP BY Συγγραφέας.κωδικός

Γλώσσα Χειρισμού Δεδομένων – Ερωτήματα με Συναρτήσεις Συγκέντρωσης(3) Παραδείγματα SELECT ‘‘Να βρεθεί ο μέσος όρος των συνδρομητών κάθε γνωστικής περιοχής’’ SELECT τίτλος, AVG (αριθμός συνδρομητών) FROM Γνωστική Περιοχή GROUP BY τίτλος

Γλώσσα Χειρισμού Δεδομένων – Σειρές Χαρακτήρων(1) Για την αναζήτηση σειρών χαρακτήρων χρησιμοποιούνται οι τελεστές LIKE και NOT LIKE. SELECT * FROM Συνδρομητής WHERE όνομα LIKE ‘%όπουλος’

Γλώσσα Χειρισμού Δεδομένων – Υποερωτήματα (1) Παραδείγματα SELECT ‘‘Να βρεθούν οι τίτλοι των γνωστικών περιοχών για τις οποίες ισχύει ότι ο αριθμός συνδρομητών είναι μεγαλύτερος από το μέσο όρο.’’ SELECT τίτλος FROM Γνωστική Περιοχή WHERE αριθμός συνδρομητών > (SELECT AVG(αριθμός συνδρομητών) FROM Γνωστική Περιοχή)

Γλώσσα Χειρισμού Δεδομένων – Υποερωτήματα (2) Παραδείγματα SELECT ‘‘Να προσδιορισθούν οι τίτλοι των γνωστικών περιοχών όπου δεν αντιστοιχεί κάποιο άρθρο’’ SELECT τίτλος FROM Γνωστική Περιοχή WHERE κωδικός NOT IN (SELECT κωδικός γνωστικής περιοχής FROM Άρθρο)

Γλώσσα Χειρισμού Δεδομένων – Μετονομασία (1) Παραδείγματα SELECT Θεωρείστε το ερώτημα που υπολογίζει το μέσο όρο του αριθμού συνδρομητών για κάθε γνωστική περιοχή: SELECT τίτλος, AVG (αριθμός συνδρομητών) FROM Γνωστική Περιοχή GROUP BY τίτλος SELECT τίτλος, AVG (αριθμός συνδρομητών) AS μέσος αριθμός συνδρομητών

Γλώσσα Χειρισμού Δεδομένων – Μετονομασία (2) Παραδείγματα SELECT SELECT A.κωδικός AS κωδικόςΑ, B.κωδικός AS κωδικόςΒ FROM Γνωστική Περιοχή AS A, Γνωστική Περιοχή AS B WHERE A.αριθμός συνδρομητών < B.αριθμός συνδρομητών

Γλώσσα Χειρισμού Δεδομένων – Εισαγωγή Δεδομένων (1) INSERT INTO Όνομα Πίνακα [(στήλη1,στήλη2,...,στήληΝ)] VALUES (τιμή1, τιμή2, ..., τιμήN) Π.χ INSERT INTO Γνωστική Περιοχή VALUES (10, ’Διαστημική Τεχνολογία’, 0) INSERT INTO Γνωστική Περιοχή (τίτλος,κωδικός) VALUES (’Διαστημική Τεχνολογία’, 10)

Γλώσσα Χειρισμού Δεδομένων – Ενημέρωση Δεδομένων (1) UPDATE Όνομα Πίνακα SET (στήλη1=τιμή1, στήλη2=τιμή2, ..., στήληN=τιμήN) WHERE συνθήκη Π.χ UPDATE Γνωστική Περιοχή SET (τίτλος=‘Διάστημα’) WHERE κωδικός=10 SET (αριθμός συνδρομητών=0)

Γλώσσα Χειρισμού Δεδομένων – Διαγραφή Δεδομένων (1) DELETE FROM Όνομα Πίνακα WHERE συνθήκη Π.χ DELETE FROM Άρθρο DELETE FROM Γνωστική Περιοχή WHERE αριθμός συνδρομητών=0 AND Γνωστική Περιοχή.κωδικός NOT IN (SELECT DISTINCT κωδικός γνωστικής περιοχής FROM Άρθρο)

Γλώσσα Χειρισμού Δεδομένων – Διαχείριση Όψεων (1) CREATE VIEW Όνομα-Όψης AS (υποερώτημα-SQL) Π.χ. CREATE VIEW Ονόματα Περιοδικών Συνεδρίων (SELECT τίτλος FROM Περιοδικό UNION SELECT τίτλος FROM Πρακτικά Συνεδρίου) DROP VIEW Ονόματα-Περιοδικών-Συνεδρίων

Σύνοψη Η SQL (structured query language) προτυποποιήθηκε για πρώτη φορά 1986 και είναι η δημοφιλέστερη γλώσσα βάσεων δεδομένων. Η SQL είναι βασισμένη στη σχεσιακή άλγεβρα και διαχωρίζεται στη γλώσσα ορισμού δεδομένων και τη γλώσσα χειρισμού δεδομένων. Κάθε σχεσιακό σύστημα υποστηρίζει SQL, οπότε η διατύπωση των ερωτημάτων είναι ανεξάρτητη από το χρησιμοποιούμενο ΣΔΒΔ. Η γλώσσα χρησιμοποιείται για όλες τις λειτουργίες του ΣΔΒΔ (δημιουργία πινάκων, εισαγωγή και αναζήτηση δεδομένων, δημιουργία νέων χρηστών, κλπ.) Πολλές γλώσσες προγραμματισμού έχουν τροποποιηθεί ώστε να υποστηρίζουν διατύπωση ερωτημάτων σε SQL. Η SQL είναι έχει απλή σύνταξη, και αποδεσμεύει το χρήστη από λεπτομέρειες υλοποίησης.