ΔΟΜΕΣ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ

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

Download "ΔΟΜΕΣ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ"

Transcript

1 ΔΟΜΕΣ ΚΑΙ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΣΗΜΕΙΩΣΕΙΣ (Κατασκευή ΒΔ με τη ΓΛΩΣΣΑ MySQL)

2 ΕΙΣΑΓΩΓΗ Βάση δεδομένων-βδ (Data Base-DB) είναι ένα πλήθος στοιχείων συναφών μεταξύ τους, τοποθετημένα και ταξινομημένα με συγκεκριμένο τρόπο. Με τη βοήθεια μιας Βάσης Δεδομένων μπορούμε να καταχωρούμε, να αναζητάμε και να ταξινομούμε τα δεδομένα μας γρήγορα και αποτελεσματικά. Μερικά από τα πλεονεκτήματα που έχει μια ΒΔ είναι η λεπτομερής περιγραφή δεδομένων, η ανεξαρτησία των δεδομένων, η αποδοτικότερη διαχείριση των δεδομένων, η προστασία των δεδομένων, η δημιουργία δικαιώματα για τους χρήστες, οι κατασκευή μηχανισμών ταυτόχρονης προσπέλασης και η μεγάλη επεκτασιμότητα της ΒΔ. Για την κατασκευή μιας ΒΔ αφού την έχουμε σχεδιάσει και μοντελοποιήσει με την βοήθεια των διαγραμμάτων Οντοτήτων Συσχετίσεων-ΟΣ (entity relationship-er), και την έχουμε κανονικοποιήσει, χρησιμοποιούμε συγκεκριμένες εφαρμογές για την κατασκευή και την διαχείρησή της, τα Συστήματα Διαχείρισης Βάσεων Δεδομένων- ΣΔΒΔ (Data Base Management System-DBMS), με τα οποία μπορούμε να κάνουμε εισαγωγή, ενημέρωση, διαγραφή και αναζήτηση δεδομένων. Ένα ΣΔΒΔ να παρέχει προστασία των δεδομένων μας, μας βοηθά να δημιουργούμε χρήστες καθώς και να υποστηρίξουμε ταυτόχρονη προσπέλαση χρηστών. Ένα τμήμα ενός ΣΔΒΔ είναι και η γλώσσα προγραμματισμού της ΒΔ. Μια εφαρμογή δημιουργίας και διαχείρισης ΒΔ που ουσιαστικά αποτελείται από δύο γλώσσες. Την Γλώσσα Ορισμού με την οποία περιγράφουμε τις οντότητες, τις σχέσεις, τους περιορισμούς της ΒΔ αλλά και κατασκευάζουμε την ΒΔ. Την Γλώσσα Χειρισμού με την οποία εισάγουμε, τροποποιούμε, διαγράφουμε δεδομένα αλλά και θέτουμε ερωτήματα αναζήτησης προς το ΣΔΒΔ. Υπάρχουν γλώσσες προγραμματισμού ΒΔ οι οποίες υποστηρίζουν μεγάλες ΒΔ και έχουν υψηλό κόστος όπως οι Oracle, IBM DB, Microsoft SQL Server, αλλά και οι γλώσσες προγραμματισμού ΒΔ ανοικτού κώδικά όπως οι MySQL, PostgreSQL οι οποίες έχουν μηδενικό κόστος χρησιμοποιούνται κατά κόρον σε μικρές αλλά και μεσαίες εφαρμογές και υποστηρίζονται από πολλές ιστοσελίδες στο internet. Εμείς στα πλαίσια του εργαστηριακού μαθήματος θα αναπτύξουμε ένα συγκεκριμένο σενάριο κατασκευής και διαχείρισης μιας ΒΔ με την βοήθεια της γλώσσας προγραμματισμού MySQL. Η MySQL είναι ένα λογισμικό κατασκευής ΒΔ ανοικτού κώδικα που σημαίνει ότι την βρίσκουμε δωρεάν στην επίσημη ιστοσελίδα Με την MySQL 2

3 μπορούμε να φτιάξουμε και να διαχειριζόμαστε πολλές ΒΔ σε έναν υπολογιστή με την βοήθεια του ενσωματωμένου Server που διαθέτει τις οποίες ΒΔ μπορούν να τις μοιράζονται πολλοί χρήστες clients που επικοινωνούν με την MySQL. Άρα με βάση τα παραπάνω συμπεραίνουμε τελικά ότι η MySQL δεν είναι απλά μια γλώσσα προγραμματισμού ΒΔ αλλά ένα ολοκληρωμένο ΣΔΒΔ. Στις παρούσες εργαστηριακές σημειώσεις θα δούμε πώς με την βοήθεια της MySQL μπορούμε να κατασκευάσουμε μια ΒΔ, να εισάγουμε δεδομένα σε αυτήν καθώς και να τροποποιήσουμε, να ενημερώσουμε ή να τα διαγράψουμε. Θα δούμε τους τρόπους επιλογής των δεδομένων από την βάση, θέτοντας ερωτήματα με διάφορους περιορισμούς, όπως την ταξινόμηση την ομαδοποίηση, αλλά και την μορφοποίηση αποτελεσμάτων με την βοήθεια συναρτήσεων. Θα δούμε επίσης την συλλογή πληροφορίας από διαφορετικούς πίνακες με την βοήθεια της σύζευξης των πινάκων. 3

4 ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΤΗΣ MySQL Τύποι στην MySQL Κατά την κατασκευή των πινάκων σε μια ΒΔ θα πρέπει να επιλέξουμε τον τύπο της κάθε στήλης του πίνακα, με άλλα λόγια από το τι δεδομένα θα καταχωρήσουμε σε κάθε στήλη θα επιλέξουμε και τον τύπο της στήλης. Σημ. επιλογή τύπου γίνεται σε όλες τις γλώσσες προγραμματισμού. Οι ακόλουθοι τύποι είναι οι τύποι δεδομένων που χρησιμοποιούνται στην MySQL. Τύπος Κειμένου Αριθμητικός Τύπος Τύπος Ημερομηνίας και ώρας Επιλογή του τύπου Η επιλογή του τύπου δεδομένων που θα χρησιμοποιηθεί γίνεται ως ακολούθως: Για στήλες αλφαριθμητικών (π.χ. ονομάτων, διευθύνσεων κλπ) χρησιμοποιείται ο Τύπος Κειμένου. Για στήλες ποσών ή ποσοτήτων χρησιμοποιείται ο Αριθμητικός Τύπος. Για στήλες ημερομηνιών χρησιμοποιείται ο τύπος ημερομηνίας (ή και ώρας). Ακολουθεί μια συνοπτική περιγραφή των τύπων κειμένου και αριθμητικού. Τύπος Κειμένου Για στήλες στις οποίες θα καταχωρήσουμε ονόματα, διευθύνσεις, τηλέφωνα ή οποιαδήποτε άλλη αλφαριθμητική τιμή συνήθως χρησιμοποιούμε τον τύπο CHAR ή VARCHAR. Τύπος CHAR Σύνταξη: CHAR(μήκος στήλης) 4

5 Είναι σταθερού μήκους με μέγεθος αυτό που έχει ως όρισμα η παρένθεση. Εάν η λέξη είναι μικρότερη από το προκαθορισμένο μήκος το υπόλοιπο γεμίζει με κενά διαστήματα. Αν είναι μεγαλύτερη κόβονται οι τελευταίοι χαρακτήρες της λέξης Καταλαμβάνει περισσότερο χώρο στην μνήμη του συστήματος και Έχει καλύτερες αποδόσεις. Σημ. Εάν έχουμε δηλώσει σε μια στήλη τύπο CHAR(2) και γράψουμε ένα αλφαριθμητικό 5 χαρακτήρων οι τελευταίοι 3 χαρακτήρες της λέξης θα κοπούν. Τύπος VARCHAR Σύνταξη: VARCHAR(μήκος στήλης) Είναι τύπος αλφαριθμητικού μεταβλητού μήκους, δηλαδή κάθε φορά δεσμεύει από το χώρο για τους χαρακτήρες που περιέχει η λέξη. Καταλαμβάνει μικρότερο χώρο στη μνήμη. Δεν έχει τόσο καλές αποδόσεις σε μεγάλες ΒΔ. Χρησιμοποιούμε συνήθως πάντα τύπο VARCHAR εκτός εάν πρέπει να έχουμε στήλη σταθερού μήκους (π.χ στήλη που περιέχει αριθμούς τηλεφώνου) όπου εκεί δηλώνουμε την στήλη CHAR. Αριθμητικός Τύπος Τύπος ακεραίων αριθμών INT Σύνταξη: INT(μήκος) Έχει συγκεκριμένο μήκος. Δεσμεύει χώρο 4bytes στη μνήμη (δηλ. 4X8 bits=32bits) άρα μπορεί να αποθηκεύσει αριθμούς εύρους (2 32 ) δηλαδή τους αριθμούς από: έως συμπεριλαμβανομένου και του 0 ή εάν δηλωθεί ως τύπος μη προσημασμένων ακεραίων αριθμητικών τιμών UNSIGNED ΙΝΤ τους αριθμούς από: 0 έως

