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

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

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

databases linux - terminal (linux / windows terminal)

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

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

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

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

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

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

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

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

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

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

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

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

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

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

DELETE, UPDATE, INSERT.

DELETE, UPDATE, INSERT

Ενότητα. Επεξεργασία πινάκων

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

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

Σύβακας Σταύρος ΠΕ19,MSc. IT ΣΥΒΑΚΑΣ ΣΤΑΥΡΟΣ ΕΡΩΤΗΜΑΤΑ

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Διαχείριση Βάσης Δεδομένων (dbadmin)

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

Vodafone Business Connect

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

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

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

XAMPP Apache MySQL PHP javascript xampp


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


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

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

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

Access 2. Φτιάχνοντας μια DB, πίνακες και εισαγωγή εξωτερικών δεδομένων

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

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

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

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

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

Ανοικτά Ακαδημαϊκά Μαθήματα

Κάθε ένα κελί θα πρέπει να περιέχει ένα μόνο στοιχείο δεδομένων, για παράδειγμα το όνομα σε ένα κελί, το επίθετο σε άλλο κελί.

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

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

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

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

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

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

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

Browsers. Λειτουργικότητα και Παραμετροποίηση

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

Συνοπτικός Οδηγός Χρήσης του MySQL Workbench

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

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

Υπηρεσία διαμοιρασμού αρχείων

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

Προγραμματισμός ταμειακής ροής για αγορές υλικών

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

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

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

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση της MySQL. Γιώργος Πυρουνάκης -

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

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

Επίλυση προβλήματος με Access

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

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

2. Για να δημιουργήσουμε το πρώτο ή κάθε νέο Backup set πατάμε στο εικονίδιο και εμφανίζεται ο Wizard του Backup set

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

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

Αικατερίνη Καμπάση, PhD. Τμήμα Προστασίας και Συντήρησης Πολιτισμικής Κληρονομιάς Α.Τ.Ε.Ι. Ιονίων Νήσων

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access

Τίτλος Πακέτου Certified Computer Expert-ACTA

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

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

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

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

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

Βάσεις δεδομένων. Δημιουργία και διαχείριση βάσης δεδομένων

Vodafone Business Connect

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP.

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής Πρόλογος... 11

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

Ανάκτηση Δεδομένων (Information Retrieval)

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

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP

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

1. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ

Transcript:

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

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

Οι βασικοί τύποι σχέσεων μεταξύ των πινάκων είναι: Σχέσεις ένα προς ένα Σχέσεις ένα προς πολλά Σχέσεις πολλά προς πολλά Σχέσεις ένα προς ένα: Η τιμή του πεδίου-κλειδιού μπορεί να εμφανίζεται μόνο μια φορά στον σχετιζόμενο πίνακα. Σχέσεις ένα προς πολλά: Οι τιμές του πεδίου-κλειδιού από τον έναν πίνακα που βρίσκεται στην πλευρά του «ενός» μπορούν να εμφανίζονται πολλές φορές στον σχετιζόμενο πίνακα που βρίσκεται στην πλευρά των πολλών. Η σχέση ένα προς πολλά είναι είναι ο πιο κοινός τύπος σχέσης. Σχέσεις πολλά προς πολλά: Σε κανονικοποιημένες Β.Δ προκαλούν συχνά προβλήματα. Γι αυτό τον λόγο γίνεται διαχωρισμός μιας σχέσης πολλά προς πολλά σε μια σειρά σχέσεων ένα προς πολλά. 3

Κανονικοποίηση Β.Δ: Η κανονικοποίηση είναι ένα σύνολο κανόνων οι οποίοι έχουν τελικά σαν στόχο να κάνουν ευκολότερη την ζωή των διαχειριστών Β.Δ. Οι ομάδες κανόνων που χρησιμοποιεί η κανονικοποίηση αποκαλούνται κανονικές μορφές. Πρώτη κανονική μορφή: Οι κανόνες που περιέχει η πρώτη μορφή είναι: Εξάλειψη των επαναλαμβανόμενων πληροφοριών Δημιουργία ξεχωριστών πινάκων για τα σχετιζόμενα δεδομένα 4

