ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ « Advanced MySQL » Σμυρνάκη Ουρανία, Πανεπιστήμιο Κρήτης Σεμινάριο: 2ο Σχολείο Κώδικα Ημερομηνία: 10/07/2015 Με.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ 2 ΜΑΘΗΜΑ 4.
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Φυσική Σχεδίαση – Υλοποίηση βάσης ΕΣΔ232 – Οργάνωση Δεδομένων στη.
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Εισαγωγή στην SQL ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας.
Βάσεις Δεδομένων.
Βάσεις Δεδομένων 1 T.Manavis– N.Kyritsis.
Ορισμοί Σχεσιακού Μοντέλου και (απλές)Τροποποιήσεις Σχέσεων στην SQL
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΕ ΣΥΖΕΥΞΗ ΠΙΝΑΚΩΝ
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 3.
9 Η Γλώσσα SQL Ορισμός Δεδομένων (data definition)
Πετρογεωργάκης Μανούσος Σπυρόπουλος Σταύρος
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
Ημέρα 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.
Βασικά στοιχεία της Java
Κανονικοποίηση, συναρτησιακές εξαρτήσεις
1 Αντικειμενοστραφής Προγραμματισμός Ενότητα 12 : Επαναληπτικές Ασκήσεις (3/3) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Το σχεσιακό μοντέλο βάσεων δεδομένων ΕΣΔ232 – Οργάνωση Δεδομένων στη.
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
Η Εντολή Select Select Πεδίο1, Πεδίο2, … Πεδίοn From Πίνακας1, Πίνακας2, …, Πίνακαςm Where συνθήκη;
Βάσεις Δεδομένων Κεφ. 1 Πλεονεκτήματα Β.Δ. έναντι αρχείων Βασικές λειτουργίες Β.Δ. Εφαρμογές Β.Δ. στην καθημερινή ζωή.
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ενότητα 12 : Η χρήση της MySQL στο Ηλεκτρονικό εμπόριο (ΙΙI) Ιωάννης Τσούλος Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Ενότητα 7 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (I) Ιωάννης Τσούλος
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Βάσεις Δεδομένων Ι 4η διάλεξη
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
Βάσεις Δεδομένων Ι Επανάληψη
Java DataBase Connectivity
Βάσεις Δεδομένων Ενότητα 3: Σχεσιακή Άλγεβρα Βασίλης Βουτσινάς
Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Εισαγωγή στους Η/Υ Ενότητα 8: Αριθμητική υπολογιστών Ιωάννης Σταματίου
Τεχνολογία και Προγραμματισμός Υπολογιστών
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Βάσεις Δεδομένων Κωδικός Μαθήματος: MK741
Οι Συναρτήσεις Ομαδοποίησης
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση δηλώσεων SQL που περιλαμβάνουν EXIST, ANY, ALL. Χ. Σκουρλάς.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ενότητα 2 : Το σύστημα βάσεων δεδομένων MySQL (II) Ιωάννης Τσούλος
Κανονικοποίηση ΤΙ ΕΙΝΑΙ ; Τεχνική Διαδικασία
Προγραμματισμός κινητών συσκευών
Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eClass
Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eClass
Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eClass
Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eClass
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας
Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eClass
Βάσεις Δεδομένων ΙΙ Ενότητα 6: Τεχνολογία PL/SQL - cursors Χ. Σκουρλάς
Σχεσιακεσ βασεισ δεδομενων
Ερωτήματα Επιλογής σε ACCESS
POSTGRESQL Η PostgreSQL είναι ένα αντικείμενο-σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων (object relational database management system - ORDBMS) και.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Ενότητα # 5: Περιορισμοί ακεραιότητας
ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή
Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Δυτικής Αττικής
Μεταγράφημα παρουσίασης:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ « Advanced MySQL » Σμυρνάκη Ουρανία, Πανεπιστήμιο Κρήτης Σεμινάριο: 2ο Σχολείο Κώδικα Ημερομηνία: 10/07/2015 Με τη συγχρηματοδότηση Ελλάδας και Ευρωπαϊκής Ένωσης

ΣΗΜΕΙΩΜΑ ΑΔΕΙΟΔΟΤΗΣΗΣ Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και στα οποία γίνεται αναφορά, όπως και στην άδεια χρήσης τους. [1]

