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

Σχετικά έγγραφα
Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

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

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

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

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

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

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

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

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

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

databases linux - terminal (linux / windows terminal)

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

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

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


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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων

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

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

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

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

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

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

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

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

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

XAMPP Apache MySQL PHP javascript xampp

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

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

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

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

DISTINCT, LIKE, NULL, AND, OR, BETWEEN

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

DELETE, UPDATE, INSERT.

Βάσεις Δεδομένων Ι 8. Ερωτήματα (B) Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας

SQL Data Manipulation Language

DELETE, UPDATE, INSERT

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

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


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

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

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

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

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


Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...


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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) ΤΕΙ ΔυτικήςΜακεδονίας

1 / 97

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

1 / 87

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

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

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

Προγραμματισμός Παγκόσμιου Ιστού

1. ΑΝΟΙΞΤΕ ΤΟΝ ΠΙΝΑΚΑ CUSTOMER ΚΑΙ ΣΤΟ ΜΕΝΟΥ ΕΠΙΛΕΞΤΕ

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

Εργαστήριο 10o. Συγκεντρωτικά Ερωτήματα Ερωτήματα Διασταύρωσης Ερωτήματα Ενεργειών. Ευάγγελος Γ. Καραπιδάκης

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

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

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

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους

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

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

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

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

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

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

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

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

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

Εργαστήριο Σημασιολογικού Ιστού

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

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

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

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

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

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

MYSQL 2. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Βάσεις Δεδομένων

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

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

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

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

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Βάσεις Περιβαλλοντικών Δεδομένων

Transcript:

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