Δεύτερη κανονική μορφή: Ο κανόνας για την δεύτερη μορφή είναι: Τα χαρακτηριστικά που δεν βασίζονται στο κλειδί, δεν πρέπει να εξαρτώνται από ένα τμήμα του πρωτεύοντος κλειδιού. Με απλά λόγια, αυτό σημαίνει ότι εάν δεν υπάρχουν πεδία στον πίνακα σας τα οποία δεν σχετίζονται απόλυτα με το πρωτεύον κλειδί, θα έχουμε περισσότερη δουλειά να κάνουμε. Τρίτη Κανονική Μορφή: Ο κανόνας που ισχύει για την τρίτη μορφή είναι: Κανένα χαρακτηριστικό δεν μπορεί να εξαρτάται από άλλα χαρακτηριστικά τα οποία δεν ανήκουν στο κλειδί. Με απλά λόγια αυτός ο κανόνας σημαίνει ότι θα πρέπει να εξετάσουμε τους πίνακες για να εξακριβώσουμε αν περιέχουν πεδία τα οποία δεν εξαρτώνται από το κλειδί και τα οποία θα μπορούσαν να μεταφερθούν σ έναν ξεχωριστό πίνακα. 5

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

Ο σωστός ορισμός των πεδίων ενός πίνακα είναι σημαντικός για την συνολική βελτιστοποίηση της Β.Δ. Η MySQL περιλαμβάνει 3 τύπους δεδομένων: Αριθμητικοί Ημερομηνίας και Ώρας Αλφαριθμητικές Η MySQL χρησιμοποιεί όλους τους στάνταρτ αριθμητικούς τύπους δεδομένων της ANSI SQL. 7

Κοινοί Τύποι Δεδομένων: 8

Ημερομηνίας και Ώρας: 9

Αλφαριθμητικοί: 10

Για να «τρέξει» η πλατφόρμα της MySQL θα πρέπει να κατεβάσουμε ΔΩΡΕΑΝ την πλατφόρμα XAMPP 1.8 version για (Windows XP) και να την εγκαταστήσουμε στον υπολογιστή μας. Μετά την εγκατάσταση θα πρέπει στο πεδίο της διεύθυνσης ενός Φυλλομετρητή να γράψουμε http://127.0.0.1 ή http://localhost/ και για να διαπιστώσουμε ότι τρέχει θα πρέπει να εμφανιστεί στην οθόνη του υπολογιστή μας η παρακάτω εικόνα 11

Για ν ανοίξουμε την κονσόλα (XAMPP Control Panel) χρησιμοποιούμε το ποντίκι. Διπλό κλικ πάνω στο εικονίδιο της κονσόλας στην επιφάνεια εργασίας 12

Εμφανίζεται το παρακάτω παράθυρο, στο οποίο θα πρέπει να ενεργοποιήσουμε τον Apache καθώς και την MySQL. 13

Κλικ στο εικονίδιο της κονσόλας και εμφανίζεται το παράθυρο: 14

Για να πραγματοποιήσουμε την εισαγωγή μας στην πλατφόρμα της MySQL γράφουμε την εντολή: #mysql 15

Για να δούμε το πλήθος των βάσεων δεδομένων που περιέχει η SQL γράφουμε την εντολή: mysql> show databases; 16

Για να δημιουργήσουμε μια βάση δεδομένων θα πρέπει να γράψουμε την εντολή: mysql> create database tutorial; (όπου tutorial είναι το όνομα της βάσης δεδομένων) Για να επαναλάβουμε την εμφάνιση των βάσεων δεδομένων και να παρατηρήσουμε την νέα Β.Δ (tutorial) γράφουμε την εντολή: mysql> show databases; 17

Για να χρησιμοποιήσουμε μια βάση δεδομένων θα πρέπει να γράψουμε την εντολή: mysql> use tutorial; (όπου tutorial είναι το όνομα της βάσης δεδομένων) Σαν αποτέλεσμα της συγκεκριμένης εντολής δεν λαμβάνουμε κάποιο αποτέλεσμα αλλά έχουμε την δυνατότητα να χρησιμοποιήσουμε τη συγκεκριμένη Β.Δ. 18

Για να δημιουργήσουμε έναν πίνακα πρέπει να γνωρίζουμε ποιες είναι οι στήλες του και ποιες είναι οι γραμμές του. Παρατηρούμε τον παρακάτω πίνακα ο οποίος έχει 3 στήλες και 3 γραμμές. Οι στήλες είναι: Name, Age, Favorite Color Οι γραμμές αποτελούν τις εγγραφές του πίνακα. 19