6 Τύπος πραγματικών αριθμών με δεκαδικό μέρος. Ο τύπος FLOAT είναι μικρός πραγματικός αριθμός κινητής υποδιαστολής. Σύνταξη: FLOAT(μήκος, δεκαδικά) Ο τύπος DOUBLE είναι μεγάλος πραγματικός αριθμός κινητής. υποδιαστολής Σύνταξη: DOUBLE(μήκος, δεκαδικά) Ο τύπος DECIMAL είναι μεγάλος πραγματικός αριθμός σταθερής υποδιαστολής. Σύνταξη: DECIMAL(μήκος, δεκαδικά) Προσδιορισμοί Στηλών Εκτός από την επιλογή του τύπου της κάθε στήλης γίνεται και ο προσδιορισμός της συμπεριφοράς της στήλης. Πιο κάτω παρατίθενται κάποιοι από τους προσδιορισμούς των στηλών ενός πίνακα. Προσδιορισμός AUTO_INCREMENT Σύνταξη: όνομα_στήλης AUTO_INCREMENT Ο προσδιορισμός αυτός χρησιμοποιείται σε μία στήλη αριθμητικών τιμών ακεραίων για να περάσει σε μια νέα εισαγωγή τιμής, την αμέσως επόμενη παραδεκτή τιμή. Π.χ. σε μία στήλη κωδικών με την πρώτη τιμή να είναι η 001 τότε η επόμενη που θα καταχωρηθεί στην στήλη λόγω του προσδιορισμού AUTO_INCREMENT θα είναι η τιμή 002, η επόμενη η τιμή 003 κοκ. Προσδιορισμός UNSIGNED Σύνταξη: όνομα_στήλης UNSIGNED Ο προσδιορισμός αυτός χρησιμοποιείται σε αριθμητικούς τύπους και δηλώνει ότι η στήλη θα δέχεται μόνο μη προσημασμένες αριθμητικές τιμές, δηλαδή μόνο θετικούς αριθμούς. 6

7 Προσδιορισμός ZEROFILL Σύνταξη: όνομα_στήλης ZEROFILL Ο προσδιορισμός αυτός γεμίζει τον υπόλοιπο χώρο σε μία αριθμητική στήλη με μηδενικά όταν η αριθμητική τιμή που εισάγεται στη στήλη είναι μικρότερη από το μήκος που έχει οριστεί και χρησιμοποιείται σε στήλες που περιέχουν για παράδειγμα ΑΦΜ ή ταχυδρομικό κωδικό περιοχής. Η στήλη ZEROFILL είναι υποχρεωτικά και UNSIGNED. Άρα η σωστή δήλωση της στήλης είναι: όνομα_στήλης UNSIGNED ZEROFILL. Προσδιορισμός NULL και NOT NULL Σύνταξη: όνομα_στήλης NULL Ο προσδιορισμός NULL δηλώνει ότι σε κάποιο πεδίο μιας στήλης (κελί) δεν υπάρχει ακόμα τιμή. Αυτό σημαίνει ότι η θέση δεν έχει ούτε την τιμή 0, αλλά ούτε είναι και κενή. Σύνταξη: όνομα_στήλης NOT NULL Ο προσδιορισμός NOT NULL δηλώνει ότι όλα τα πεδία της στήλης πρέπει να έχουν υποχρεωτικά μία τιμή ή αλλιώς δεν πρέπει να είναι NULL. Αυτό ισχύει οπωσδήποτε στις στήλες που είναι δηλωμένες ως κλειδιά σε έναν πίνακα ή στις στήλες ονομάτων. Παράδειγμα δήλωσης μιας στήλης με προσδιορισμούς: Όνομα_στήλης INT(5) NOT NULL ZEROFILL AUTO_INCREMENT Σημ. δεν επιτρέπεται να χρησιμοποιούμε τον τελεστή κόμμα για να χωρίσουμε τον τύπο και τους προσδιορισμούς της στήλης. 7

8 Ευρετήρια Τα ευρετήρια είναι ένας μηχανισμός της MySQL, που βοηθά να βελτιώνεται η ταχύτητα απάντησης σε ερωτήματα προς την Βάση Δεδομένων και εν γένει βελτιώνεται η συνολική απόδοση της Βάσης Δεδομένων. Εφαρμόζονται επάνω στις στήλες ενός πίνακα της ΒΔ. Χρησιμοποιώντας ευρετήρια ουσιαστικά προσδιορίζουμε την σειρά προτεραιότητας στην ΒΔ. Δηλαδή σε ένα ερώτημα καθορίζουμε ποια θα είναι η προτεραιότητα αναζήτησης στις στήλες ενός πίνακα. Ευρετήρια είναι τα εξής: UNIQUE (καθορίζει ότι κάθε πεδίο της στήλης θα έχει μία και μοναδική τιμή) PRIMARY KEY (είναι ένα ευρετήριο UNIQUE. Είναι η στήλη κλειδί ενός πίνακα) INDEX (δίνει προτεραιότητα στη στήλη στην οποία εφαρμόζεται) Μηχανές Αποθήκευσης Οι μηχανές αποθήκευσης είναι ο τρόπος αποθήκευσης και διαχείρισης των πινάκων μιας ΒΔ. Μηχανή MyISAM Πλεονεκτήματα Διαχειρίζεται με ταχύτητα τα ερωτήματα επιλογής και εισαγωγής. Έχει πολύ καλή απόδοση και λειτουργεί με μεγάλη ταχύτητα. Μειονεκτήματα Δεν μπορεί να διαχειριστεί εφαρμογές συναλλαγών. Μηχανή InnoDB (είναι η προεπιλεγμένη στη MySQL) Πλεονεκτήματα Διαχειρίζεται με ταχύτητα τα ερωτήματα ενημέρωσης. Μπορεί να διαχειριστεί εφαρμογές συναλλαγών Μειονεκτήματα 8

9 Μειονεκτήματα Είναι σε γενικές γραμμές πιο αργή από τις άλλες. Μηχανή MEMORY Πλεονεκτήματα Είναι γρήγορη γιατί οι εγγραφές αποθηκεύονται στην μνήμη του συστήματος. Υποστηρίζει τύπο στηλών CHAR. Μειονεκτήματα Δεν υποστηρίζει προσδιορισμό AUTO_INCREMENT. Λόγω της αποθήκευσης στην μνήμη οι εγγραφές είναι επικίνδυνο να χαθούν σε μια κατάρρευση του υπολογιστή. Κατασκευή της Βάσης Δεδομένων Αυτά που πρέπει να προσέξουμε κατά την κατασκευή μιας Βάσης Δεδομένων είναι τα ακόλουθα. Το όνομα της βάσης, του κάθε πίνακα και της κάθε στήλης πρέπει να είναι: Περιγραφικά Ευκολομνημόνευτα Μοναδικά Η διάταξη των στηλών μέσα στους πίνακες γίνεται με δικά μας κριτήρια. Η στήλη κλειδί μπαίνει πάντα στην αρχή του πίνακα. Ως προς την μοναδικότητα των ονομάτων επισημαίνουμε τα εξής: Για τις Βάσεις Δεδομένων, μια ΒΔ πρέπει να έχει διαφορετικό όνομα από μια άλλη στο ίδιο σύστημα αρχείων. Για τους πίνακες της ΒΔ, κάθε πίνακας σε μια ΒΔ πρέπει να έχει διαφορετικό όνομα από οποιοδήποτε άλλο μέσα στη ίδια ΒΔ. (δεν μπορεί να υπάρχουν δύο πίνακες με το όνομα «Πελάτης» στην ίδια ΒΔ). 9

10 Πίνακες σε διαφορετικές ΒΔ μπορεί να έχουν το ίδιο όνομα. (μπορεί να υπάρχουν δύο πίνακες με το όνομα «Πελάτης» σε διαφορετικές ΒΔ). Για τις στήλες των πινάκων, κάθε στήλη μέσα σε έναν πίνακα πρέπει να έχει διαφορετικό όνομα από μια άλλη στήλη του ίδιου πίνακα. (δεν μπορούν να υπάρχουν δύο στήλες με το όνομα «Τηλέφωνο» μέσα στον ίδιο πίνακα). 10