Τι είναι η MySql Είναι ένα Σχεσιακό Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΣΔΒΔ) (Relational Data Base Management System RDBMS) Είναι λογισμικό ανοικτού κώδικα και διατίθεται δωρεάν στο διαδίκτυο (https://dev.mysql.com/downloads/mysql/ ) Υπάρχουν εκτελέσιμα αρχεία για πολλές πλατφόρμες. Η ανάπτυξη της υποστηρίζεται από την Oracle. Χρησιμοποιείται και υποστηρίζεται από μεγάλο πλήθος λογισμικού ανοικτού κώδικα, ιδιαίτερα από έργα που έχουν κατασκευαστεί με τη γλώσσα PHP. Λειτουργεί δικτυακά και είναι συμβατή με το πρότυπο SQL (ANSI, ISO) και έχει επιπλέον χρήσιμες επεκτάσεις. Δεν υπολείπεται σε δυνατότητες και είναι πλήρως ανταγωνιστική με τις εμπορικές εφαρμογές.

Έναρξη και τερματισμός της MySQL Για την συνέχεια, θεωρούμε ότι έχει γίνει η εγκατάσταση του XAMPP όπως δείξαμε σε προηγούμενη παρουσίαση. Μέσα στο φάκελο c:\xampp θα βρούμε τα αρχεία mysql_start.bat και mysql_stop.bat. Για την έναρξη του εξυπηρετητή MySQL εκτελούμε το mysql_start.bat Καθ' όλη τη διάρκεια της εκτέλεσης του Συστήματος Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ) MySQL δεν πρέπει να κλείσουμε το ανωτέρω παράθυρο. Για το τερματισμό της εφαρμογής εκτελούμε την εφαρμογή mysql_stop.bat

Δημιουργία της Βάσης Δεδομένων Ο φάκελος μέσα στον οποίο έχουμε τοποθετήσει τα αρχεία με τα παραδείγματα για τις βάσεις δεδομένων, δηλαδή το friendsdb.sql. Μπορεί να είναι οπουδήποτε φάκελος στον ΗΥ σας. Φάκελος που έχουμε το πρόγραμμα xampp H εφαρμογή mysql μας συνδέει με ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων MYSQL. H Οι παράμετρος παράμετροι -u root δηλώνει δηλώνουν ότι ότι η σύνδεση θα γίνει με τα δικαιώματα του χρήστη root και ενώ το -p το ότι -p πρέπει ότι να πρέπει ζητηθεί να κωδικός ζητηθεί πρόσβασης. κωδικός πρόσβασης. Το αρχείο με τις εντολές σε SQL για την δημιουργία της ΒΔκαι την εισαγωγή των δεδομένων. H εφαρμογή πελάτης mysql μπορεί να συνδεθεί και σε ένα απομακρυσμένο εξυπηρετητή προσθέτoντας τη παράμετρο -h και εν συνεχεία το όνομα ή την IP διεύθυνση του. Η παράμετρος -P (κεφαλαίο) δηλώνει τη πόρτα σύνδεσης. Για παράδειγμα, η σύνδεση στη ΣΔΒΔ με όνομα db.company.gr που περιμένει συνδέσεις στη πόρτα 3306 θα γίνει : c:\xampp\mysql\bin\mysql -u root -p -h db.mycompany.gr -P 3306

H βάση δεδομένων friendsdb H friendsdb περιέχει μόνο ένα πίνακα, τον friends με τα ανωτέρω στοιχεία. Επίσης δημιουργεί το χρήστη frdbadmin ο οποίος έχει πρόσβαση μόνο από το τοπικό μηχάνημα και κωδικό πρόσβασης 78910

Το αρχείο friendsdb.sql

Διαχείριση με το πρόγραμμα MySQL Πατάμε Enter Εδώ πληκτρολογούμε τις εντολές και για να κλείσουμε την εφαρμογή γράφουμε exit και πατάμε ENTER O διαχειριστής της MySQL έχει οριστεί εξ αρχής ότι έχει όνομα χρήστη root και κωδικό κενό (τίποτα).

Αλλαγή κωδικού διαχειριστή Αν θέλουμε να αλλάξουμε το κωδικό πρόσβασης μπορούμε να κάνουμε χρήση της εφαρμογής mysqladmin που βρίσκεται μέσα στο φάκελο c:\xampp\mysql\bin όπως παρακάτω : c:\xampp\mysql\bin\mysqladmin -u root password ΝΕΟΣ_ΚΩΔΙΚΟΣ_ΠΡΟΣΒΑΣΗΣ Για παράδειγμα αν θέλουμε να αλλάξουμε το κωδικό πρόσβασης του root σε hello1234 τότε θα πληκτρολογήσουμε : c:\xampp\mysql\bin\mysqladmin.exe -u root password hello 1234 Αν μετά τη δημιουργία του κωδικού πρόσβασης θέλουμε να αλλάξουμε ξανά το κωδικό τότε θα πληκτρολογήσουμε : c:\xampp\mysql\bin\mysqladmin -u root -p password Πληκτρολογούμε το παλιό κωδικό, για παράδειγμα hello1234 Πληκτρολογούμε το νέο κωδικό. Μπορούμε να πατήσουμε και ΕΝΤΕΡ και να το κάνουμε ξανά κενό.

Εμφάνιση των Βάσεων Δεδομένων show databases; H σύνδεση έχει γίνει με τα στοιχεία του διαχειριστή και μπορούμε να δούμε όλες τις βάσεις δεδομένων. Για να κάνουμε σύνδεση με τα δικαιώματα πρόσβασης του χρήστη frdbadmin θα πρέπει να συνδεθούμε όπως παρακάτω : mysql -u frdbadmin -p Enter password: ***** Πληκτρολογούμε 78910 Αν σε περίπτωση είχαμε συνδεθεί με διαφορετικά στοιχεία τότε θα βλέπαμε μόνο τις Βάσεις Δεδομένων στις οποίες θα είχαμε πρόσβαση.

Εμφάνιση των πινάκων μιας ΒΔ use friendsdb show tables H εντολή use ONOMABΔ μας επιτρέπει να επιλέξουμε μια βάση δεδομένων και να εκτελέσουμε εντολές χωρίς να είναι απαραίτητο να αναφέρουμε το όνομα της. H εντολή show tables μας δείχνει τους πίνακες της επιλεγμένης Βάσης Δεδομένων. Εναλλακτικά, αν δεν είχαμε εκτελέσει την εντολή use θα έπρεπε για να δούμε τους πίνακες να χρησιμοποιήσουμε το όνομα της Βάσης Δεδομένων

Περιγραφή των πεδίων ενός πίνακα desc friends H εντολή desc ΟΝΟΜΑΠΙΝΑΚΑ μας δείχνει πληροφορίες για τη δομή ενός πίνακα, όπως είναι τα ονόματα των πεδίων, ο τύπος τους, αν επιτρέπονται NULL τιμές κ.λπ. H δήλωση NULL δείχνει απουσία τιμής και όχι τη τιμή 0 ή κενό "". Η ανωτέρω περιγραφή (δες στήλη NULL) δείχνει ότι μπορεί να πραγματοποιηθεί μια νέα εγγραφή όπου όλες οι τιμές, εκτός από το id, να είναι NULL.

Επιλογή εγγραφών - Select Η σύνταξη της εντολής για την επιλογή και την εμφάνιση των τιμών ενός πίνακα είναι : SELECT πεδίο1, πεδίο2,..,πεδίοχ FROM ONOMAΠΙΝΑΚΑ Για παράδειγμα για να εμφανίσουμε το όνομα και την ηλικία όλων των εγγραφών του πίνακα friends θα πρέπει να πληκτρολογήσουμε select uname, age from friends;

Επιλογή όλων των πεδίων Μπορούμε να παραλείψουμε τα ονόματα των πεδίων και να γράψουμε * που σημαίνει όλα τα πεδία, οπότε για να εμφανίσουμε όλα τα πεδία του πίνακα friends πληκτρολογούμε : select * from friends;

Επιλογή βάση κριτηρίου Select Where Η δήλωση Select μπορεί προαιρετικά να συνοδεύεται και από κάποιο κριτήριο επιλογής. SELECT πεδίο1, πεδίο2,..,πεδίοχ FROM ONOMAΠΙΝΑΚΑ WHERE ΚΡΙΤΗΡΙΟ Το κριτήριο μπορεί να είναι μια απλή συνθήκη όπου συγκρίνουμε τη κάθε τιμή ενός πεδίου σε σχέση με μια άλλη τιμή. Για παράδειγμα, για να επιλέξουμε όλες εγγραφές του πίνακα friends που περιέχουν τιμές στο πεδίο της ηλικίας μικρότερες του 40 θα πρέπει να πληκτρολογήσουμε select * from friends where age < 40; Αν καμία εγγραφή δεν πληροί το κριτήριο τότε το αποτέλεσμα είναι ένα άδειο σύνολο.

Δημιουργία ενός κριτηρίου Για τη δημιουργία ενός κριτηρίου θα πρέπει να δημιουργήσουμε μια συνθήκη μέσω της οποίας θα συγκρίνουμε τη τιμή ενός πεδίου χρησιμοποιώντας έναν από τους παρακάτω τελεστές σύγκρισης : Τελεστής Περιγραφή Παράδειγμα = Ίση age = 40 Όλες οι εγγραφές με ηλικία 40 < μικρότερη age < 40 Όλες οι εγγραφές με ηλικία μικρότερη του 40 <= μικρότερη ή ίση age <= 40 Όλες οι εγγραφές με ηλικία μικρότερη ή ίση του 40 > μεγαλύτερη age > 40 Όλες οι εγγραφές με ηλικία μεγαλύτερη του 40 >= μεγαλύτερη ή ίση age>= 40 Όλες οι εγγραφές με ηλικία μεγαλύτερη ή ίση του 40 <> δεν είναι ίση age<> 40 Όλες οι εγγραφές με οποιαδήποτε ηλικία εκτός του 40 Υπάρχουν ακόμα οι τελεστές IN και ΒΕΤWEEN και LIKE και RegExp

Δημιουργία σύνθετου κριτηρίου Μπορούμε να δημιουργήσουμε ένα σύνθετο κριτήριο, στο οποίο συμμετέχουν πολλά κριτήρια, τα οποία συγκρίνουν τις τιμές των πεδίων με τη χρήση ενός τελεστή σύγκρισης, και όλα αυτά τα κριτήρια συνδέονται μεταξύ τους, με τους παρακάτω λογικούς τελεστές. Τελεστής Περιγραφή Παράδειγμα AND Λογικό ΚΑΙ age < 40 and city = 'Lamia' Όλες οι εγγραφές με ηλικίες μικρότερες του 40 και η πόλη είναι η Lamia. Για να εμφανιστεί μια εγγραφή θα πρέπει να αληθεύουν και τα δύο κριτήρια (age < 40) και city = 'Lamia' OR Λογικό Η age > 50 or city = 'Lamia' Όλες οι εγγραφές με ηλικία μεγαλύτερη του 50 ή η πόλη να είναι η Λαμία. Για να εμφανιστεί μια εγγραφή θα πρέπει να αληθεύει ένα τουλάχιστον εκ των δύο κριτηρίων, είτε (age > 50) είτε city = 'Lamia' NOT Λογική άρνηση Not (age < 40) Όλες οι εγγραφές που δεν είναι μικρότερες του 40 Μπορούμε να χρησιμοποιούμε παρενθέσεις για να ομαδοποιούμε τα κριτήρια, όπως για να επιλέξουμε τις εγγραφές με ηλικίες μικρότερες του 30 και μεγαλύτερες του 50 Εναλλακτικά select * from friends where not((age > 30) and (age < 50)); select * from friends where (age <= 30) or (age >= 50));