Για να δημιουργήσουμε έναν πίνακα στην συγκεκριμένη βάση δεδομένων, γράφουμε την εντολή: mysql> create table trivia (Name text, Age Integer, Favorite Color text); (Δημιουργείται ο πίνακας με τα πεδία του) mysql> describe trivia; (Εμφανίζεται ο πίνακας) (όπου trivia είναι το όνομα του πίνακα) Ακολουθούν τα ονόματα των στηλών που θα περιέχει ο πίνακας με τ αντίστοιχα πεδία τους Στην συνέχεια εμφανίζονται οι στήλες (πεδία) που υπάρχουν στον συγκεκριμένο πίνακα 20

Όμως στον παραπάνω πίνακα δεν επιτρέπονται τα κενά πεδία, οπότε θα πρέπει να δημιουργήσουμε εκ νέου τον συγκεκριμένο πίνακα. Γράφουμε τις εντολές: mysql>drop table trivia; (Διαγραφή του προηγούμενου πίνακα) mysql> create table trivia (Name text not null, Age integer not null, Favorite Color text not null); mysql> describe trivia; (Εμφανίζεται ο πίνακας με τα πεδία του) 21

Στην συνέχεια εισάγουμε την πρώτη εγγραφή με συγκεκριμένες τιμές στ αντίστοιχα πεδία. Πεδίο 1 Πεδίο 2 Πεδίο 3 Name Age Favorite Color εγγραφή): Γράφουμε την εντολή για να αποδώσουμε τιμές στον πίνακα (πρώτη mysql> insert into trivia values (Bruce Callow, 13, I haven t decided yet) 22

Εφ όσον έχουμε καταχωρήσει τις τιμές θα πρέπει και να τις παρατηρήσουμε. Γι αυτό γράφουμε την εντολή: mysql>select * from trivia; (Βλέπουμε τον πίνακα) 23

Πραγματοποιούμε την προσθήκη ακόμη 2 εγγραφών στον συγκεκριμένο πίνακα. Γράφουμε τις εντολές: mysql>insert into trivia values ( Frank Wright,37, Red..no,wait ); mysql>insert into trivia values ( Seymour Hawthorne,82, None of your business. ); mysql>select * from trivia; (Εμφανίζονται όλες οι εγγραφές του πίνακα) 24

Στην περίπτωση που κάτι πάει στραβά, και θέλουμε να διαγράψουμε όλες τις εγγραφές μέσα από τον πίνακα, και χρειάζεται να προσθέσουμε νέες, τότε γράφουμε τις εντολές: mysql> delete from trivia; (Διαγράφονται όλες οι εγγραφές) mysql>select * from trivia; (Παρατηρούμε ότι δεν υπάρχει καμία εγγραφή) 25

Στην παρακάτω περίπτωση για να εμφανίσουμε ΜΟΝΟ την εγγραφή που διαθέτει την ηλικία των 13 χρόνων γράφουμε την εντολή: mysql> select * from trivia where Age = 13; (Εμφανίζεται η εγγραφή) 26

Η διάσπαση του πίνακα σε 4 πεδία, με την προσθήκη και του επιθέτου (Last Name). Πεδίο 1 Πεδίο 2 Πεδίο 3 Πεδίο 4 First Name Last Name Age Favorite Color Γράφουμε την εντολή: mysql> select substring_index(name,' ',1) as FirstName, substring_index (Name,' ',-1) as LastName, Age, `Favorite Color` from trivia order by LastName; 27

Δημιουργούμε έναν νέο πίνακα με το όνομα triviab, καθορίζουμε και τους τύπους των πεδίων τους. Εμφανίζουμε τ αποτέλεσμα του πίνακα. Γράφουμε τις εντολές: mysql> create table triviab (FirstName text not null, LastName text not null, Age integer not null, `Favorite Color` text not null); (Δημιουργούμε τα πεδία του πίνακα) mysql> describe triviab; (Εμφανίζουμε τ αποτέλεσμα του πίνακα) 28

Στην συνέχεια μεταφέρουμε τις εγγραφές από τον πίνακα trivia στον πίνακα triviab. Γράφουμε την εντολή: mysql> insert into triviab select substring_index(name,' ',1) as FirstName, substring_index(name,' ',-1) as LastName, Age, `Favorite Color` from trivia; (Μεταφορά των εγγραφών από τον πίνακα trivia στον πίνακα triviab) mysql> select * from triviab; (Εμφανίζεται ο πίνακας) 29

Αν θέλουμε να ταξινομήσουμε τις εγγραφές κατά φθίνουσα σειρά, τότε γράφουμε την εντολή: mysql> select * from triviab order by Age desc; 30

Εμφάνιση των Βάσεων Δεδομένων στην MySQL 31

Δημιουργία νέας βάσης δεδομένων με το όνομα test_1 Εμφανίζεται στην λίστα των Β.Δ και η test_1 32

Με την εντολή CREATE DATABASE, δημιουργούμε μια νέα Β.Δ με το όνομα test_2 Χρησιμοποιούμε την εντολή διαγραφής DROP DATABASE για να διαγράψουμε την παραπάνω Β.Δ 33

Με την εντολή USE, χρησιμοποιούμε την Β.Δ με το όνομα test_1 Με την εντολή SHOW TABLES, εμφανίζουμε τυχόν πίνακες της Β.Δ test_1 και παρατηρούμε ότι δεν υπάρχουν. 34

Με την εντολή CREATE TABLE, δημιουργούμε ένα πίνακα με πεδία id, Name και Age Με την εντολή SHOW TABLES, παρατηρούμε το όνομα του πίνακα με την εντολή: 35

Με την εντολή DESCRIBE παρατηρούμε τα πεδία του πίνακα: Με την εντολή INSERT INTO (ΠΕΔΙΑ ΠΙΝΑΚΑ) VALUES (ΤΙΜΕΣ ΤΩΝ ΠΕΔΙΩΝ). Προσθέτουμε την 1 η εγγραφή: 36

Με την εντολή SELECT * FROM όνομα πίνακα, παρατηρούμε τις εγγραφές του πίνακα: Προσθέτουμε και μια 2 η εγγραφή στον συγκεκριμένο πίνακα και παρατηρούμε το αποτέλεσμα: 37

Προσθέτουμε και μια 3 η εγγραφή στον συγκεκριμένο πίνακα: Μπορούμε να παρατηρήσουμε μια στήλη από τον συγκεκριμένο πίνακα: 38

Ταξινόμηση των εγγραφών με βάση την στήλη του ονόματος: Ταξινόμηση των εγγραφών με βάση την στήλη της ηλικίας με φθίνουσα σειρά: 39

Ταξινόμηση με όριο 2 εγγραφών Προσθέτουμε 2 νέες εγγραφές για να μπορούμε να κάνουμε και άλλου είδους ταξινομήσεις: 40

Ταξινομούμε με βάση την στήλη της ηλικίας όπου η τιμή της να ισούται με τιμή 18: Ταξινομούμε με βάση δύο ενδεικτικών τιμών ηλικιών μεταξύ των τιμών 18 και 26: 41

Αντικατάσταση των ονομάτων των 5 εγγραφών με την τιμή ονόματος gega: Επίσης μπορούμε ν αντικαταστήσουμε όλες τις ηλικίες με τιμή 41: 42

Με την εντολή UPDATE, μπορούμε ν αντικαταστήσουμε την τιμή του ονόματος gega με το όνομα George: Με την εντολή REPLACE INTO.VALUES, μπορούμε ν αντικαταστήσουμε την 1 η εγγραφή με νέα τιμή: 43

Με την εντολή REPLACE INTO.VALUES μπορούμε ν αντικαταστήσουμε τις εγγραφές από την 2 η μέχρι και την 5 η με νέες τιμές: 44

Με την εντολή DELETE διαγράφουμε εγγραφές π.χ. στην συγκεκριμένη εικόνα έχουμε διαγράψει την 3 η εγγραφή: 45

Για να διαγράψουμε όλες τις εγγραφές ενός πίνακα, χρησιμοποιούμε την εντολή DELETE..FROM (όνομα_πίνακα) και τα στοιχεία διαγράφονται. Με την εκτέλεση της εντολής SELECT, παρατηρούμε ότι ο συγκεκριμένος πίνακας έχει διαγραφεί. 46

Δημιουργία πίνακα με την εντολή: CREATE TABLE Εμφάνιση των πεδίων του πίνακα με την εντολή DESRIBE 47

Έχουμε την εμφάνιση των πεδίων από δύο διαφορετικούς πίνακες που σχετίζονται μεταξύ τους με κλειδί το id 48

Λαμβάνουμε σαν επιστροφή από τους δύο πίνακες των 5 εγγραφών ο καθένας, στην παρακάτω οθόνη 25 εγγραφές (επαναλαμβανόμενες). Αν θέλουμε οι εγγραφές να μην επαναλαμβάνονται, τότε θα πρέπει να συντάξουμε την εντολή SELECT πιο προσεκτικά. 49

Αν προσθέσουμε στην εντολή το WHERE τότε θα μπορέσουμε να λάβουμε τις σωστές εγγραφές και από τους δύο πίνακες. 50

Στην συγκεκριμένη περίπτωση λαμβάνουμε από τον πίνακα personal την στήλη NAME και από τον πίνακα stoixeia την στήλη ADDRESS: 51

Η σχεδίαση μιας κανονικοποιημένης Β.Δ με σωστή δομή είναι μόνο το πρώτο μισό του πάζλ της βελτιστοποίησης. Το άλλο μισό είναι η δημιουργία και η βελτιστοποίηση ενός Server. Τα 4 βασικά συστατικά ενός συστήματος είναι: Κεντρική Μονάδα Επεξεργασίας (CPU) > 3GHz και πάνω. Μνήμη (RAM) > 4.00 GB και πάνω Σκληρός Δίσκος (HDD) > 250 GB Λειτουργικό Σύστημα (SOFTWARE) Να μην καταναλώνει μεγάλο μέρος από πόρους του Server. 52

Ο Έλεγχος της ταχύτητας του Server σε (sec), υλοποιείται με την συνάρτηση benchmark(). Παραδείγματα: Α) Εκτέλεση του αθροίσματος (10+10) 10.000 φορές Β) Εκτέλεση του αθροίσματος (10+10) 1.000.000 φορές Γ) Εκτέλεση του αθροίσματος (10+10) 1.000.000.000 φορές 53