3 η ενότητα: Advanced MySQL Βάσεις δεδομένων. Συστήματα Διαχείρισης Βάσεων Δεδομένων Πίνακας – Εγγραφές – Πεδία -Τύποι δεδομένων. Εισαγωγή στην SQL Γλώσσα επερωτήσεων. SQL Constraints JOINS MySQL Functions Δημιουργία βάσης δεδομένων μέσω του εργαλείου phpMyAdmin και εξοικείωση με MySQL. Εργασία δημιουργίας MySQL database. 3

Βάσεις Δεδομένων (1) Μία βάση δεδομένων είναι μία συλλογή από σχετικά μεταξύ τους δεδομένα. Σκοπός της είναι: – Η οργάνωση και η αποθήκευση πληροφορίας. – Διευκολύνει τον χρήστη στην επεξεργασία των δεδομένων όπως διαγραφή, εισαγωγή και εξαγωγή. 4 Βάση δεδομένων

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

Βάσεις Δεδομένων (3). 6 Βάση δεδομένων Χρήστης 1 Χρήστης 2 Χρήστης 3 Χρήστης 4 Ανάκληση δεδομένων Ανάκληση δεδομένων Επεξεργασία δεδομένων Διαγραφή δεδομένων

Βάσεις Δεδομένων (4) Οι ΒΔ χρησιμοποιούνται ευρέως σε – Τράπεζες (για πληροφορίες πελατών, λογαριασμών, δανείων) – Αεροπορικές εταιρείες (για κρατήσεις θέσεων και πληροφορίες πτήσεων) – Πανεπιστήμια (για πληροφορίες φοιτητών, εγγραφές, βαθμούς σε μαθήματα) – Τηλεπικοινωνίες (διατήρηση κλήσεων, δημιουργία μηνιαίων λογαριασμών) – Πωλήσεις (Για πληροφορίες πελατών, προϊόντων και πωλήσεων) κ.ά. 7 Βάση δεδομένων

Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ - DBMS) (1) «Σύστημα Διαχείρισης Βάσεων Δεδομένων – ΣΔΒΔ είναι ένα σύνολο από σχετιζόμενα δεδομένα και ένα σύνολο από προγράμματα για πρόσβαση σε αυτά τα δεδομένα.» Σχεδιάζονται για να χειρίζονται μεγάλα τμήματα πληροφορίας. Διασφαλίζουν την ασφάλεια των πληροφοριών που αποθηκεύονται. 8

Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ - DBMS) (2) Αν έχουμε κοινόχρηστα δεδομένα μεταξύ διαφορετικών χρηστών – τα ΣΔΒΔ πρέπει να αποφεύγουν πιθανά λανθασμένα αποτελέσματα. Σχεδιάζονται για να χειρίζονται μεγάλα τμήματα πληροφορίας. Διασφαλίζουν την ασφάλεια των πληροφοριών που αποθηκεύονται. Παραδείγματα ΣΔΒΔ: MySQL, Oracle, PostgreSQL κ.ά. 9

Πίνακας – Στήλες – Γραμμές (1) 10 Τα δεδομένα σε μία σχεσιακή βάση δεδομένων αποθηκεύονται σε πίνακες. Κάθε πίνακας αποτελείται από γραμμές και στήλες. Γραμμές είναι οι εγγραφές του πίνακα. Στήλες είναι τα πεδία του πίνακα. Οι Εγγραφές αποτελούνται από πεδία όπως ονόματα, διευθύνσεις αριθμοί τηλεφώνου.

Παράδειγμα Πίνακα 11 Ας υποθέσουμε ότι έχουμε τον πίνακα «ΥΠΑΛΛΗΛΟΣ». ΚΩΔΙΚΟΣ ΥΠΑΛΛΗΛΟΥ ΟΝΟΜΑΕΠΩΝΥΜΟΜΙΣΘΟΣ 1ΜαρίαΑνδρέου ΜανόληςΕυσταθίου ΓιώργοςΠαπαδάκης η εγγραφή 3 η εγγραφή 2 η εγγραφή 1 η πεδίο 2 η πεδίο 3 η πεδίο 4 η πεδίο