11 ΔΟΥΛΕΥΟΝΤΑΣ ΜΕ ΤΗΝ MySQL Κανόνες για την σωστή σχεδίαση των πινάκων Για την σωστή σχεδίαση των πινάκων στην ΒΔ ακολουθούμε κάποιους απλούς κανόνες που αναλύονται πιο κάτω. Για τα ονόματα χρησιμοποιούμε μόνο αλφαριθμητικούς χαρακτήρες. Δεν χρησιμοποιούμε ποτέ κενά διαστήματα. Τα αλφαριθμητικά πρέπει να έχουν λιγότερους από 64 χαρακτήρες. Τα ονόματα των στηλών πρέπει να είναι περιγραφικά και μοναδικά για κάθε πίνακα, εκτός από τα κλειδιά. Τα ονόματα των πινάκων γράφονται σε πληθυντικό αριθμό. Τα ονόματα στηλών γράφονται σε ενικό αριθμό. Δεν χρησιμοποιούμε τις δεσμευμένες λέξεις της MySQL. Αν πρέπει να δώσουμε όνομα που αποτελείται από δύο λέξεις, τις χωρίζουμε με το χαρακτήρα υπογράμμισης ( _ ). Χρησιμοποιούμε μόνο μικρά γράμματα και όχι κεφαλαία. Για να δηλώσουμε τις στήλες κλειδιά των πινάκων της δίνουμε όνομα με δύο λέξεις η μια εκ των οποίων θα είναι το συνθετικό κωδ, ή code ή id. Σε έναν πίνακα ο οποίος έχει και ξένα κλειδιά το πρωτεύον κλειδί μπαίνει πρώτο, ακολουθούν τα ξένα κλειδιά και έπειτα οι απλές στήλες του πίνακα. Κανόνες για την σωστή εισαγωγή τιμών και εκτέλεση των ερωτημάτων Κανόνες φυσικά υπάρχουν και για την σωστή εκτέλεση των ερωτημάτων. Τις αριθμητικές τιμές δεν τις βάζουμε σε εισαγωγικά και δεν τις χωρίζουμε με κόμματα. Τις αλφαριθμητικές τιμές (char, varchar κλπ), τις βάζουμε πάντα σε εισαγωγικά. Τις ημερομηνίες και ώρες τις βάζουμε πάντα σε εισαγωγικά. Στις συναρτήσεις δεν βάζουμε ποτέ εισαγωγικά. 11

12 Κάθε ερώτημα τερματίζεται με το ελληνικό ερωτηματικό ή αλλιώς τερματικό εντολής. Οι εισαγωγή των τιμών σε ερωτήματα γίνεται μέσα σε παρένθεση. Ο διαχωρισμός των τιμών γίνεται με τον τελεστή κόμμα (,). Ο τελεστής κόμμα δεν χρησιμοποιείται ποτέ ανάμεσα σε εντολές, ονόματα πινάκων, συναρτήσεις. Την τιμή NULL δεν την βάζουμε ποτέ σε εισαγωγικά. Για να πλοηγηθούμε στα ερωτήματα που έχουμε εισάγει, πατάμε το πλήκτρο F1 και τα βέλη πάνω και κάτω. Εντολές της MySQL Κάποιες από εντολές που χρησιμοποιούμε στη MySQL φαίνονται πιο κάτω. ΕΝΤΟΛΗ ΣΗΜΑΣΙΑ create δημιουργία ΒΔ ή πίνακα. delete διαγραφή τιμές από πίνακες. drop διαγραφή ΒΔ ή πίνακα. update ενημέρωση πίνακα. insert εισαγωγή τιμών σε πίνακα. alter αλλαγή δομής πίνακα. show εμφάνιση δομής ΒΔ ή πίνακα. select επιλογή δεδομένων από τον πίνακα. 12

13 ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ Για την εισαγωγή δεδομένων (τιμών) στους πίνακες χρησιμοποιούμε την εντολή INSERT με την βοήθεια των όρων INTO και VALUES. Τρόποι εισαγωγής τιμών ΟΛΟΚΛΗΡΩΜΕΝΗ ΕΙΣΑΓΩΓΗ ΤΙΜΩΝ Πληκτρολογούμε κατά σειρά τις στήλες και κατόπιν μετά τον όρο VALUES τις τιμές κατ αντιστοιχία. INSERT INTO όνομα_πίνακα (στήλη1, στήλη2, στήλη3,...) VALUES (01, MARIOS, TSOUKALAS,...); ΣΤΟΧΕΥΜΕΝΗ ΕΙΣΑΓΩΓΗ ΤΙΜΩΝ Πληκτρολογούμε συγκεκριμένες στήλες στις οποίες θέλουμε να εισάγουμε τιμές και αντίστοιχα τις τιμές. INSERT INTO όνομα_πίνακα (στήλη2, στήλη5) VALUES ( DHMHTRHS, ); Σημ. στις στήλες που δεν έχει δοθεί τιμή είναι σαν να υπάρχει η τιμή NULL. ΕΙΣΑΓΩΓΗ ΤΙΜΩΝ ΧΩΡΙΣ ΟΝΟΜΑΤΑ ΣΤΗΛΩΝ Πληκτρολογούμε μόνο τις τιμές. Πρέπει να είμαστε σίγουροι ότι δεν θα κάνουμε λάθος. INSERT INTO όνομα_πίνακα VALUES (01, MARIOS, TSOUKALAS, NULL,...); 13

14 ΕΙΣΑΓΩΓΗ ΠΟΛΛΩΝ ΠΛΕΙΑΔΩΝ ΤΑΥΤΟΧΡΟΝΑ Εισάγουμε περισσότερες από μια πλειάδες (εγγραφές) στο ίδιο ερώτημα. Χωρίζουμε τις πλειάδες με τον τελεστή κόμμα αφού τις έχουμε τοποθετήσει σε ξεχωριστές παρενθέσεις. Το τερματικό εντολής μπαίνει μετά το την τελευταία πλειάδα. INSERT INTO όνομα_πίνακα (στήλη1, στήλη2, στήλη3,...) VALUES (01, MARIOS, TSOUKALAS,...), (NULL, DHMHTRHS, PANOU,...), (NULL, NIKOS, SARRHS,...); Σημ. Η λέξη NULL μπαίνει στις στήλες με προσδιορισμό AUTO INCREMENT (συνήθως στα κλειδιά). Έτσι σε κάθε νέα εγγραφή, όπου υπάρχει το NULL η MySQL θα βάζει την επόμενη παραδεκτή τιμή γι αυτή την στήλη. 14

15 ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ Για να αλλάξουμε τιμές σε στήλες ή να βάλουμε τιμή σε κάποιο πεδίο μιας στήλης που είναι NULL ή να αλλάξουμε την τιμή κάποιου πεδίου χρησιμοποιούμε την εντολή UPDATE με την βοήθεια του όρου SET. Τρόποι ενημέρωσης ΕΝΗΜΕΡΩΣΗ ΜΙΑΣ ΣΤΗΛΗΣ UPDATE όνομα_πίνακα SET στήλη1= τιμή1 ; ΕΝΗΜΕΡΩΣΗ ΠΕΡΙΣΣΟΤΕΡΩΝ ΣΤΗΛΩΝ UPDATE όνομα_πίνακα SET στήλη1= τιμή1, στήλη2= τιμή2 ; Σημ. στις δύο προηγούμενες ενημερώσεις οι νέες τιμές περνάνε σε όλα τα πεδία της κάθε στήλης. ΕΝΗΜΕΡΩΣΗ ΣΥΓΚΕΚΡΙΜΕΝΗΣ ΕΓΓΡΑΦΗΣ (ΚΕΛΙΟΥ) Για να αλλάξουμε τιμή συγκεκριμένου πεδίου του πίνακα χρησιμοποιούμε την συνθήκη WHERE. UPDATE όνομα_πίνακα SET στήλη1= τιμή1 WHERE στήλη2= τιμή2 ; Σημ. εδώ η «στήλη1» θα αλλάξει τιμή μόνο αν ικανοποιείται η συνθήκη μετά τον όρο WHERE. Παράδειγμα (Εύρεση NULL τιμών): Βρες τους καθηγητές στους οποίους δεν έχει καταχωρηθεί ακόμη , δηλαδή όπου η στήλη έχει τιμές NULL και μετά βάλε τον mtsoukalas@teiste.gr στον καθηγητή με κωδικό 322. SELECT id, name FROM teachers WHERE IS NULL; 15