Η τιμή Key_byffer_size εκφράζει το μέγεθος του buffer που χρησιμοποιείται με τα ευρετήρια. Όσο μεγαλύτερο είναι το μέγεθος του buffer, τόσο πιο γρήγορα θα εκτελείται η εντολή καθώς και η εμφάνιση του αποτελέσματος της. Ένας απλό τρόπος για έλεγχο του buffer είναι η εντολή: mysql> show status; Η οποία μας επιστρέφει τιμές από διάφορες παραμέτρους. Οι πιο σημαντικοί παράμετροι είναι: Key_read_requests Key_reads Key_write_requests Key_writes 54

Η διαίρεση των παραμέτρων και στις δύο περιπτώσεις, πρέπει να δώσει τις παρακάτω τιμές. την Key_reads με την Key_write_requests πρέπει να μας δώσει τιμή < 0,01 και την Key_writes με την Key_write_requests πρέπει να μας δώσει τιμή < 1 Στην περίπτωση που χρειάζεται να μειώσουμε τις τιμές, θα πρέπει να αυξήσουμε την τιμή της παραμέτρου Key_byffer_size 55

Μια δεύτερη παράμετρο που πρέπει να προσέξουμε ιδιαίτερα είναι: η table_cache. Η συγκεκριμένη παράμετρος αντιπροσωπεύει τον μέγιστο επιτρεπόμενο αριθμό ανοικτών πινάκων για όλα τα νήματα επεξεργασίας. Η προεπιλεγμένη τιμή πρέπει να είναι = 64. Στην εντολή: mysql> show status; Υπάρχει μια παράμετρος open_tables όπου αν η τιμή της είναι μεγάλη, τότε θα πρέπει ν αυξήσουμε την τιμή της παραμέτρου table_cache. 56