Πρωτεύον κλειδί πίνακα (primary key) (1) 12 Το πρωτεύον κλειδί ενός πίνακα αποτελείται από ένα ή περισσότερα πεδία που χαρακτηρίζουν με μοναδικό τρόπο την κάθε γραμμή που αποθηκεύετε στον πίνακα. ΚΩΔΙΚΟΣ ΥΠΑΛΛΗΛΟΥ ΟΝΟΜΑΕΠΩΝΥΜΟΜΙΣΘΟΣ 1ΜαρίαΑνδρέου ΜανόληςΕυσταθίου ΓιώργοςΠαπαδάκης6.000

Πρωτεύον κλειδί πίνακα (primary key) (2) 13 Συχνά το πρωτεύον κλειδί του πίνακα είναι ένας σειριακός αριθμός ή ένας κωδικός μοναδικός ώστε να ξεχωρίζουν μοναδικά οι εγγραφές. ΚΩΔΙΚΟΣ ΥΠΑΛΛΗΛΟΥ ΟΝΟΜΑΕΠΩΝΥΜΟΜΙΣΘΟΣ 1ΜαρίαΑνδρέου ΜανόληςΕυσταθίου ΓιώργοςΠαπαδάκης6.000

Εισαγωγή νέου υπαλλήλου με όνομα «Μάριος», Επώνυμο «Πλατανάκης» και μισθό Ευρώ. Εισαγωγή εγγραφής 14 ΚΩΔΙΚΟΣ ΥΠΑΛΛΗΛΟΥ ΟΝΟΜΑΕΠΩΝΥΜΟΜΙΣΘΟΣ 1ΜαρίαΑνδρέου ΜανόληςΕυσταθίου ΓιώργοςΠαπαδάκης6.000

Εισαγωγή νέου υπαλλήλου με όνομα «Μάριος», Επώνυμο «Πλατανάκης» και μισθό Ευρώ. Εισαγωγή εγγραφής 15 ΚΩΔΙΚΟΣ ΥΠΑΛΛΗΛΟΥ ΟΝΟΜΑΕΠΩΝΥΜΟΜΙΣΘΟΣ 1ΜαρίαΑνδρέου ΜανόληςΕυσταθίου ΓιώργοςΠαπαδάκης ΜάριοςΠλατανάκης5.000

ΚΩΔΙΚΟΣ ΥΠΑΛΛΗΛΟΥ ΟΝΟΜΑΕΠΩΝΥΜΟΜΙΣΘΟΣ 1ΜαρίαΑνδρέου ΜανόληςΕυσταθίου ΓιώργοςΠαπαδάκης ΜάριοςΠλατανάκης5.000 Διαγραφή εγγραφής 16 Διαγραφή του υπαλλήλου με όνομα «Μανόλης», Επώνυμο «Ευσταθίου» και μισθό Ευρώ.

ΚΩΔΙΚΟΣ ΥΠΑΛΛΗΛΟΥ ΟΝΟΜΑΕΠΩΝΥΜΟΜΙΣΘΟΣ 1ΜαρίαΑνδρέου ΓιώργοςΠαπαδάκης ΜάριοςΠλατανάκης5.000 Διαγραφή εγγραφής 17 Διαγραφή του υπαλλήλου με όνομα «Μανόλης», Επώνυμο «Ευσταθίου» και μισθό Ευρώ.

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

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

Τι είναι η MySQL Σύστημα διαχείρισης βάσεων δεδομένων ανοιχτού κώδικα (open source). 2. Η πιο δημοφιλής βάση δεδομένων σε παγκόσμιο επίπεδο. 3. Η πιο δημοφιλής βάση δεδομένων σε παγκόσμιο επίπεδο.

MySQL (2)  Σύστημα διαχείρισης βάσεων δεδομένων ανοιχτού κώδικα (open source).  Η πιο δημοφιλής βάση δεδομένων για διαδικτυακά προγράμματα και ιστοσελίδες.  Αξιόπιστη και εύκολη στη διαχείρισή της  Χρησιμοποιείται στις πιο διαδεδομένες διαδικτυακές υπηρεσίες, όπως το Youtube, Facebook, Wikipedia, Google, Twitter.  Χρησιμοποιεί την Structured Query Language (SQL) γλώσσα, για την προσθήκη, την πρόσβαση και την επεξεργασία δεδομένων σε μία Βάση Δεδομένων. 21