16 Ενημέρωση πίνακα: UPDATE teachers SET WHERE id=322; ΟΜΑΔΟΠΟΙΗΜΕΝΗ ΕΜΦΑΝΙΣΗ ΕΓΓΡΑΦΩΝ Για ομαδοποιημένη εμφάνιση των στοιχείων του πελάτη (κάθετα) χρησιμοποιούμε τον τελεστή \G χωρίς το ελληνικό ερωτηματικό στο τέλος του ερωτήματος. Άρα για να δούμε τα στοιχεία του καθηγητή με κωδικό 322 ομαδοποιημένα γράφουμε το ερώτημα: SELECT * FROM teachers WHERE id=322 \G ΕΝΗΜΕΡΩΣΗ ΜΕ ΠΕΡΙΟΡΙΣΜΟ Για να μην αλλάξουμε και κάποια άλλη τιμή κατά λάθος, χρησιμοποιούμε τον όρο LIMIT. Έτσι το προηγούμενο ερώτημα ενημέρωσης του του καθηγητή με κωδικό 322 διαμορφώνεται ως ακολούθως: UPDATE teachers SET ='mtsoukalas@teiste.gr' WHERE id=322 LIMIT 1; Σημ. ο όρος LIMIT 1 περιορίζει τις αλλαγές σε μία. 16

17 ΔΙΑΓΡΑΦΗ ΕΓΓΡΑΦΩΝ Όταν θέλουμε να διαγράψουμε εγγραφές από έναν πίνακα, χρησιμοποιούμε την εντολή DELETE. Σημ. Χρησιμοποιούμε πάντα την συνθήκη WHERE έτσι ώστε να εξασφαλίσουμε ότι δεν θα διαγραφούν όλες οι εγγραφές του πίνακα. ΔΙΑΓΡΑΦΗ ΣΥΓΚΕΚΡΙΜΕΝΗΣ ΕΓΓΡΑΦΗΣ: DELETE FROM όνομα_πίνακα WHERE στήλη1= τιμή1 ; ΔΙΑΓΡΑΦΗ ΟΛΩΝ ΤΩΝ ΕΓΓΡΑΦΩΝ ΤΟΥ ΠΙΝΑΚΑ: DELETE FROM όνομα_πίνακα; Σημ. όταν λέμε διαγραφή εγγραφής, εννοούμε διαγραφή όλης της πλειάδας (γραμμής) του πίνακα. ΔΙΑΓΡΑΦΗ ΟΛΟΥ ΤΟΥ ΠΙΝΑΚΑ Για να διαγράψουμε όλες τις εγγραφές του πίνακα αλλά και τον ίδιο τον πίνακα χρησιμοποιούμε την εντολή DROP: DROP όνομα_πίνακα; Σημ. Αυτή η εντολή διαγράφει τον πίνακα (την δομή του) αλλά και τις εγγραφές του. ΔΙΑΓΡΑΦΗ ΟΛΟΥ ΤΟΥ ΠΙΝΑΚΑ ΚΑΙ ΕΠΑΝΑΔΗΜΙΟΥΡΓΙΑ ΤΗΣ ΔΟΜΗΣ ΤΟΥ Υπάρχει τρόπος να διαγράψουμε τις εγγραφές ενός πίνακα αλλά και την δομή και να ξαναφτιάξουμε την δομή του. Αυτό γίνεται με την χρήση της εντολής TRUNCATE. TRUNCATE όνομα_πίνακα; 17

18 Σημ. πρέπει να προχωρούμε στην διαγραφή όταν έχουμε εξασφαλίσει ότι έχουμε πάρει από την ΒΔ αντίγραφο ασφαλείας. Παραδείγματα εντολών γλώσσας ορισμού της ΜySQL ΕΝΤΟΛΗ CREATE DATABASE db_name; CREATE TABLE tbl_name; USE db_name; SHOW DATABASES; SHOW CREATE DATABASE db_name; SHOW TABLES; SHOW COLUMNS FROM tbl_name; DESCRIBE tbl_name; SHOW CREATE TABLE tbl_name; DROP DATABASE db_name; DROP TABLE tbl_name; ALTER TABLE tbl_name CHANGE COLUMN clmn_name clmn_name_new ΟΡΟΣ; ALTER TABLE tbl_name ADD COLUMN clmn_name_1 ΟΡΟΣ AFTER clmn_name; ALTER TABLE tbl_name RENAME AS tbl_name_new; ALTER TABLE tbl_name ENGINE=MyISAM; ALTER TABLE tbl_name DROP COLUMN clmn_name_1; ALTER TABLE tbl_name ADD INDEX(column_name); ALTER TABLE tbl_name DROP INDEX index_name_1; ΕΞΗΓΗΣΗ δημιουργία βάσης (db_name = όνομα βάσης). δημιουργία πίνακα (tbl_name = όνομα πίνακα). χρήση της βάσης. εμφάνιση όλων των βάσεων. βλέπω τον τρόπο δημιουργίας της βάσης. εμφάνιση πινάκων. εμφάνιση των στηλών του πίνακα. ίδιο όπως πιο πάνω. εμφανίζει την δομή του πίνακα. διαγραφή βάσης και όλων των πινάκων της. διαγραφή πίνακα και όλων των στηλών του. τροποποίηση πίνακα: αλλαγή της στήλης clmn_name σε στήλη clmn_name_new με άλλους όρους. τροποποίηση πίνακα: προσθήκη στήλης clmn_name_1 με όρους μετά από την στήλη clmn_name. τροποποίηση πίνακα: αλλαγή ονόματος του πίνακα. τροποποίηση πίνακα: αλλαγή της μηχανής αποθήκευσης. τροποποίηση πίνακα: διαγραφή στήλης clmn_name_1. τροποποίηση πίνακα: προσθήκη ευρετηρίου (όνομα_στήλης). τροποποίηση πίνακα: διαγραφή υπάρχοντος ευρετηρίου. 18

19 ALTER TABLE tbl_name MODIFY COLUMN clmn_name_1 ΟΡΟΣ; ALTER TABLE tbl_name ADD CONSTRAINT k_fkeyname FOREIGN KEY (fk_name) REFERENCES tbl_name_1 (table pk) ON UPDATE CASCADE; τροποποίηση πίνακα: αλλαγή της ίδιας της στήλης clmn_name_1. τροποποίηση πίνακα: προσθήκη του κλειδιού του πίνακα tbl_name_1 ως ξένο κλειδί στον πίνακα tbl_name, με την προϋπόθεση ότι όποια αλλαγή υπάρξει θα γίνει και στους δύο πίνακες. 19

20 ΕΠΙΛΟΓΗ ΔΕΔΟΜΕΝΩΝ Από εδώ και πέρα για να θέτουμε ερωτήματα στην ΒΔ, που κατασκευάσαμε με στα προηγούμενα κεφάλαια με την γλώσσα ορισμού της MySQL, θα χρησιμοποιούμε την γλώσσα χειρισμού της MySQL. Σημ. με την γλώσσα ορισμού κατασκευάζουμε έναν πίνακα και εισάγουμε πλειάδες τιμών σε αυτόν, ενώ με την γλώσσα χειρισμού αναζητάμε από αυτόν αποθηκευμένη πληροφορία με συγκεκριμένο τρόπο εμφάνισης. Τα ερωτήματα επιλογής ξεκινούν με την εντολή SELECT και περιορίζουμε τα αποτελέσματα που θα επιστραφούν με την χρήση συνθηκών και τελεστών της MySQL. Έτσι για να επιλέξουμε στοιχεία από έναν πίνακα γράφουμε: SELECT στήλες FROM όνομα_πίνακα; ΕΠΙΛΟΓΗ ΣΥΓΚΕΚΡΙΜΕΝΩΝ ΣΤΗΛΩΝ ΤΟΥ ΠΙΝΑΚΑ Παράδειγμα: Επιλογή του κωδικού, του ονόματος και της περιγραφής όλων των ειδών της αποθήκης. SELECT prod_id, prod_name, prod_descr FROM products; ΕΠΙΛΟΓΗ ΟΛΩΝ ΤΩΝ ΕΓΓΡΑΦΩΝ ΤΟΥ ΠΙΝΑΚΑ Για να δούμε όλα τα προϊόντα της αποθήκης γράφουμε: SELECT * FROM products; 20