Ένας βελτιστοποιημένος πίνακας διαφέρει πολύ από ένα καλοσχεδιασμένο πίνακα. Βελτιστοποίηση της δομής του πίνακα είναι η ανάκτηση του μηχρησιμοποιημένου χώρου και γίνεται με την εντολή: mysql> OPTIMIZE TABLE (όνομα_πίνακα); Κατά την διάρκεια της βελτιστοποίησης ο πίνακας κλειδώνεται. 57

Η βελτιστοποίηση των ερωτημάτων έχει να κάνει με την σωστή χρήση των ευρετηρίων. Για την εξακρίβωση αν ένα ερώτημα είναι διατυπωμένο με τον καλύτερο δυνατό τρόπο, χρησιμοποιούμε ευρετήρια οποτεδήποτε αυτό είναι δυνατό. Η σύνταξη της εντολής είναι: mysql> EXPLAIN SELECT εντολή 58

Το αποτέλεσμα περιέχει τις πληροφορίες: id=η ταυτότητα ID της select, select_type=ο τύπος της πρότασης SELECT, Table= το όνομα του πίνακα, Type=ο τύπος της ένωσης, possible_keys=ποια ευρετήρια μπορεί να χρησιμοποιήσει η MySQL, Key=το κλειδί που χρησιμοποιείται στο ερώτημα ή NULL εάν δεν χρησιμοποιούνται ευρετήρια, key_len= το μέγεθος του κλειδιού, Ref=οποιεσδήποτε στήλες χρησιμοποιούνται μαζί με το κλειδί για την ανάκτηση ενός αποτελέσματος, Rows=ο αριθμός των γραμμών, Extra=επιπλέον πληροφορίες, οι οποίες σχετίζονται με τον τρόπο εκτέλεσης ενός ερωτήματος 59