SQL: Αριθμητικοί τύποι δεδομένων (συνοπτικά) INT: ακέραιος μέγιστου μήκους 11 ψηφίων ΤΙΝΥΙΝΤ: ακέραιος μέγιστου μήκους 4 ψηφίων SMALLINT: ακέραιος μέγιστου μήκους 5 ψηφίων FLOAT (K,L): κινητής υποδιαστολής Κ ψηφίων και L δεκαδικών ψηφίων Υπάρχουν και άλλοι τύποι αλλά αναφέρουμε συνοπτικά μερικούς απο αυτούς. 22

SQL: Αλφαριθμητικά (συνοπτικά) CHAR (M): αλφαριθμητικό σταθερού μεγέθους M. Π.χ. char(10) VARCHAR(M): αλφαριθμητικό μεταβλητού μεγέθους M Π.χ. Varchar(50) ΤEXT: Πεδίο κειμένου με μέγιστο μήκος Υπάρχουν και άλλοι τύποι αλλά αναφέρουμε συνοπτικά μερικούς απο αυτούς. 23

Ημερομηνίες και Ώρες (συνοπτικά) DATE: τιμή ημερομηνίας με μoρφή EEEE-MM-HH (όπου E: έτος, Μ: Μήνας, Η: Ημέρα) DATETIME: τιμή ημερομηνίας και ώρας με μορφή EEEE-MM-HH ΩΩ:ΛΛ:ΔΔ (όπου Ω: ώρα, Λ: Λεπτά, Δ: Δευτερόλεπτα) ΤΙΜΕ: Ώρα με μορφή ΩΩ:ΛΛ:ΔΔ Υπάρχουν και άλλοι τύποι αλλά αναφέρουμε συνοπτικά μερικούς απο αυτούς. 24

ΤΕΛΕΣΤΕΣ Λογικοί τελεστές: and, or, not Τελεστές σύγκρισης:, >=, =, <>, between, not between Αριθμητικοί τελεστές: +, -, *, /

SQL Εντολές Ανάκτηση - SELECT Εισαγωγή - INSERT Ενημέρωση - UPDATE Διαγραφή - DELETE

SELECT – ΑΝΑΚΤΗΣΗ ΔΕΔΟΜΕΝΩΝ SELECT a 1, a 2, …, a n FROM t1,t2,…,tn WHERE P Επιλέγουμε να προβάλουμε τα a1, a2,..., an γνωρίσματα Όπου P συνθήκη είναι αληθής

INSERT - ΕΙΣΑΓΩΓΗ INSERT INTO όνομα_πίνακα VALUES (val1,val2,…,valn) Εισαγωγή δεδομένων σε έναν πίνακα

DELETE - ΔΙΑΓΡΑΦΗ DELETE FROM table WHERE P Μπορούμε να διαγράψουμε μία ολόκληρη εγγραφή Όπου P συνθήκη είναι αληθής

UPDATE - ΕΝΗΜΕΡΩΣΗ UPDATE πίνακα SET όνομα στήλης1 = τιμή1, όνομα στήλης2 = τιμή2... WHERE P Όπου P συνθήκη είναι αληθής

SQL Constraints - Περιορισμοί Οι SQL περιορισμοί χρησιμοποιούνται για τον ορισμό κανόνων στις τιμές μιας στήλης του πίνακα. SQL περιορισμοί μπορούν να δηλωθούν κατά την δημιουργία ενός πίνακα ή και μετά την δημιουργία ενός πίνακα με ALTER TABLE.

SQL Constraints - Περιορισμοί NOT NULL – Μία στήλη δεν μπορεί να έχει NULL τιμή. UNIQUE - Ύπαρξη μοναδικών τιμών στην στήλη ενός πίνακα. PRIMARY – Πρωτεύον κλειδί του πίνακα. Συνδυασμός NOT NULL και UNIQUE. Το πρωτεύον κλειδί ενός πίνακα αποτελείται από ένα ή περισσότερα πεδία που χαρακτηρίζουν με μοναδικό τρόπο την κάθε γραμμή που αποθηκεύετε στον πίνακα.