Δημιουργία σύνθετου κριτηρίου (συν) select * from friends where age < 50 and city='lamia'; select * from friends where age > 50 or city='lamia'; select * from friends where not (age < 50); select * from friends where not((age > 30) and (age < 50));

Έλεγχος των τιμών για NULL Μπορούμε να ελέγξουμε τη τιμή ενός πεδίου αν περιέχει τιμή NULL όνομαπεδίου is Null Μπορούμε να ελέγξουμε τη τιμή ενός πεδίου αν δεν περιέχει τιμή NULL όνομαπεδίου is not Null

Συγκεντρωτικές Συναρτήσεις Μπορούμε να χρησιμοποιήσουμε συγκεντρωτικές συναρτήσεις, οι οποίες επιστρέφουν μία τιμή η οποία είναι το αποτέλεσμα της εφαρμογής της συνάρτησης πάνω στις τιμές των πεδίων των εγγραφών του πίνακα, οι οποίες προαιρετικά μπορεί να πληρούν και κάποιο κριτήριο Συνάρτηση COUNT SUM ΜΙΝ ΜΑΧ AVG Περιγραφή Υπολογίζει το πλήθος των εγγραφών Υπολογίζει το άθροισμα των τιμών του πεδίου Υπολογίζει τη μικρότερη των τιμών του πεδίου Υπολογίζει τη μεγαλύτερη των τιμών του πεδίου Υπολογίζει τo μέσο όρο των τιμών του πεδίου