Οι χρήστες που έχουν δικαίωμα reaload σε μια Β.Δ μπορούν να χρησιμοποιήσουν την εντολή FLUSH για την εκκαθάριση της εσωτερικής μνήμης cache που χρησιμοποιεί η MySQL. Συνολικά υπάρχουν εννέα επιλογές για την συγκεκριμένη επιλογή. Οι πιο συνηθισμένες είναι: PRIVILEGES TABLES HOSTS LOGS mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.10 sec) Η εντολή FLUSH TABLES κλείνει όλους τους πίνακες που είναι ανοικτοί ή σε χρήση την τρέχουσα στιγμή. Όταν η μνήμη cache είναι κενή, τότε η MySQL μπορεί να χρησιμοποιήσει καλύτερα την διαθέσιμη μνήμη. 60

mysql> FLUSH TABLES; Query OK, 0 rows affected (0.21 sec) Η συγκεκριμένη χρησιμοποιείται για το «άδειασμα» των πινάκων, στους οποίους κατακρατιούνται προσωρινά οι αιτήσεις σύνδεσης. mysql> DLUSH HOSTS; Query OK, 0 rows affected (0.00 sec) Η συγκεκριμένη εντολή κλείνει και κατόπιν ανοίγει ξανά όλα τ αρχεία καταγραφής. mysql> FLUSH LOGS; Query OK, 0 rows affected (0.04 sec) 61

Η εντολή συγκεκριμένη εμφανίζει τα δικαιώματα που έχουν παραχωρηθεί σ έναν συγκεκριμένο χρήστη για έναν συγκεκριμένο υπολογιστή. mysql> SHOW GRANTS FOR root@loclahost; Στην περίπτωση που δεν είστε ο χρήστης root και εκτελέσετε την εντολή θα λάβετε μήνυμα σφάλματος. 62

Η εντολή SHOW VARIABLES εμφανίζει διάφορες πληροφορίες για μια Β.Δ: 63

Με την συγκεκριμένη εντολή θα λάβουμε μια λίστα όλων των πινάκων που βρίσκονται στην μνήμη cache. Παρουσιάζει την εντολή η οποία χρησιμοποιήθηκε για την δημιουργία ενός πίνακα: 64

Η εντολή SHOW INDEX FROM (πίνακα) FROM (Β.Δ.), εμφανίζει αποτελέσματα: Table=το όνομα του πίνακα, Non_unique=μια τιμή 0 ή 1, Key_name=το όνομα του ευρετηρίου, Seq_in_index=ο αριθμός σειράς για το ευρετήριο είναι 1, Column_name=το όνομα της στήλης, Collation=η σειρά ταξινόμησης της στήλης, Cardinality=το πλήθος των μοναδικών τιμών στο ευρετήριο, Sub_part=υποδεικνύει το πλήθος των χαρακτήρων που συνυπολογίζονται για το ευρετήριο, ή έχει την τιμή NULL Packed=το μέγεθος των αριθμητικών στηλών, Null=εμφανίζει το αν η στήλη μπορεί να περιέχει τιμές NULL, Index_type=η μέθοδος δημιουργίας ευρετηρίου που χρησιμοποιείται, Comment=οποιαδήποτε επιπλέον σχόλια, 65

Όταν εκτελέσουμε την συγκεκριμένη εντολή λαμβάνουμε τα παρακάτω αποτελέσματα: 66