21 ΕΠΙΛΟΓΗ ΜΕ ΤΗΝ ΧΡΗΣΗ ΣΥΝΘΗΚΩΝ Εάν θέλουμε να επιστρέφονται συγκεκριμένες τιμές από την ΒΔ και να κάνουμε πιο αποδοτικά τα ερωτήματα χρησιμοποιούμε συνθήκες μαζί με τον όρο WHERE. Οι συνθήκες είναι ένα σύνολο από στήλες, τιμές και τελεστές που μπαίνουν μετά τους πίνακες στα ερωτήματα επιλογής. Η σύνταξη είναι η εξής: SELECT όνομα_στήλης FROM όνομα_πίνακα WHERE συνθήκη; Παράδειγμα: Να βρεθούν οι παραγγελίες του πελάτη 24: SELECT * FROM paragelies WHERE pel_id=24; Σημ. Μπορούμε επίσης να εκτελούμε κι απλές μαθηματικές πράξεις μέσα στην συνθήκη χρησιμοποιώντας τους αριθμητικούς τελεστές (+, -, *, /). ΕΥΡΕΣΗ ΕΓΓΡΑΦΩΝ ΜΕ ΤΟΝ ΤΕΛΕΣΤΗ ΙΣΟΤΗΤΑΣ Για να βρούμε μέσα σε ένα πεδίο κειμένου ή ημερομηνίας κάποια εγγραφή, χρησιμοποιούμε στην συνθήκη τον τελεστή ισότητας =. SELECT * FROM όνομα_πίνακα WHERE όνομα_στήλης = λέξη ; ΣΥΝΘΗΚΕΣ LIKE - NOT LIKE Για να βρούμε μέσα σε ένα πεδίο κειμένου κάποια εγγραφή την οποία δεν μπορούμε να την βρούμε με την χρήση τελεστή σύγκρισης, χρησιμοποιούμε τον τελεστή LIKE με χαρακτήρα μπαλαντέρ. SELECT * FROM όνομα_πίνακα WHERE όνομα_στήλης LIKE λέξη* ; Χαρακτήρες μπαλαντέρ: Το * (ή το %) υποκαθιστά πολλούς χαρακτήρες σε ένα κείμενο, Το? (ή το _) υποκαθιστά έναν χαρακτήρα. Παράδειγμα1: Να βρεθούν οι πελάτες που το επώνυμό τους αρχίζει από Παπα SELECT * FROM pelates WHERE pel_surname LIKE Παπα* ; 21

22 Παράδειγμα2: Να βρεθούν τα είδη που η περιγραφή τους τελειώνει σε nitor (τα monitor) SELECT * FROM products WHERE prod_descr LIKE %nitor ; Στον επόμενο πίνακα παρατίθενται κάποιοι από τους τελεστές στην MySQL καθώς και η σημασία τους. Τελεστές στην MySQL και η σημασία τους ΤΕΛΕΣΤΗΣ ΣΗΜΑΣΙΑ = Ίσο με < Μικρότερο από > Μεγαλύτερο από <= Μικρότερο από ή ίσο με >= Μεγαλύτερο από ή ίσο με!= ή <> Διάφορο του IS NOT NULL Έχει τιμή IS NULL Δεν έχει τιμή IN Τιμή που βρίσκεται σε έναν κατάλογο BETWEEN Μέσα σε ένα εύρος NOT Έξω από ένα εύρος BETWEEN OR ή II Όπου επαληθεύεται μία από τις δύο συνθήκες AND ή && Όπου επαληθεύονται και οι δύο συνθήκες NOT ή! Όπου η συνθήκη δεν επαληθεύεται 22

23 ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Όταν θέσουμε ένα ερώτημα στη ΒΔ λογικό είναι η βάση να μας επιστρέψει ότι πληροφορία έχει, πληροφορία που στην πραγματικότητα δεν μας χρειάζεται ολόκληρη. Γι αυτό πρέπει να θέσουμε κάποιους περιορισμούς στην ερώτηση προς την ΒΔ οι οποίοι θα διαμορφώσουν έτσι την επιστρεφόμενη απάντηση από την ΒΔ ώστε τελικά να πάρουμε μόνο τα χρήσιμα δεδομένα. Για τον περιορισμό και την τελική εμφάνιση του επιστρεφόμενου αποτελέσματος χρησιμοποιούμε συνθήκες και όρους της MySQL. ΣΥΝΘΗΚΗ WHERE Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER BY column_name; Σημ1. Εξ ορισμού (By default), η σειρά ταξινόμησης είναι αύξουσα. (ASC) Σημ2. Εξ ορισμού η ΒΔ ταξινομεί ως προς το πρωτεύον κλειδί (PRIMARY KEY). Σημ3. Εάν θέλουμε η σειρά να είναι φθίνουσα τότε μετά το όνομα στήλης χρησιμοποιούμε τον όρο DESC. Παράδειγμα: SELECT * FROM table_name ORDER BY column_name DESC; Πιο κάτω βλέπετε την σειρά εμφάνισης των επιστρεφομένων αποτελεσμάτων ενός ερωτήματος ανά τύπο δεδομένων. 23

24 Σειρά εμφάνισης αποτελεσμάτων ΣΕΙΡΑ ΑΡΙΘΜΗΤΙΚΟΣ ΤΥΠΟΣ ΤΥΠΟΣ NULL ΤΥΠΟΣ ΚΕΙΜΕΝΟΥ ΗΜΕΡΟΜΗΝΙΑΣ Αύξουσα ASC Από το μικρότερο στο Από το Α στο Ζ Από την παλαιότερη στην Εμφανίζον ται πρώτα μεγαλύτερο πιο πρόσφατη ημερομηνία Φθίνουσα DESC Από το μεγαλύτερο στο μικρότερο Από το Ζ στο Α Από την πιο πρόσφατη στην παλαιότερη ημερομηνία Εμφανίζον ται τελευταία Σημ. Όταν έχουμε σύνθετα ερωτήματα με συνθήκες where, ενώσεις ή και άλλους όρους η ταξινόμηση χρησιμοποιείται στο τέλος του ερωτήματος. ΠΕΡΙΟΡΙΣΜΟΣ ΤΟΥ ΠΛΗΘΟΥΣ ΕΠΙΣΤΡΟΦΗΣ Περιορίζουμε τα πλήθος των επιστρεφόμενων αποτελεσμάτων με τον όρο LIMIT. Ο όρος LIMIT δηλώνει πόσες εγγραφές θα επιστραφούν και χρησιμοποιείται με δύο τρόπους. 1ος τρόπος: SELECT στήλες FROM πίνακας LIMIT πλήθος_εγγραφών; Παράδειγμα SELECT * FROM πίνακας LIMIT 5; Σημ. Επιστρέφει τις 5 πρώτες πλειάδες του πίνακα. 2ος τρόπος: SELECT στήλες FROM πίνακας LIMIT σημείο_εκκίνησης, πλήθος_εγγραφών; Παράδειγμα SELECT * FROM πίνακας LIMIT 5, 12; Σημ. Επιστρέφει 12 πλειάδες του πίνακα ξεκινώντας από την 6. 24

25 Εν κατακλείδι: Ο όρος WHERE ORDER BY LIMIT Δηλώνει: ποιες εγγραφές θα επιστραφούν πως θα επιστραφούν πόσες εγγραφές θα επιστραφούν 25

26 ΣΥΖΕΥΞΗ (ΕΝΩΣΗ) ΠΙΝΑΚΩΝ Οι συζεύξεις πινάκων χρησιμοποιούνται για να εξαχθούν από τη ΒΔ πληροφορίες που βρίσκονται σε περισσότερους από έναν πίνακες. Οι συζεύξεις διακρίνονται σε εσωτερικές και εξωτερικές. ΕΣΩΤΕΡΙΚΗ ΣΥΖΕΥΞΗ Έστω μια σχέση r με σχήμα {Χ,Υ} και μίας σχέση s με σχήμα {Y,Z}. Φυσική σύζευξη (ή εσωτερική σύζευξη) είναι μια σχέση με σχήμα {Χ,Υ,Ζ} και κορμό το σύνολο των συνδυασμών των πλειάδων των R και S για τις οποίες οι τιμές στο κοινό γνώρισμα Υ ταυτίζονται. Δηλαδή μια πλειάδα της r θα συνδυαστεί με μια πλειάδα της s αν και μόνο αν οι τιμές στο κοινό γνώρισμα Υ ταυτίζονται μεταξύ τους. Το ερώτημα εσωτερικής σύζευξης είναι το παρακάτω: SELECT * FROM table1 INNER JOIN table2 ON table1.column1 = table2.column1; Εικ.1 Διάγραμμα Venn εσωτερικής σύζευξης πινάκων. Σημ. Στην επιλογή πληροφοριών με σύζευξη πινάκων πρέπει στην σύνταξη να χρησιμοποιούμε τελείες αν υπάρχουν στήλες στους πίνακες με το ίδιο όνομα. 26

27 Στο σενάριο που δουλεύουμε το ερώτημα είναι το ακόλουθο: SELECT * FROM paragelies INNER JOIN pelates ON paragelies.pel_id =pelates.pel_id ; Το ερώτημα αυτό θα επιστρέψει τις πλειάδες από τους δύο πίνακες όπου οι τιμές στις στήλες pelates.pel_id, paragelies.pel_id είναι κοινές. Με άλλα λόγια θα αντικαταστήσει το κλειδί pel_id στον πίνακα paragelies με όλες τις πληροφορίες από τον πίνακα πελάτες που αντιστοιχούν στο κλειδί. ΕΞΩΤΕΡΙΚΗ ΣΥΖΕΥΞΗ Οι εξωτερικές συζεύξεις επιστρέφουν εγγραφές που δεν ικανοποιούν κάποια συνθήκη. Η εξωτερική σύζευξη δίνει ως αποτέλεσμα ότι και η εσωτερική, αλλά και επιπλέον δίνει πλειάδες από την μία ή την άλλη σχέση που δεν έχουν ταιριαστές τιμές. Αν υπάρχουν τέτοιες πλειάδες θα εμφανιστούν στο αποτέλεσμα της εξωτερικής σύζευξης. Υπάρχουν δύο τέτοιες συζεύξεις, η αριστερή και η δεξιά. ΑΡΙΣΤΕΡΗ ΕΞΩΤΕΡΙΚΗ ΣΥΖΕΥΞΗ SELECT * FROM pelates LEFT JOIN paragelies ON paragelies.pel_id =pelates.pel_id ; Εικ.2 Διάγραμμα Venn αριστερής εξωτερικής σύζευξης πινάκων. 27