Παραδείγματα συγκεντρωτικών συναρτήσεων select min(age) from friends; select avg(age) from friends; select sum(age) from friends; To συγκριμένο αποτέλεσμα έχει σκοπό μόνο την επίδειξη της συνάρτησης, γιατί δεν νόημα η εύρεση του αθροίσματος των ηλικιών.

Μοναδιαίες τιμές και περιορισμός των αποτελεσμάτων Μπορούμε να χρησιμοποιήσουμε τη δήλωση DISTINCT πεδίο για να βρούμε τις μοναδιαίες (διαφορετικές) τιμές του πεδίου. Για να επιλέξουμε τις διαφορετικές πόλεις, του πεδίου city πληκτρολογούμε : select distinct city from friends; H δήλωση LIMIT πλήθος περιορίζει τον αριθμό των αποτελεσμάτων του ερωτήματος μέχρι και το πλήθος. Για παράδειγμα αν στο ανωτέρω ερώτημα δεν θέλουμε όλα τα αποτελέσματα αλλά μόνο δύο, τότε πληκτρολογούμε : select distinct city, age from friends limit 2;

Ο τελεστής IN O τελεστής ΙΝ χρησιμοποιείται για να επιλέξει εγγραφές όπου η τιμή ενός πεδίου ανήκει μέσα σε ένα σύνολο από τιμές. Για παράδειγμα θέλουμε να επιλέξουμε τις εγγραφές του πίνακα friends που έχουν ηλικία μία από τις τιμές 32 ή 56 ή 76 ή 51. select * from friends where age in (32,56,76, 51) O τελεστής μπορεί να χρησιμοποιηθεί και με τιμές κειμένου και ημερομηνίες.