SQL Constraints - Περιορισμοί FOREIGN KEY – ξένο κλειδί πίνακα Αναφέρεται στις τιμές του πεδίου ενός άλλου πίνακα. CHECK - Περιορισμός που επιβάλλεται στο πεδίο ορισμού ενός ή περισσότερων γνωρισμάτων. Περιορίζει τις δυνατές τιμές ενός γνωρίσματος βάσει λογικής συνθήκης. Π.χ. (CHECK (CustomerId) > 0) DEFAULT: Καθορίζει ότι ένα πεδίο έχει προκαθορισμένη τιμή η οποία εισάγεται αυτόματα σε περίπτωση που ο χρήστης δεν εισάγει μία τιμή στο πεδίο αυτό.

Σχήμα Βάσης Δεδομένων «e-shop» Πίνακας 1: Customers (πελάτες εταιρείας) – Πεδία: CustomerId, name, surname,address Πίνακας 2: Orders (παραγγελίες πελατών) – Πεδία: OrderId, CustomerId, OrderDate

Σχήμα Βάσης Δεδομένων «e-shop» Κάθε πίνακας έχει ένα πρωτεύον κλειδί. Το πρωτεύον κλειδί μπορεί να είναι απλό (ένα πεδίο) ή σύνθετο (συνδυασμός πεδίων). Κάθε πίνακας μπορεί να έχει πολλά ξένα κλειδιά ή και κανένα ξένο κλειδί.

Σχήμα Βάσης Δεδομένων «e-shop» Πίνακας 1: Customers (πελάτες εταιρείας) – Πεδία: CustomerId, name, surname,address Ο πίνακας Customers έχει πρωτεύον κλειδί το πεδίο CustomerId.

Σχήμα Βάσης Δεδομένων «e-shop» Πίνακας 2: Orders (παραγγελίες πελατών) Πεδία: OrderId, CustomerId, OrderDate Ο πίνακας Orders έχει πρωτεύον κλειδί το πεδίο OrderId. Ο πίνακας Orders έχει ξένο κλειδί το πεδίο CustomerId του Πίνακα Customers.

Σχήμα Βάσης Δεδομένων «e-shop» Πίνακας 1: Customers (πελάτες εταιρείας) – Πεδία: CustomerId, name, surname,address Πίνακας 2: Orders (παραγγελίες πελατών) – Πεδία: OrderId, CustomerId, OrderDate Ξένο κλειδί

Σχήμα Βάσης Δεδομένων «e-shop» Πίνακας 1: Customers (πελάτες εταιρείας) – Πεδία: CustomerId, name, surname,address Πίνακας 2: Orders (παραγγελίες πελατών) – Πεδία: OrderId, CustomerId, OrderDate – Το ξένο κλειδί CustomerId του πίνακα Orders παίρνει τιμές που αναφέρονται στις τιμές του πεδίου CustomerId του πίνακα Customers.

ΞΕΝΟ ΚΛΕΙΔΙ ON DELETE CASCADE Σε περίπτωση διαγραφής του κλειδιού αναφοράς στον parent table διαγράφονται οι εγγραφές και στο child table. Parent table: Customers Child table: Orders

ΞΕΝΟ ΚΛΕΙΔΙ ON DELETE RESTRICT Σε περίπτωση διαγραφής του κλειδιού στον parent πίνακα, επιτρέπεται η διαγραφή μόνο αν δεν υπάρχουν τιμές με αναφορά σ’ αυτό στον child table. Parent table: Customers Child table: Orders

ΞΕΝΟ ΚΛΕΙΔΙ ON DELETE SET NULL Σε περίπτωση διαγραφής του κλειδιού στον parent table, οι τιμές στον child table που αναφέρονται σ’ αυτόν παίρνουν την τιμή null. Parent table: Customers Child table: Orders

ΞΕΝΟ ΚΛΕΙΔΙ ON DELETE NO ACTION Σε περίπτωση διαγραφής του κλειδιού στον parent table, δεν θα πραγματοποιηθεί καμία ενέργεια. Parent table: Customers Child table: Orders

ΞΕΝΟ ΚΛΕΙΔΙ Ομοιώς και με ON UPDATE { NO ACTION | CASCADE | SET NULL | RESTRICT} Link: ate-table-foreign-keys.html ate-table-foreign-keys.html