28 ΔΕΞΙΑ ΕΞΩΤΕΡΙΚΗ ΣΥΖΕΥΞΗ SELECT * FROM paragelies RIGHT JOIN pelates ON paragelies.pel_id =pelates.pel_id ; Εικ.3 Διάγραμμα Venn δεξιάς εξωτερικής σύζευξης πινάκων. Αυτά τα ερωτήματα επιστρέφουν τις ίδιες εγγραφές, επιστρέφουν δηλαδή όλους τους πελάτες που έχουν παραγγελίες αλλά και αυτούς που δεν εμφανίζονται στον πίνακα παραγγελίες. Σημ. Όταν δύο πίνακες έχουν το ίδιο όνομα κοινής στήλης μπορούμε πιο απλά να χρησιμοποιήσουμε τον όρο USING(όνομα κοινής στήλης). Δηλ: SELECT * FROM paragelies RIGHT JOIN pelates USING(pel_id); Στα ερωτήματα μπορούμε να επιστρέψουμε συγκεκριμένες τιμές από συγκεκριμένα γνωρίσματα των δύο πινάκων δηλαδή: SELECT paragelies.par_id, paragelies.par_date, pelates.pel_name, pelates.pel_phone FROM paragelies RIGHT JOIN pelates ON paragelies.pel_id =pelates.pel_id ; Ή να επιστρέψουμε όλες τις πλειάδες του ενός πίνακα χρησιμοποιώντας το όνομα του πίνακα και τον αστερίσκο * και τιμές συγκεκριμένων γνωρισμάτων από τον άλλο δηλαδή: SELECT paragelies.par_id, paragelies.par_date, pelates.* FROM paragelies RIGHT JOIN pelates ON paragelies.pel_id =pelates.pel_id ; 28

29 ΣΥΝΟΨΗ & ΣΥΝΑΡΤΗΣΕΙΣ ΤΗΣ MySQL Η σύνοψη (ή αλλιώς ομαδοποίηση) ομαδοποιεί πλειάδες ενός πίνακα με βάση κοινές τιμές σε γνωρίσματα του πίνακα. Με την ομαδοποίηση φτιάχνονται νέοι δυναμικοί πίνακες (που στην πραγματικότητα δεν υπάρχουν) με τα νέα δεδομένα. Σε κάθε μια από τις νέες στήλες που προκύπτουν κατά τη ομαδοποίηση, μπορεί να εφαρμοστεί μια συνάρτηση συνάθροισης (aggregating function). Με τις συναρτήσεις αυτές κάνουμε καταμέτρηση του πλήθους των τιμών μιας στήλης ή ο υπολογισμός του μέσου όρου των τιμών μιας στήλης ή η επιστροφή της μικρότερης τιμής ή της μεγαλύτερης τιμής μιας στήλης κλπ. ΣΥΝΑΡΤΗΣΕΙΣ ΣΥΝΑΘΡΟΙΣΗΣ Η συνάρτηση MIN επιστρέφει την μικρότερη τιμή από μια στήλη. Σύνταξη: MIN(στήλη) Η συνάρτηση MAX επιστρέφει την μεγαλύτερη τιμή από μια στήλη. Σύνταξη: MAX(στήλη) Η συνάρτηση COUNT υπολογίζει τον αριθμό των γραμμών. Σύνταξη: COUNT(στήλη) Η συνάρτηση SUM επιστρέφει το άθροισμα όλων των τιμών μιας στήλης. Σύνταξη: SUM(στήλη) Η συνάρτηση AVG επιστρέφει το μέσο όρο των τιμών μιας στήλης. Σύνταξη: AVG(στήλη) 29

30 Εκτός από τις συναρτήσεις συνάθροισης χρησιμοποιούμε συναρτήσεις μορφοποίησης κειμένου, αριθμητικές συναρτήσεις, συναρτήσεις μορφοποίησης ημερομηνίας και ώρας. ΣΥΝΑΡΤΗΣΕΙΣ ΚΕΙΜΕΝΟΥ. Για να χρησιμοποιήσουμε μια συνάρτηση πρέπει να καθορίσουμε σε ποιες στήλες θα την εφαρμόσουμε. SELECT FUNCTION(στήλη) FROM πίνακας; Για να καθορίσουμε πολλές στήλες γράφουμε: SELECT στήλη1, FUNCTION(στήλη2), στήλη3 FROM πίνακας; Μερικές συναρτήσεις κειμένου: Η συνάρτηση SUBSTRING επιστρέφει ένα τμήμα ενός αλφαριθμητικού ή μιας στήλης, με χαρακτήρα αρχής και το πλήθος των επιστρεφόμενων χαρακτήρων. Σύνταξη: SUBSTRING(στήλη ή string, αρχή, μήκος) Η συνάρτηση LENGTH επιστρέφει το μήκος του αλφαριθμητικού που είναι αποθηκευμένο στην στήλη. Σύνταξη: LENGTH(στήλη ή string) Η συνάρτηση UPPER μετατρέπει τους χαρακτήρες του αλφαριθμητικού σε κεφαλαία. Σύνταξη: UPPER(στήλη ή string) Η συνάρτηση LOWER μετατρέπει τους χαρακτήρες του αλφαριθμητικού σε πεζά. Σύνταξη: LOWER(στήλη ή string) 30

31 ΣΥΝΕΝΩΣΗ ΚΑΙ ΨΕΥΔΩΝΥΜΑ Κάποιες φορές επιβάλλεται να συνενώσουμε τιμές από δύο0 η περισσότερες στήλες για να μορφοποιήσουμε καλύτερα το επιστρεφόμενο αποτέλεσμα, δηλαδή να ενώσουμε το όνομα και το επώνυμο από έναν πίνακα σε μια στήλη ονοματεπώνυμο. Αυτή η διαδικασία λέγεται συνένωση τιμών και την κάνουμε με την συνάρτηση CONCAT() η οποία συνοδεύεται με κάποιο ψευδώνυμο (alias). Δηλαδή οι τιμές της στήλης «όνομα» θα συνενωθούν με τις τιμές της στήλης «επώνυμο» και το επιστρεφόμενο αποτέλεσμα θα είναι ένας νέος δυναμικός πίνακας ο οποίος θα έχει μια στήλη με το ψευδώνυμο «ονοματεπώνυμο». Η CONCAT() συνενώνει τιμές στηλών άρα εφαρμόζεται σε πάνω από δύο στήλες με κόμματα ανάμεσα τους. Την συνάρτηση ακολουθεί ο όρος AS και το ψευδώνυμο. SELECT CONCAT(στήλη1,, στήλη2) AS ψευδώνυμο FROM πίνακας; Εναλλακτικά μπορούμε να δώσουμε ψευδώνυμο και στον πίνακα. SELECT CONCAT(στήλη1,, στήλη2) AS ψευδώνυμο FROM πίνακας AS ψευδώνυμο_πίνακα; ΑΡΙΘΜΗΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Με τις αριθμητικές συναρτήσεις μορφοποιούμε ή υπολογίζουμε πάνω σε στήλες αριθμητικού τύπου. Μερικές αριθμητικές συναρτήσεις: Η συνάρτηση FORMAT επιστρέφει το ποσό ή το περιεχόμενο μιας στήλης αριθμών μορφοποιημένο με x δεκαδικές θέσεις και κόμματα ανά 3 ψηφία. Σύνταξη: FORMAT(αριθμός ή στήλη, x) 31