Ο τελεστής Between O τελεστής Between χρησιμοποιείται για να επιλέξει εγγραφές όπου η τιμή ενός πεδίου ανήκει μέσα σε ένα εύρος τιμών. H σύνταξη του τελεστή είναι : Between ΚΑΤΩ_ΟΡΙΟ AND ΑΝΩ_ΟΡΙΟ Για παράδειγμα αν θέλουμε να επιλέξουμε τις εγγραφές του πίνακα friends που έχουν ηλικία είναι από 30 μέχρι και 40, τότε θα πρέπει να πληκτρολογήσουμε : O τελεστής Between μπορεί να χρησιμοποιηθεί και για πεδία που περιέχουν κείμενα ή ημερομηνίες. Στο κείμενο επιλέγει τις τιμές των πεδίων που αρχίζουν με το χαρακτήρα.

Ο τελεστής Like O τελεστής Like χρησιμοποιείται για να επιλέξει εγγραφές όπου η τιμή ενός πεδίου είναι σύμφωνη με ένα πρότυπο, για τη σύνταξη του οποίου χρησιμοποιούμε τα παρακάτω : Περιγραφή % Ειδικός χαρακτήρας που ταιριάζει τίποτα, έναν ή περισσότερους χαρακτήρες. _ Ειδικός χαρακτήρας που ταιριάζει οπωσδήποτε ένα χαρακτήρα. Για την επιλογή όλων των εγγραφών όπου η πόλη αρχίζει από la select * from friends where city Like 'la%' Το ίδιο αποτέλεσμα θα είχαμε και στη περίπτωση που η ερώτηση ήταν Like '%la%' αφού το πρώτο % δεν ταιριάζει τίποτα.

Ο τελεστής Like (συν) Για την επιλογή όλων των εγγραφών όπου το όνομα αρχίζει από b εν συνεχεία υπάρχει ένας οποιοσδήποτε χαρακτήρας, συνεχίζει ο χαρακτήρας s και μετά μπορεί να είναι τίποτα ή οποιοσδήποτε συνδυασμός χαρακτήρων. select * from friends where uname like 'b_s%';

Ο τελεστής RegExp O τελεστής RegExp χρησιμοποιείται για να επιλέξει εγγραφές όπου η τιμή ενός πεδίου είναι σύμφωνη με ένα πρότυπο τύπου κανονικής έκφρασης, για τη σύνταξη του οποίου χρησιμοποιούμε τα παρακάτω : ^ Περιγραφή ειδικού χαρακτήρα Ταιριάζει αυτό που ακολουθεί στην αρχή της τιμής του πεδίου. $ Ταιριάζει αυτό που προηγείται στο τέλος της τιμής του πεδίου. [χαρακτήρες] [^χαρακτήρες] Ταιριάζει οποιονδήποτε από τους χαρακτήρες στη τιμή του πεδίου. Αν χρησιμοποιηθεί το - ανάμεσα σε δύο χαρακτήρες σημαίνει εύρος. Δεν υπάρχει οποιοσδήποτε από τους χαρακτήρες στη τιμή του πεδίου.. Ταιριάζει ένα οποιοδήποτε χαρακτήρας * Ταιριάζει οτιδήποτε προηγείται καμία ή περισσότερες φορές + Ταιριάζει οτιδήποτε προηγείται μία ή περισσότερες φορές {n} {n,m} p1 p2 p3 Ταιριάζει οτιδήποτε προηγείται n φορές Ταιριάζει οτιδήποτε προηγείται από n έως m φορές O χαρακτήρας χρησιμοποιείται για την εναλλακτική χρήση των προτύπων

Ο τελεστής RegExp (συν) select * from friends where phone regexp '^24'; Επιλογή εγγραφών όπου το τηλέφωνο αρχίζει από 24 select * from friends where phone regexp '0$'; Επιλογή εγγραφών όπου το τηλέφωνο τελειώνει σε 0 select * from friends where phone regexp '12'; Επιλογή εγγραφών όπου το τηλέφωνο περιέχει οπουδήποτε το 12