JOIN – ΣΥΖΕΥΞΗ/ΣΥΣΧΕΤΙΣΗ Ανάκληση δεδομένων από πολλούς πίνακες. Διαφορετικούς τύπους συζεύξεων. Παράδειγμα με 3 πίνακες: EMPLOYEE, PROJECTS, WORKS_ON

JOIN – ΣΥΖΕΥΞΗ/ΣΥΣΧΕΤΙΣΗ Ένας Υπάλληλος δουλεύει σε πολλά έργα. Σε ένα έργο μπορούν να δουλεύουν πολλοί υπάλληλοι. PROJECTS Employee Πίνακας WORKS_ON Πίνακας

JOIN – ΣΥΖΕΥΞΗ/ΣΥΣΧΕΤΙΣΗ Ένας Υπάλληλος δουλεύει σε πολλά έργα. Σε ένα έργο μπορούν να δουλεύουν πολλοί υπάλληλοι. PROJECTS Employee Πίνακας WORKS_ON Πίνακας Ξένο κλειδί

JOIN Να βρείτε τους κωδικούς,τα ονοματεπώνυμα των υπαλλήλων και τους τίτλους των έργων στα οποία συμμετέχουν. SELECT E.EMPLOYEE_ID, E.NAME, E.SURNAME,P.NAME FROM EMPLOYEE E, PROJECTS P, WORKS_ON W WHERE E.EMPLOYEE_ID = W.EMPLOYEE_ID AND P.PROJECT_ID = W.PROJECT_ID;

JOIN Να βρείτε τα ονόματα,επώνυμα των υπαλλήλων και τους τίτλους των υπαλλήλων που συμμετέχουν σε αυτά.

LEFT-JOIN (ΑΡΙΣΤΕΡΗ ΣΥΖΕΥΞΗ) SELECT E.NAME, E.SURNAME,W.PROJECT_ID FROM EMPLOYEE E LEFT JOIN WORKS_ON W ON E.EMPLOYEE_ID = W.EMPLOYEE_ID

RIGHT-JOIN (ΔΕΞΙΑ ΣΥΖΕΥΞΗ) SELECT E.NAME, E.SURNAME,W.PROJECT_ID FROM WORKS_ON W RIGHT JOIN EMPLOYEE E ON W.EMPLOYEE_ID = E.EMPLOYEE_ID

SQL Συναθροιστικές συναρτήσεις – Aggregate functions AVG() – Επιστρέφει τον μέσο όρο COUNT(*) – Επιστρέφει τον αριθμό των εγγραφών FIRST() – Επιστρέφει την πρώτη τιμή LAST() – Επιστρέφει την τελευταία τιμή MAX() – Επιστρέφει την μεγαλύτερη τιμή MIN() – Επιστρέφει την μικρότερη τιμή SUM() – Επιστρέφει το άθροισμα

SQL Συναθροιστικές συναρτήσεις Παράδειγμα Πίνακας «EMPLOYEE» EMPLOYEE_IDNAMELASTNAMESALARY 1ΜαρίαΠαπαδάκη800 2ΜανόληςΚαπετανάκης1000 3ΣοφίαΠασχαλίδου600 4ΓιώργοςΠαπαδάκης600 5ΕλένηΜιχαηλίδου1200

SQL – AVG συνάρτηση Παράδειγμα: Βρείτε τον μέσο μισθό ενός εργαζομένου SELECT AVG(SALARY) FROM EMPLOYEE EMPLOYEE_IDNAMELASTNAMESALARY 1ΜαρίαΠαπαδάκη800 2ΜανόληςΚαπετανάκης1000 3ΣοφίαΠασχαλίδου600 4ΓιώργοςΠαπαδάκης600 5ΕλένηΜιχαηλίδου1200 ΑΠΟΤΕΛΕΣΜΑ 840