32 Η συνάρτηση ROUND επιστρέφει το ποσό ή το περιεχόμενο μιας στήλης αριθμών στρογγυλοποιημένο σε x δεκαδικές θέσεις. Σύνταξη: ROUND(αριθμός ή στήλη,x) Η συνάρτηση MOD επιστρέφει το υπόλοιπο της διαίρεσης του x με το y. Το x και το y μπορεί να είναι στήλες ή αριθμοί ή και τα δύο. Σύνταξη: MOD(x, y) Η συνάρτηση POW επιστρέφει την τιμή του x υψωμένη στην δύναμη του y. Σύνταξη: POW(x, y) ΣΥΝΑΡΤΗΣΕΙΣ ΗΜΕΡΟΜΗΝΙΑΣ ΚΑΙ ΩΡΑΣ. Οι συναρτήσεις ημερομηνίας και ώρας εφαρμόζονται πάνω σε στήλες που περιέχουν ημερομηνίες. Μερικές συναρτήσεις ημερομηνίας και ώρας: Η συνάρτηση MONTH επιστρέφει μόνο τον αριθμό του μήνα. Σύνταξη: MONTH(στήλη) Η συνάρτηση DATE επιστρέφει μόνο τον αριθμό της ημερομηνίας. Σύνταξη: DATE(στήλη) 32

33 Η συνάρτηση DATE_ADD προσθέτει στις ημερομηνίες της στήλης ένα διάστημα x μονάδες τύπου ημέρας ή μήνα ή έτους. Σύνταξη: DATE_ADD(στήλη, INTERVAL x type) Η συνάρτηση DATE_SUB αφαιρεί στις ημερομηνίες της στήλης ένα διάστημα x μονάδες τύπου ημέρας ή μήνα ή έτους. Σύνταξη: DATE_SUB(στήλη, INTERVAL x type) Η συνάρτηση CURDATE επιστρέφει την τρέχουσα ημερομηνία. Σύνταξη: CURDATE() Η συνάρτηση CUETIME επιστρέφει την τρέχουσα ώρα. Σύνταξη: CUETIME() Παράδειγμα 1 Πρόσθεσε στην ημερομηνία 2 ώρες. DATE_ADD(date, INTERVAL 2 HOUR) Παράδειγμα 2 Αφαίρεσε από την ημερομηνία 3 μέρες. DATE_SUB(date, INTERVAL 3 DAY) 33

34 ΜΟΡΦΟΠΟΙΗΣΗ ΗΜΕΡΟΜΗΝΙΑΣ ΚΑΙ ΩΡΑΣ Η συνάρτηση DATE_FORMAT μορφοποιεί με συγκεκριμένο τρόπο μια στήλη ημερομηνίας και ώρας. Σύνταξη: DATE_FORMAT(στήλη, μορφοποίηση ) Η συνάρτηση TIME_FORMAT μορφοποιεί με συγκεκριμένο τρόπο μια στήλη ημερομηνίας ως προς την ώρα. Σύνταξη: TIME_FORMAT(στήλη, μορφοποίηση ) Μορφοποίηση με την χρήση του συμβόλου % και συγκεκριμένους τελεστές μορφοποίησης που φαίνονται στον πιο κάτω πίνακα. Τελεστές μορφοποίησης ημερομηνίας και ώρας Τελεστής Είδος %e ημέρα του μήνα 1-31 %a σύντμηση ονόματος ημέρας Κυρ-Σαβ %b σύντμηση ονόματος μήνα Ιαν-Δεκ %W όνομα ημέρας %d ημέρα του μήνα διψήφια %D ημέρα με επίθεμα 1 st 31 st %m αριθμός μήνα διψήφιος %M όνομα μήνα Ιανουάριος-Δεκέμβριος %Y έτος τετραψήφιο %y έτος διψήφιο 34

35 ΆΛΛΕΣ ΧΡΗΣΙΜΕΣ ΣΥΝΑΡΤΗΣΕΙΣ. Η συνάρτηση DISTINCT χρησιμοποιείται μαζί με τον όρο GROUP BY και μας επιστρέφει τον αριθμό των μοναδικών εγγραφών ανά κατηγορία (απαλοιφή διπλοεγγραφών). Σύνταξη: DISTINCT(στήλη) Η συνάρτηση DATABASE μας επιστρέφει το όνομα της βάσης που χρησιμοποιείται εκείνη την στιγμή. Συνδυάζεται με τον όρο SELECT. Σύνταξη: SELECT DATABASE() Η συνάρτηση USER επιστρέφει το όνομα του χρήστη με το οποίο δουλεύομε στην ΒΔ εκείνη τη στιγμή. Συνδυάζεται με τον όρο SELECT. Σύνταξη: SELECT USER() 35

36 ΠΡΟΒΟΛΕΣ (views) Μια προβολή είναι απλώς ένας ειδικός τύπος πίνακα, που συνήθως βασίζεται στη δομή και τα δεδομένα των τυπικών πινάκων. Για παράδειγμα, στη βάση δεδομένων timologisi του σεναρίου πάνω στο οποίο δουλεύουμε, συχνά πρέπει να βλέπουμε το συνολικό ποσό με το οποίο έχει τιμολογηθεί κάθε πελάτης. Έχουμε τη δυνατότητα να δημιουργήσουμε μια προβολή που να απεικονίζει μόνο αυτές τις πληροφορίες. Αυτό μας κάνει να σκεφτούμε ότι η προβολή είναι μια στατική εμφάνιση μερικών δεδομένων, ένα στιγμιότυπο που λαμβάνεται κατά το χρόνο δημιουργίας της προβολής. Αυτό όμως δεν ισχύει. Αν ορίσουμε μια προβολή που βασίζεται στην επιλογή δεδομένων από άλλους πίνακες, όταν ενημερωθούν αυτοί οι πίνακες θα ενημερωθούν και τα δεδομένα της προβολής. ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΒΟΛΗΣ Για να δημιουργήσουμε μια προβολή χρησιμοποιούμε τη εντολή CREATE VIEW. Η σύνταξη είναι η εξής: CREATE VIEW όνομα_προβολής AS ερώτημα_επιλογής; Σημ. Η νέα προβολή δημιουργείται με ονόματα στηλών τα οποία αντιστοιχίζονται με αυτά που ανακτώνται από την εντολή SELECT. Παράδειγμα: CREATE VIEW stoixeia_pelath AS SELECT first name, last_name, phone FROM pelates; Σημ. Η προβολή stoixeia_pelath θα περιέχει τρεις στήλες, με ονόματα first_name, last_name, και phone του πίνακα pelates θα περιέχει δηλαδή ότι θα επιστρέψει το ερώτημα που ακολουθεί την προβολή στη σύνταξή της. 36

37 Για να δούμε πως δημιουργήθηκε μια προβολή εφαρμόζουμε την εντολή: SHOW CREATE VIEW όνομα_προβολής; ΤΡΟΠΟΠΟΙΗΣΗ ΠΡΟΒΟΛΗΣ Όταν φτιάξουμε μια προβολή, υπάρχουν δύο τρόποι να την τροποποιήσουμε αν αυτό χρειαστεί. 1 ος τρόπος Εδώ χρησιμοποιούμε την σύνταξη CREATE VIEW, με τη βοήθεια του όρου OR REPLACE. CREATE OR REPLACE VIEW όνομα_προβολής AS ερώτημα_select; Για να εκτελέσουμε αυτή την εντολή πρέπει να έχουμε προνόμια διαγραφής προβολών DROP VIEW (επειδή διαγράφεται η προβολή και μετά δημιουργείται μια νέα με το ίδιο όνομα). 2 ος τρόπος Εδώ χρησιμοποιούμε την εντολή ΑLTER VIEW όπου μοιάζει αρκετά με την εντολή CREATE VIEW: ALTER VIEW όνομα_προβολής AS ερώτημα_select; ΔΙΑΓΡΑΦΗ ΠΡΟΒΟΛΗΣ Αν δεν χρειαζόμαστε πλέον μια προβολή, μπορούμε να τη διαγράψουμε χρησιμοποιώντας την εντολή DROP VIEW όνομα,προβολής; 37

38 Για να πάρουμε πρόσθετα μέτρα ασφαλείας, έχουμε τη δυνατότητα προσθήκης του όρου IF EXISTS DROP VIEW IF EXISTS όνομα_προβολής; Σημ. Επειδή τα δεδομένα στις περισσότερες προβολές βασίζονται σε δεδομένα που αποθηκεύονται σε πραγματικούς πίνακες, όταν χρειάζεται θα πρέπει να αλλάζουμε τα δεδομένα στους υποκείμενους πίνακες και όχι στην προβολή. 38