Ο τελεστής RegExp (συν) select * from friends where uname regexp '[cn]'; Επιλογή εγγραφών όπου το όνομα περιέχει οπουδήποτε το c ή n select * from friends where uname regexp '^[^a-k]'; select * from friends where uname regexp '^[^ebk]'; Επιλογή εγγραφών όπου το όνομα αρχίζει με οποιοδήποτε χαρακτήρα εκτός από a έως k. To αποτέλεσμα είναι το ίδιο. select * from friends where phone regexp '2{2}..1+0{1,4}' Επιλογή εγγραφών όπου το τηλέφωνο αρχίζει με 2 - δύο φορές, εν συνεχεία είναι 2 οποιοιδήποτε χαρακτήρες, ακολουθεί 1 τουλάχιστον μια φορά, το 0 από 1 έως 4 φορές.

Ο τελεστής RegExp (συν) select * from friends where phone regexp '^21 3$'; Επιλογή εγγραφών όπου το τηλέφωνο αρχίζει με 21 ή τελειώνει σε 3. https://dev.mysql.com/doc/refman/5.7/en/regexp.html

Ταξινόμηση τιμών Select Order Η σειρά εμφάνισης των εγγραφών μπορεί να γίνει βάση των ταξινομημένων τιμών ενός ή περισσοτέρων πεδίων, όπως παρακάτω : SELECT πεδίο1, πεδίο2,..,πεδίοχ FROM ONOMAΠΙΝΑΚΑ ORDER BY πεδίο1 ASC, πεδίο2 DESC; Η ταξινόμηση μπορεί να γίνει είτε κατά αύξησα σειρά ASC είτε κατά φθίνουσα DESC. Αν παραληφθεί το είδος της ταξινόμησης τότε θεωρείται ότι είναι κατά αύξουσα σειρά. Για παράδειγμα για να εμφανίσουμε όλες τις εγγραφές του πίνακα friends ταξινομημένες κατά ηλικία σε αύξουσα σειρά θα πρέπει να πληκτρολογήσουμε : select * from friends order by age asc; ή select * from friends order by age;

Ταξινόμηση τιμών Select Order (συν) Για να εμφανίσουμε όλες τις εγγραφές ταξινομημένες κατά πόλη σε αύξησα σειρά, και εν συνεχεία κατά το μικρό όνομα σε φθίνουσα σειρά θα πρέπει να πληκτρολογήσουμε : select * from friends order by city asc, uname desc; H επιλογή των εγγραφών θα μπορούσε να γίνει και με βάση κάποιο κριτήριο. Οπότε για να εμφανίσουμε ταξινομημένες με τον ανωτέρω τρόπο όλες τις εγγραφές αλλά να επιλεγούν μόνο αυτές που έχουν ηλικία μικρότερη των 45 ετών, θα πρέπει να πληκτρολογήσουμε : select * from friends where age < 45 order by city asc, uname desc;

Εισαγωγή τιμών σε πίνακα Για την εισαγωγή τιμών σε ένα πίνακα θα πρέπει να χρησιμοποιήσουμε την εντολή INSERT INTO ΟΝΟΜΑΠΙΝΑΚΑ (πεδίο1, πεδίο2, πεδίοx) Values (τιμή1, τιμή2,.., τιμήχ) Η τιμή1 αναφέρεται στο πεδίο1, η τιμή2 στο πεδίο2 και ούτω καθ' εξής. Τα πεδία όπως και οι τιμές χωρίζονται με κόμμα. Μπορούμε να παραλείψουμε ένα πεδίο με την αντίστοιχη τιμή του, στις περιπτώσεις που : α) Πρόκειται για αύξων αριθμός (auto increment), οπότε θα χρησιμοποιηθεί η αμέσως μεγαλύτερη κατά ένα τιμή. β) υπάρχει προκαθορισμένη τιμή, οπότε θα χρησιμοποιηθεί αυτή σαν τιμή για το πεδίο. γ) επιτρέπεται η τιμή NULL στο πεδίο, οπότε θα χρησιμοποιηθεί αυτή σαν τιμή. Οι τιμές θα πρέπει να είναι μέσα σε " ή ' εισαγωγικά όταν είναι τύπου κειμένου.