SQL – ΜΑΧ συνάρτηση Παράδειγμα: Βρείτε τον μεγαλύτερο μισθό ενός εργαζομένου SELECT ΜΑΧ(SALARY) FROM EMPLOYEE EMPLOYEE_IDNAMELASTNAMESALARY 1ΜαρίαΠαπαδάκη800 2ΜανόληςΚαπετανάκης1000 3ΣοφίαΠασχαλίδου600 4ΓιώργοςΠαπαδάκης600 5ΕλένηΜιχαηλίδου1200 ΑΠΟΤΕΛΕΣΜΑ 1200

SQL – ΜIN συνάρτηση Παράδειγμα: Βρείτε τον μικρότερο μισθό ενός εργαζομένου SELECT ΜΙΝ(SALARY) FROM EMPLOYEE EMPLOYEE_IDNAMELASTNAMESALARY 1ΜαρίαΠαπαδάκη800 2ΜανόληςΚαπετανάκης1000 3ΣοφίαΠασχαλίδου600 4ΓιώργοςΠαπαδάκης600 5ΕλένηΜιχαηλίδου1200 ΑΠΟΤΕΛΕΣΜΑ 600

SQL – COUNT συνάρτηση Παράδειγμα: Βρείτε το συνολικό πλήθος των εργαζομένων SELECT COUNT(*) FROM EMPLOYEE EMPLOYEE_IDNAMELASTNAMESALARY 1ΜαρίαΠαπαδάκη800 2ΜανόληςΚαπετανάκης1000 3ΣοφίαΠασχαλίδου600 4ΓιώργοςΠαπαδάκης600 5ΕλένηΜιχαηλίδου1200 ΑΠΟΤΕΛΕΣΜΑ 5

SQL – SUM συνάρτηση Παράδειγμα: Βρείτε το άθροισμα όλων των μισθών των εργαζομένων SELECT SUM(SALARY) FROM EMPLOYEE EMPLOYEE_IDNAMELASTNAMESALARY 1ΜαρίαΠαπαδάκη800 2ΜανόληςΚαπετανάκης1000 3ΣοφίαΠασχαλίδου600 4ΓιώργοςΠαπαδάκης600 5ΕλένηΜιχαηλίδου1200 ΑΠΟΤΕΛΕΣΜΑ 4200

SQL – SUM συνάρτηση Παράδειγμα: Βρείτε το άθροισμα όλων των μισθών των εργαζομένων SELECT SUM(SALARY) FROM EMPLOYEE EMPLOYEE_IDNAMELASTNAMESALARY 1ΜαρίαΠαπαδάκη800 2ΜανόληςΚαπετανάκης1000 3ΣοφίαΠασχαλίδου600 4ΓιώργοςΠαπαδάκης600 5ΕλένηΜιχαηλίδου1200 ΑΠΟΤΕΛΕΣΜΑ 4200

SQL Συναρτήσεις Κειμένου – String functions CONCAT- Συνένωση διαφόρων στηλών CONCAT(στήλη1, στήλη2,...,στήλη n ) Επειδή η συνένωση χρησιμοποιείται για την δημιουργία μίας νέας τιμής, χρειαζόμαστε τα ψευδώνυμα της SQL (AS (alias))

SQL Συναρτήσεις Κειμένου – String functions EMPLOYEE_IDNAMELASTNAMESALARY 1ΜαρίαΠαπαδάκη800 2ΜανόληςΚαπετανάκης1000 3ΣοφίαΠασχαλίδου600 4ΓιώργοςΠαπαδάκης600 5ΕλένηΜιχαηλίδου1200

SQL Συναρτήσεις Κειμένου – String functions SELECT CONCAT(NAME,SURNAME) AS NewName FROM EMPLOYEE Αποτέλεσμα: Λείπει το κενό μεταξύ των στηλών.

SQL Συναρτήσεις Κειμένου – String functions SELECT CONCAT(name,' ',surname) AS NewName FROM EMPLOYEE Αποτέλεσμα: Τώρα υπάρχει κενό μεταξύ των στηλών Δυνατότητα ενσωμάτωσης αλφαριθμητικών τοποθετώντας τα με απλά εισαγωγικά.

SQL Συναρτήσεις Κειμένου – String functions SELECT CONCAT(NAME, ',',SURNAME,',', SALARY) AS Employee FROM EMPLOYEE Αποτέλεσμα: Τώρα υπάρχουν κόμματα μεταξύ των στηλών

Σύνδεσμοι ntro.asp ntro.asp