39 ΒΙΒΛΙΟΓΡΑΦΙΑ Συστήματα Βάσεων Δεδομένων Μια πρακτική προσέγγιση στο Σχεδιασμό, την Υλοποίηση και τη Διαχείριση Thomas Connolly, Carolyn Begg, Anne Strachan, Τόμος Α, Δεύτερη Έκδοση Εκδόσεις ΙΩΝ Εισαγωγή στη MySQL δεύτερη Αμερικάνικη έκδοση Larry Ullman - Εκδόσεις Κλειδάριθμος Θεμελιώδεις Αρχές Συστημάτων Βάσεων Δεδομένων Τόμος 1 & 2 - Elmasri Ramez - Navathe Shamkant B. - Δίαυλος ΑΕ Εκδόσεις Βιβλίων Βάσεις Δεδομένων και SQL μια πρακτική προσέγγιση - Α. Σταυρακούδης - Εκδόσεις Κλειδάριθμος Μαθήματα Βάσεων Δεδομένων - Βασίλειος Βερύκιος - Εκδόσεις Τζιόλα & Υιοί Α.Ε Σχεσιακές Βάσεις Δεδομένων Ευάγγελος Κεχρής Εκδόσεις Κριτική

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο) TEC610 (ΣΤ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά

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

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9;

ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ. UPDATE products SET prod_fpa=19 WHERE prod_fpa=23; SELECT prod_descr,purchase,purchase_date FROM products WHERE prod_fpa=9; ΕΝΗΜΕΡΩΣΗ ΔΕΔΟΜΕΝΩΝ 4.10 Επαναφέρετε πάλι το είδος 20 (όλο το στιγμιότυπο) στον πίνακα products με τις εντολές INSERT INTO. 4.11 Διαγράψτε το είδος 12 (όλο το στιγμιότυπο) στον πίνακα products και επαναφέρετε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Φροντιστήριο 3 ο (26/11/2008) Εισαγωγή στην Mysql SQL Η SQL (Structured Query Language) είναι μια πλήρης γλώσσα Βάσεων Δεδομένων. Είναι δομημένη σε βάσεις που περιέχουν πίνακες.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Άσκηση 2 Σκοπός της άσκησης είναι: 1. Με δεδομένο το σχεσιακό διάγραμμα, η υλοποίηση μιας βάσης σε MySQL. 2. Η εισαγωγή δεδομένων στη βάση. 3. Η υλοποίηση απλών ερωτημάτων mysql

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

PHPMyAdmin: Σύντομος οδηγός για αρχάριους 2014 PHPMyAdmin: Σύντομος οδηγός για αρχάριους Καρούσος Νικόλαος Επιστημονικός Συνεργάτης Παρασκευά Σταυρούλα Φοιτήτρια, Εργαστηριακή Βοηθός, τμήμα ΕΠΔΟ Μεσολογγίου 33 Έκδοση 1.1 Πρόλογος... - 2-1. Είσοδος

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

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

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

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

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

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

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

Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης

Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model Νικόλαος Ζ. Ζάχαρης Τι είναι το ERΜ Είναι ένα μοντέλο αναπαράστασης των δεδομένων και των συσχετίσεων τους, και χρησιμοποιείται κατά τη φάση

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

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

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

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

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

Συστήματα Διαχείρισης Βάσεων Δεδομένων

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

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

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

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

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

#1.1 Τι είναι η Βάση Δεδομένων

#1.1 Τι είναι η Βάση Δεδομένων 1 2 #1.1 Τι είναι η Βάση Δεδομένων Βάση δεδομένων είναι ένα πλήθος στοιχείων συναφών μεταξύ τους, τοποθετημένα και ταξινομημένα με συγκεκριμένο τρόπο. Με τη χρήση μιας Βάσης Δεδομένων μπορούμε: να καταχωρούμε

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

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

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

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

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

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

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

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

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

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

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

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

SQL Data Manipulation Language

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

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

DELETE, UPDATE, INSERT.

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

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

DELETE, UPDATE, INSERT

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

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

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access... 9 Κεφάλαιο 2: Microsoft Access 2002... 20 Κεφάλαιο 3: Το σύστημα Βοήθειας του Microsoft Office ΧΡ... 36

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

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

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

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

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL) Βασικές Εντολές SQL Θεωρία & Εντολές SQL Γραμμή Εντολών MS-DOS (MySQL) Ο καλός σχεδιασμός μιας Β.Δ είναι σημαντικός για την ανάπτυξη μιας εφαρμογής με υψηλή απόδοση. Γι αυτό τον λόγο μια Β.Δ θα πρέπει

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

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

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

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

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

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

Το σχεσιακό μοντέλο βάσεων δεδομένων

Το σχεσιακό μοντέλο βάσεων δεδομένων ΕΣΔ232 Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας Το σχεσιακό μοντέλο βάσεων δεδομένων Περιεχόμενα Περιεχόμενα - Βιβλιογραφία Ενότητας Εισαγωγή στο σχεσιακό μοντέλο Σχεσιακές γλώσσες ερωτημάτων Περιορισμοί

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 Περιεχόμενα 1 Δημιουργία πινάκων με την

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY. Η γλώσσα ορισμού δεδομένων της SQL Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr astavrak@uoi.gr @AStavrakoudis Άνοιξη 2016 1 / 85 Περιεχόμενα

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

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

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

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

Βάσεις Δεδομένων Ι - 06. Ευρετήρια/Indexes. (...και επιδόσεις ΣΔΒΔ) Views (Όψεις) Φώτης Κόκκορας (MSc/PhD) Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπ/νιών

Βάσεις Δεδομένων Ι - 06. Ευρετήρια/Indexes. (...και επιδόσεις ΣΔΒΔ) Views (Όψεις) Φώτης Κόκκορας (MSc/PhD) Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπ/νιών Βάσεις Δεδομένων Ι - 06 Ευρετήρια/Indexes (...και επιδόσεις ΣΔΒΔ) Views (Όψεις) Φώτης Κόκκορας (MSc/PhD) Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπ/νιών ΤΕΙ Λάρισας Τι είναι τα ευρετήρια; Ευρετήριο/Index:

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

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες

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

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

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

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

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

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

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων - Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a)

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

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3)

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3) Εργαστήριο Βάσεων Δεδομένων Εισαγωγή στη MySQL (3) ER Σχεσιακό Create Tables 1/4 CREATE TABLE student( name VARCHAR(25) DEFAULT 'unknown' NOT NULL, lastname VARCHAR(25) DEFAULT 'unknown' NOT NULL, AM INT(5)

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

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

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

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

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

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

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

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P

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

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2017-2018 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ

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

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

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

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

Οδηγίες Χρήσης της MySQL

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Απρίλιος 2007 1 Περιεχόμενα Εισαγωγή...2

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

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

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

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

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

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ 2015-2016 Βάσεις Δεδομένων Εισαγωγή για το Εργαστήριο Δρ. Τιάκας Ελευθέριος Τμήμα Πληροφορικής ΑΠΘ 2015-2016 2 Βασικοί στόχοι Μερικοί βασικοί στόχοι του εργαστηρίου είναι: Η ικανότητα ανάλυσης των απαιτήσεων, κατασκευής

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

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

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Άσκηση 2 Σκοπός της άσκησης είναι: 1. Με δεδομένο το σχεσιακό διάγραμμα, η υλοποίηση μιας βάσης σε MySQL. 2. Η εισαγωγή δεδομένων στη βάση. Για το κείμενο των προδιαγραφών της

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

Γνωρίστε το Excel 2007

Γνωρίστε το Excel 2007 Εισαγωγή τύπων Γνωρίστε το Excel 2007 Πληκτρολογήστε το σύμβολο της ισότητας (=), χρησιμοποιήστε ένα μαθηματικό τελεστή (+,-,*,/) και πατήστε το πλήκτρο ENTER. Πρόσθεση, διαίρεση, πολλαπλασιασμός και αφαίρεση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές. Σχολή Διοίκησης και Οικονομίας (ΣΔΟ) Τμήμα Λογιστικής και Χρηματοοικονομικής Διδάσκων: Δρ. Γκόγκος Χρήστος Μάθημα: Πληροφορική ΙI (εργαστήριο) Ακαδημαϊκό έτος 2013-2014 εαρινό εξάμηνο ΟΝΟΜΑΤΕΠΩΝΥΜΟ : ΑΡΙΘΜΟΣ

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

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

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

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

Οδηγίες Χρήσης της MySQL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

databases linux - terminal (linux / windows terminal)

databases linux - terminal (linux / windows terminal) databases linux - terminal (linux / windows terminal) 1) ανοίγουμε την mysql -> $ mysql -u root -p (enter) password (enter) TIP: αν κατά την εντολή αυτή μας γράψει, ERROR 2002 (HY000): Can't connect to

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

1 / 97

1 / 97 Τα πρώτα ερωτήματα SQL Αθανάσιος Σταυρακούδης http://stavrakoudis.econ.uoi.gr Άνοιξη 2014 1 / 97 Περιεχόμενα 1 Εισαγωγικά σχόλια και παρατηρήσεις 2 Απλά ερωτήματα προβολής, επιλέγοντας στήλες από ένα πίνακα

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

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

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

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

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

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

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

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL

ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL Αντώνης Χρυσόπουλος Χριστίνα Αυδίκου Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ MYSQL MySQL For Pros Διαλέχτε, καλέ κυρία, Διαλέχτε 1. Ταξινόμηση 2. Περιορισμοί 3. Τελεστές LIKE, IN, BETWEEN

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