Εισαγωγή τιμών σε πίνακα (συν) Σε ένα αυτόματα αύξων αριθμό μπορούμε να : α) να μην αναφέρουμε το όνομα του πεδίου και να μην δώσουμε τιμή. Αυτόματα θα αποδοθεί η αμέσως μεγαλύτερη τιμή. β) να αναφέρουμε το όνομα του πεδίου και να δώσουμε τη τιμή NULL. Αυτόματα θα αποδοθεί η αμέσως μεγαλύτερη τιμή. γ) να δώσουμε μια οποιαδήποτε τιμή που δεν υπάρχει ήδη στο πίνακα. Θα αποδοθεί η συγκεκριμένη τιμή στην εγγραφή. H επόμενη εισαγωγή αν δεν της αποδώσουμε τιμή τότε θα πάρει αυτόματα σαν τιμή, τη μεγαλύτερη τιμή στο πεδίο αυξημένη κατά 1. Μπορούμε να αγνοήσουμε τα ονόματα των πεδίων όταν δίνουμε όλες τις τιμές στα πεδία του πίνακα και η σύνταξη της εντολής είναι όπως παρακάτω : INSERT INTO ΟΝΟΜΑΠΙΝΑΚΑ Values (τιμή1, τιμή2,.., τιμήχ)

Εμφάνιση όλων των εγγραφών του πίνακα friends select * from friendsdb.friends; Το * σημαίνει όλα τα πεδία του πίνακα.

Τροποποίηση των τιμών των πεδίων Η σύνταξη της εντολής για την τροποποίηση των τιμών των πεδίων του πίνακα είναι : UPDATE ΟΝΟΜΑΠΙΝΑΚΑ SET πεδίο1=τιμή1, πεδίο2=τιμή2,... WHERE Κριτήριο; Το τμήμα WHERE είναι προαιρετικό και εάν παραληφθεί τότε θα τροποποιηθούν, στα αντίστοιχα πεδία, όλες οι τιμές του πίνακα διαφορετικά θα τροποποιηθούν μόνο οι εγγραφές που πληρούν το κριτήριο. Για να τροποποιήσουμε τα στοιχεία της εγγραφής 6 και να δώσουμε τη τιμή 34 στην ηλικία καθώς και τη τιμή Lamia στη πόλη, εκτελούμε τη παρακάτω εντολή : UPDATE FRIENDS set age=34, city="lamia" where id=6;

Τροποποίηση των τιμών των πεδίων

Διαγραφή εγγραφών από το πίνακα Η σύνταξη της εντολής για την τροποποίηση των τιμών των πεδίων του πίνακα είναι : DELETE FROM ΟΝΟΜΑΠΙΝΑΚΑ WHERE Κριτήριο; Το τμήμα WHERE είναι προαιρετικό και εάν παραληφθεί τότε θα διαγραφούν όλες οι εγγραφές του πίνακα διαφορετικά θα διαγραφούν μόνο οι εγγραφές που πληρούν το κριτήριο. Για να διαγράψουμε την εγγραφή με τιμή id το 6 πληκτρολογούμε : delete from friends where id=6;

Διαγραφή εγγραφών από το πίνακα

Διαγραφή πίνακα, χρήστη, βάσης δεδομένων Για τη διαγραφή ενός πίνακα χρησιμοποιούμε την εντολή : DROP TABLE ΟΝΟΜΑΠΙΝΑΚΑ; Για τη διαγραφή του πίνακα friends DROP TABLE friends; Για τη διαγραφή ενός χρήστη χρησιμοποιούμε την εντολή : DROP USER ΟΝΟΜΑΧΡΗΣΤΗ; Για τη διαγραφή του χρήστη frdbadmin DROP USER frdbadmin; Για τη διαγραφή της Βάσης Δεδομένων χρησιμοποιούμε την εντολή : DROP TABLE ΟΝΟΜΑΒΔ; Για τη διαγραφή της ΒΔ friendsdb DROP USER friendsdb;