MariaDB Εκμάθηση: Μάθετε Σύνταξη, Εντολές με Παραδείγματα
Τι είναι MariaDB?
MariaDB είναι ένα πιρούνι του MySQL σύστημα διαχείρισης βάσης δεδομένων. Δημιουργήθηκε από τους αρχικούς προγραμματιστές του. Αυτό το εργαλείο DBMS προσφέρει δυνατότητες επεξεργασίας δεδομένων τόσο για μικρές όσο και για εταιρικές εργασίες.
MariaDB είναι μια βελτιωμένη έκδοση του MySQL. Έρχεται με πολλά ενσωματωμένα ισχυρά χαρακτηριστικά και πολλές δυνατότητες χρήσης, βελτιώσεις ασφάλειας και απόδοσης που δεν μπορείτε να βρείτε MySQL.
Εδώ είναι τα χαρακτηριστικά του MariaDB:
- Λειτουργεί με άδειες GPL, BSD ή LGPL.
- MariaDB υποστηρίζει μια δημοφιλή και τυπική γλώσσα ερωτημάτων.
- Έρχεται με πολλές μηχανές αποθήκευσης, συμπεριλαμβανομένων των υψηλών επιδόσεων που μπορούν να ενσωματωθούν με άλλα συστήματα διαχείρισης σχεσιακών βάσεων δεδομένων.
- Παρέχει την τεχνολογία συμπλέγματος Galera.
- MariaDB υποστηρίζει την PHP, μια δημοφιλή γλώσσα για την ανάπτυξη ιστού.
- MariaDB μπορεί να τρέξει σε διαφορετικά λειτουργικά συστήματα και υποστηρίζει πολλές γλώσσες προγραμματισμού.
- MariaDB συνοδεύεται από πρόσθετες εντολές που δεν είναι διαθέσιμες MySQL. MySQL έχει χαρακτηριστικά που έχουν αρνητικό αντίκτυπο στην απόδοση του DBMS. Τέτοια χαρακτηριστικά έχουν αντικατασταθεί σε MariaDB.
MariaDB έναντι MySQL
Παρακάτω είναι μερικές βασικές διαφορές μεταξύ MariaDB vs MySQL
Παράμετρος | MariaDB | MySQL |
---|---|---|
Περισσότερες επιλογές για μηχανές αποθήκευσης | MariaDB έχει 12 νέες μηχανές αποθήκευσης που δεν θα βρείτε MySQL. | Έχει λιγότερες επιλογές αποθήκευσης σε σύγκριση με MariaDB. |
Βελτιώσεις ταχύτητας | MariaDB δείχνει βελτιωμένη ταχύτητα σε σύγκριση με MySQL. Έρχεται με πολλές δυνατότητες για βελτιστοποίηση της ταχύτητας. Τέτοια χαρακτηριστικά περιλαμβάνουν παραγόμενες προβολές/πίνακες, υποερώτημα, έλεγχος εκτέλεσης, πρόσβαση στο δίσκο και έλεγχο βελτιστοποίησης. | MySQL παρουσιάζει μικρότερη ταχύτητα σε σύγκριση με MariaDB. Βασίζεται σε λίγες μόνο δυνατότητες για βελτιστοποίηση ταχύτητας, για παράδειγμα, κατακερματισμένα ευρετήρια. |
Ταχύτερη κρυφή μνήμη/ευρετήρια | Με τη μηχανή αποθήκευσης μνήμης της MariaDB, μια δήλωση INSERT μπορεί να συμπληρωθεί κατά 24% από ό,τι στο πρότυπο MySQL. | Η μηχανή αποθήκευσης μνήμης του MySQL είναι πιο αργή σε σύγκριση με αυτό MariaDB. |
Μεγαλύτερη και ταχύτερη πισίνα σύνδεσης | MariaDB συνοδεύεται από ένα προηγμένο thread pool ικανό να λειτουργεί πιο γρήγορα και να υποστηρίζει έως και 200,000+ συνδέσεις. | Η πισίνα νημάτων που παρέχεται από MySQL δεν μπορεί να υποστηρίξει έως και 200,000 συνδέσεις κάθε φορά. |
Βελτιωμένη αναπαραγωγή | In MariaDB, η αναπαραγωγή μπορεί να γίνει ασφαλέστερα και ταχύτερα. Οι ενημερώσεις μπορούν επίσης να γίνουν 2 φορές πιο γρήγορα σε σύγκριση με τις παραδοσιακές MySQL. | MySQLΗ έκδοση κοινότητας επιτρέπει τη σύνδεση ενός στατικού αριθμού νημάτων. MySQLΤο επιχειρηματικό σχέδιο της εταιρείας συνοδεύεται από δυνατότητες νήματος. |
Νέες δυνατότητες/Επεκτάσεις | MariaDB έρχεται με νέες δυνατότητες και επεκτάσεις, συμπεριλαμβανομένων των δηλώσεων JSON, WITH και KILL. | Το νέο MariaDB χαρακτηριστικά δεν παρέχονται στο MySQL. |
Λείπει χαρακτηριστικά | MariaDB στερείται ορισμένων από τις δυνατότητες που παρέχονται από το MySQL εταιρική έκδοση. Για να αντιμετωπιστεί αυτό, προσφέρει εναλλακτικές προσθήκες ανοιχτού κώδικα. Ως εκ τούτου, MariaDB οι χρήστες μπορούν να απολαμβάνουν τις ίδιες λειτουργίες με MySQL Χρήστες Enterprise Edition. | Η Enterprise Edition του MySQL χρησιμοποιεί ιδιόκτητο κωδικό. Μόνο οι χρήστες του MySQL Η Enterprise Edition έχει πρόσβαση σε αυτό. |
Πως να εγκαταστήσετε MariaDB
Εγκατάσταση ως αυτόνομη εφαρμογή
Για να χρησιμοποιήσετε MariaDB, πρέπει να το εγκαταστήσετε στον υπολογιστή σας.
Η εγκατάσταση μπορεί να γίνει ακολουθώντας τα παρακάτω βήματα:
Βήμα 1) Ανοίξτε το παρακάτω URL
Κατεβάστε το αρχείο εγκατάστασης από το Link https://downloads.mariadb.org/
Βήμα 2) Double κάντε κλικ στο αρχείο για να ξεκινήσει η εγκατάσταση
Μόλις ολοκληρωθεί η λήψη, ανοίξτε το αρχείο
Βήμα 3) Κάντε κλικ στο κουμπί Επόμενο
Στο παράθυρο που εμφανίζεται, κάντε κλικ στο κουμπί Επόμενο:
Βήμα 4) Αποδεχτείτε τη συμφωνία άδειας χρήσης
Στη συνέχεια, κάντε κλικ στο κουμπί Επόμενο:
Βήμα 5) Επιλέξτε MariaDB διακομιστή
Επιλέξτε τις λειτουργίες που πρόκειται να εγκατασταθούν και κάντε κλικ στο Επόμενο
Βήμα 6) Πληκτρολογήστε τον κωδικό πρόσβασης
Στο επόμενο παράθυρο, θα σας ζητηθεί να αλλάξετε τον κωδικό πρόσβασης για τον χρήστη root.
- Εισαγάγετε τον κωδικό πρόσβασης και επιβεβαιώστε τον πληκτρολογώντας ξανά τον ίδιο κωδικό πρόσβασης. Εάν θέλετε να επιτρέψετε την πρόσβαση από απομακρυσμένα μηχανήματα, ενεργοποιήστε το απαραίτητο πλαίσιο ελέγχου.
- Μόλις τελειώσετε, κάντε κλικ στο κουμπί Επόμενο.
Βήμα 7) Εισαγάγετε Όνομα και επιλέξτε Αριθμός θύρας
Στο επόμενο παράθυρο, πληκτρολογήστε ένα όνομα για το παράδειγμα, επιλέξτε τον αριθμό θύρας και ορίστε το απαραίτητο μέγεθος. Κάντε κλικ στο κουμπί Επόμενο:
Βήμα 8) Κάντε κλικ στο κουμπί Επόμενο
Στο επόμενο παράθυρο, απλώς κάντε κλικ στο κουμπί Επόμενο.
Βήμα 9) Κάντε κλικ στο Εγκατάσταση
Ξεκινήστε την εγκατάσταση κάνοντας κλικ στο κουμπί Εγκατάσταση.
Βήμα 10) Εμφανίζεται μια γραμμή προόδου
Θα εμφανιστεί μια γραμμή προόδου που δείχνει την πρόοδο της εγκατάστασης:
Βήμα 11) Κάντε κλικ στο κουμπί Τέλος
Μόλις ολοκληρωθεί η εγκατάσταση, θα δείτε το κουμπί Τέλος. Κάντε κλικ στο κουμπί για να κλείσετε το παράθυρο:
Βήμα 12) Συγχαρητήρια!
Τώρα έχετε MariaDB εγκατεστημένο στον υπολογιστή σας.
Εργασία με τη γραμμή εντολών
Τώρα που έχετε MariaDB εγκατεστημένο στον υπολογιστή σας, είναι καιρός να το εκκινήσετε και να αρχίσετε να το χρησιμοποιείτε. Αυτό μπορεί να γίνει μέσω του MariaDB γραμμή εντολών.
Ακολουθήστε τα παρακάτω βήματα:
Βήμα 1) Κάντε κλικ στο Έναρξη, επιλέξτε Όλα τα προγράμματα και μετά κάντε κλικ MariaDB...
Βήμα 2) Επιλέξτε MariaDB Command Prompt.
Βήμα 3) Τα Διαχωριστικά MariaDB θα ξεκινήσει η γραμμή εντολών. Τώρα είναι ώρα να συνδεθείτε. Θα πρέπει να συνδεθείτε ως χρήστης root και ως κωδικός πρόσβασης που ορίσατε κατά την εγκατάσταση του MariaDB. Πληκτρολογήστε την ακόλουθη εντολή στη γραμμή εντολών:
MySQL -u root -p
Βήμα 4) Εισαγάγετε τον κωδικό πρόσβασης και πατήστε το πλήκτρο επιστροφής. Θα πρέπει να είστε συνδεδεμένοι, όπως φαίνεται παρακάτω:
Είστε πλέον συνδεδεμένοι MariaDB.
Τύποι δεδομένων
MariaDB υποστηρίζει τους ακόλουθους τύπους δεδομένων:
- Τύποι δεδομένων συμβολοσειράς
- Αριθμητικοί τύποι δεδομένων
- Τύποι δεδομένων ημερομηνίας/ώρας
- Τύποι δεδομένων μεγάλων αντικειμένων
Τύποι δεδομένων συμβολοσειράς
Αυτά περιλαμβάνουν τα ακόλουθα:
Τύπος δεδομένων συμβολοσειράς | Descriptιόν |
---|---|
χαρακτήρες (μέγεθος) | Το μέγεθος υποδηλώνει τον αριθμό των χαρακτήρων που πρέπει να αποθηκευτούν. Αποθηκεύει το πολύ 255 χαρακτήρες. Χορδές σταθερού μήκους. |
varchar(μέγεθος) | Το μέγεθος υποδηλώνει τον αριθμό των χαρακτήρων που πρέπει να αποθηκευτούν. Αποθηκεύει το πολύ 255 χαρακτήρες. Χορδές μεταβλητού μήκους. |
μέγεθος κειμένου) | Το μέγεθος υποδηλώνει τον αριθμό των χαρακτήρων που πρέπει να αποθηκευτούν. Αποθηκεύει το πολύ 255 χαρακτήρες. Χορδές σταθερού μήκους. |
δυαδικό (μέγεθος) | Το μέγεθος υποδηλώνει τον αριθμό των χαρακτήρων που πρέπει να αποθηκευτούν. Αποθηκεύει το πολύ 255 χαρακτήρες. Χορδές σταθερού μεγέθους. |
Αριθμητικοί τύποι δεδομένων
Περιλαμβάνουν τα εξής:
Αριθμητικοί τύποι δεδομένων | Descriptιόν |
---|---|
κομμάτι | Μια πολύ μικρή ακέραια τιμή ισοδύναμη με το tinyint(1). Οι τιμές με υπογραφή κυμαίνονται μεταξύ -128 και 127. Οι μη υπογεγραμμένες τιμές κυμαίνονται μεταξύ 0 και 255. |
int(m) | Μια τυπική ακέραια τιμή. Οι τιμές με υπογραφή κυμαίνονται μεταξύ -2147483648 και 2147483647. Οι μη υπογεγραμμένες τιμές κυμαίνονται μεταξύ 0 και 4294967295. |
float (m, d) | Ένας αριθμός κινητής υποδιαστολής με απλή ακρίβεια. |
διπλό (m,d) | Ένας αριθμός κινητής υποδιαστολής με διπλή ακρίβεια. |
float(p) | Ένας αριθμός κινητής υποδιαστολής. |
Ημερομηνία/Ώρα Τύποι δεδομένων
Αυτά περιλαμβάνουν τα ακόλουθα:
Ημερομηνία/Ώρα Τύπος δεδομένων | Descriptιόν |
---|---|
Ημερομηνία | Εμφανίζεται με τη μορφή 'εεεε-μμ-ηη.' Οι τιμές κυμαίνονται μεταξύ "1000-01-01" και "9999-12-31". |
Ημερομηνία ώρα | Εμφανίζεται με τη μορφή 'εεεε-μμ-ηη ωω:λλ:δδ'. Οι τιμές κυμαίνονται μεταξύ "1000-01-01 00:00:00" και "9999-12-31 23:59:59". |
χρονική σήμανση (m) | Εμφανίζεται με τη μορφή 'εεεε-μμ-ηη ωω:λλ:δδ'. Οι τιμές κυμαίνονται μεταξύ '1970-01-01 00:00:01' utc και '2038-01-19 03:14:07' utc. |
Χρόνος | Εμφανίζεται με τη μορφή 'ωω:μ:δ'. Οι τιμές κυμαίνονται μεταξύ "-838:59:59" και "838:59:59". |
Τύποι δεδομένων μεγάλων αντικειμένων (LOB)
Περιλαμβάνουν τα εξής:
Τύπος δεδομένων μεγάλου αντικειμένου | Descriptιόν |
---|---|
tinyblob | Το μέγιστο μέγεθός του είναι 255 byte. |
σταγόνα (μέγεθος) | Λαμβάνει 65,535 byte ως μέγιστο μέγεθος. |
mediumblob | Το μέγιστο μέγεθός του είναι 16,777,215 byte. |
μακρύ κείμενο | Χρειάζονται 4 GB ως μέγιστο μέγεθος. |
Δημιουργήστε μια βάση δεδομένων και πίνακες
Για να δημιουργήσετε μια νέα βάση δεδομένων στο MariaDB, θα πρέπει να έχετε ειδικά προνόμια τα οποία παραχωρούνται μόνο στον χρήστη root και στους διαχειριστές.
Για να δημιουργήσετε μια νέα βάση δεδομένων, θα πρέπει να χρησιμοποιήσετε την εντολή CREATE DATABASE που λαμβάνει την ακόλουθη σύνταξη:
CREATE DATABASE DatabaseName;
Σε αυτήν την περίπτωση, πρέπει να δημιουργήσετε μια βάση δεδομένων και να της δώσετε το όνομα Demo.
Ξεκινήστε το MariaDB γραμμή εντολών και συνδεθείτε ως χρήστης root πληκτρολογώντας την ακόλουθη εντολή:
mysql -u root -p
Πληκτρολογήστε τον κωδικό πρόσβασης root και πατήστε το κλειδί επιστροφής. Θα συνδεθείτε.
Τώρα, εκτελέστε την ακόλουθη εντολή:
CREATE DATABASE Demo;
Στη συνέχεια, δημιουργήσατε μια βάση δεδομένων με το όνομα Demo. Καλό θα είναι να επιβεβαιώσετε εάν η βάση δεδομένων δημιουργήθηκε με επιτυχία ή όχι. Πρέπει μόνο να εμφανίσετε τη λίστα με τις διαθέσιμες βάσεις δεδομένων εκτελώντας την ακόλουθη εντολή:
SHOW DATABASES;
Η παραπάνω έξοδος δείχνει ότι η βάση δεδομένων επίδειξης είναι μέρος της λίστας, επομένως η βάση δεδομένων δημιουργήθηκε με επιτυχία.
MariaDB Επιλέξτε Βάση δεδομένων
Για να μπορέσετε να χρησιμοποιήσετε ή να εργαστείτε σε μια συγκεκριμένη βάση δεδομένων, πρέπει να την επιλέξετε από τη λίστα των διαθέσιμων βάσεων δεδομένων. Αφού επιλέξετε μια βάση δεδομένων, μπορείτε να εκτελέσετε εργασίες όπως η δημιουργία πινάκων εντός της βάσης δεδομένων.
Για να επιλέξετε μια βάση δεδομένων, θα πρέπει να χρησιμοποιήσετε την εντολή USE. Παίρνει τη σύνταξη που δίνεται παρακάτω:
USE database_name;
Πρέπει να χρησιμοποιήσετε τη βάση δεδομένων επίδειξης. Μπορείτε να το επιλέξετε εκτελώντας την ακόλουθη εντολή:
USE Demo;
Η παραπάνω εικόνα δείχνει ότι το MariaDB Η γραμμή εντολών έχει αλλάξει από κανένα στο όνομα της βάσης δεδομένων που έχει επιλεγεί.
Τώρα μπορείτε να προχωρήσετε και να δημιουργήσετε πίνακες στη βάση δεδομένων επίδειξης.
MariaDB – Δημιουργία πίνακα
Για να μπορέσετε να δημιουργήσετε έναν πίνακα, πρέπει να έχετε επιλέξει μια βάση δεδομένων. Ο πίνακας μπορεί να δημιουργηθεί χρησιμοποιώντας την πρόταση CREATE TABLE. Εδώ είναι η σύνταξη για την εντολή:
CREATE TABLE tableName (columnName columnType);
Μπορείτε να ορίσετε μία από τις στήλες ως πρωτεύον κλειδί. Αυτή η στήλη δεν πρέπει να επιτρέπει μηδενικές τιμές.
Θα δημιουργήσουμε δύο πίνακες στη βάση δεδομένων επίδειξης, πίνακες Book και Price. Κάθε πίνακας θα έχει δύο στήλες.
Ας ξεκινήσουμε δημιουργώντας τον πίνακα Βιβλίο με δύο στήλες, το αναγνωριστικό και το όνομα. Εκτελέστε την ακόλουθη εντολή:
CREATE TABLE Book( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id));
Ο περιορισμός PRIMARY KEY έχει χρησιμοποιηθεί για να οριστεί η στήλη id ως πρωτεύον κλειδί για τον πίνακα. Η ιδιότητα AUTO_INCREMENT θα αυξήσει τις τιμές της στήλης id κατά 1 αυτόματα για κάθε νέα εγγραφή που εισάγεται στον πίνακα. Όλες οι στήλες δεν θα επιτρέπουν μηδενικές τιμές.
Τώρα, δημιουργήστε τον δεύτερο πίνακα, τον πίνακα τιμών:
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
Η στήλη id έχει οριστεί ως το πρωτεύον κλειδί για τον πίνακα.
Εμφάνιση πινάκων
Τώρα που έχετε δημιουργήσει τους δύο πίνακες, καλό θα είναι να συμμορφωθείτε εάν οι πίνακες δημιουργήθηκαν με επιτυχία ή όχι. Μπορείτε να εμφανίσετε τη λίστα των πινάκων που περιέχονται σε μια βάση δεδομένων εκτελώντας την ακόλουθη εντολή:
SHOW TABLES;
Το παραπάνω στιγμιότυπο οθόνης δείχνει ότι οι δύο πίνακες δημιουργήθηκαν με επιτυχία στη βάση δεδομένων επίδειξης.
Εμφάνιση δομής πίνακα
Για να δείτε τη δομή οποιουδήποτε συγκεκριμένου πίνακα, μπορείτε να χρησιμοποιήσετε την εντολή DESCRIBE, που συνήθως συντομεύεται ως DESC. Παίρνει την ακόλουθη σύνταξη:
DESC TableName;
Για παράδειγμα, για να δείτε τη δομή του πίνακα με το όνομα Book, μπορείτε να εκτελέσετε την ακόλουθη εντολή.
DESC Book;
Ο πίνακας έχει δύο στήλες. Για να δείτε τη δομή του πίνακα Price, μπορείτε να εκτελέσετε την ακόλουθη εντολή:
DESC Price;
CRUD και ρήτρες
ΕΝΘΕΤΟ
Για να εισαγάγετε δεδομένα σε α MariaDB πίνακα, θα πρέπει να χρησιμοποιήσετε την πρόταση INSERT INTO. Αυτή η εντολή παίρνει τη σύνταξη που δίνεται παρακάτω:
INSERT INTO tableName (column_1, column_2, ... ) VALUES (value1, value2, ... ), (value1, value2, ... ), ...;
Η παραπάνω σύνταξη δείχνει ότι πρέπει να καθορίσετε τις στήλες του πίνακα στις οποίες θέλετε να εισαγάγετε δεδομένα καθώς και τα δεδομένα που πρέπει να εισαγάγετε.
Ας εισάγουμε μια εγγραφή στον πίνακα του Βιβλίου:
INSERT INTO book (id, name) VALUES(1, 'MariaDB Book');
Έχετε εισαγάγει μία μόνο εγγραφή στον πίνακα. Εισαγάγετε μια εγγραφή στον πίνακα τιμών:
INSERT INTO price (id, price) VALUES(1, 200);
Ο δίσκος έχει δημιουργηθεί.
SELECT
Η δήλωση SELECT μας βοηθά να προβάλουμε ή να δούμε τα περιεχόμενα ενός πίνακα βάσης δεδομένων. Για να δείτε τα περιεχόμενα του πίνακα Βιβλίο, για παράδειγμα, πρέπει να εκτελέσετε την ακόλουθη εντολή:
SELECT * from book;
Τώρα, δείτε τα περιεχόμενα του πίνακα τιμών:
SELECT * from price;
Εισαγωγή πολλαπλών εγγραφών
Είναι δυνατόν να εισάγουμε πολλαπλές εγγραφές στο α MariaDB τραπέζι εν κινήσει. Για να το αποδείξετε αυτό, εκτελέστε το ακόλουθο παράδειγμα:
INSERT INTO book (id, name) VALUES (2,'MariaDB Book2'), (3,'MariaDB Book3'), (4,'MariaDB Book4'), (5,'MariaDB Book5');
Μπορείτε να κάνετε ερώτημα στον πίνακα για να ελέγξετε εάν οι εγγραφές εισήχθησαν με επιτυχία:
SELECT * FROM book;
Οι εγγραφές εισήχθησαν με επιτυχία. Εισαγάγετε πολλαπλές εγγραφές στον πίνακα τιμών εκτελώντας αυτό το παράδειγμα:
INSERT INTO price (id, price) VALUES (2, 250), (3, 220), (4, 190), (5, 300);
Ας επιβεβαιώσουμε εάν οι εγγραφές δημιουργήθηκαν με επιτυχία:
SELECT * FROM price;
ΕΚΣΥΓΧΡΟΝΊΖΩ
Η εντολή UPDATE μας βοηθά να αλλάξουμε ή να τροποποιήσουμε τις εγγραφές που έχουν ήδη εισαχθεί σε έναν πίνακα. Μπορείτε να το συνδυάσετε με την ρήτρα WHERE για να καθορίσετε την εγγραφή που πρόκειται να ενημερωθεί. Εδώ είναι η σύνταξη:
UPDATE tableName SET field=newValue, field2=newValue2,... [WHERE ...]
Η εντολή UPDATE μπορεί επίσης να συνδυαστεί με ρήτρες όπως SET, WHERE, LIMIT και ORDER BY. Θα το δείτε σύντομα:
Εξετάστε τον πίνακα με το όνομα Τιμή με τις ακόλουθες εγγραφές:
Ας αλλάξουμε την τιμή του βιβλίου με αναγνωριστικό 1 από 200 σε 250:
UPDATE price SET price = 250 WHERE id = 1;
Η εντολή εκτελέστηκε με επιτυχία. Τώρα μπορείτε να υποβάλετε ερώτημα στον πίνακα για να δείτε εάν πραγματοποιήθηκε η αλλαγή:
Το παραπάνω στιγμιότυπο οθόνης δείχνει ότι η αλλαγή έχει εφαρμοστεί. Εξετάστε τον πίνακα Βιβλίο με τις ακόλουθες εγγραφές:
Ας αλλάξουμε το όνομα του βιβλίου με το όνομα Βιβλίο σε MariaDB Βιβλίο 1. Παρατηρήστε ότι το βιβλίο έχει αναγνωριστικό 1. Ακολουθεί η εντολή για αυτό:
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
Ελέγξτε εάν η αλλαγή έχει εφαρμοστεί:
Το παραπάνω στιγμιότυπο οθόνης δείχνει ότι η αλλαγή εφαρμόστηκε με επιτυχία.
Στα παραπάνω παραδείγματα, έχουμε αλλάξει μόνο μία στήλη κάθε φορά. Ωστόσο, είναι δυνατό για εμάς να αλλάξουμε πολλές στήλες κάθε φορά. Ας το δείξουμε αυτό χρησιμοποιώντας ένα παράδειγμα.
Ας χρησιμοποιήσουμε τον πίνακα Τιμών με τα ακόλουθα δεδομένα:
Ας αλλάξουμε τόσο το αναγνωριστικό όσο και την τιμή του βιβλίου με αναγνωριστικό 5. Θα αλλάξουμε το αναγνωριστικό του σε 6 και την τιμή σε 6. Εκτελέστε την ακόλουθη εντολή:
UPDATE price SET id = 6, price = 280 WHERE id = 5;
Τώρα, υποβάλετε ερώτημα στον πίνακα για να ελέγξετε εάν η αλλαγή έγινε με επιτυχία:
Η αλλαγή έγινε με επιτυχία.
Διαγραφή
Χρησιμοποιούμε την εντολή DELETE όταν χρειάζεται να διαγράψουμε είτε μία είτε πολλές εγγραφές από έναν πίνακα. Εδώ είναι η σύνταξη για την εντολή:
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
Εξετάστε τον πίνακα Τιμών με τις ακόλουθες εγγραφές:
Πρέπει να διαγράψουμε την τελευταία εγγραφή από τον πίνακα. Έχει αναγνωριστικό 6 και τιμή 280. Ας διαγράψουμε την εγγραφή:
DELETE FROM price WHERE id = 6;
Η εντολή εκτελέστηκε με επιτυχία. Ας ρωτήσουμε τον πίνακα για να επιβεβαιώσουμε εάν η διαγραφή ήταν επιτυχής:
Η έξοδος δείχνει ότι η εγγραφή διαγράφηκε με επιτυχία.
Πού
Η ρήτρα WHERE μας βοηθά να καθορίσουμε την ακριβή τοποθεσία όπου πρέπει να κάνουμε μια αλλαγή. Χρησιμοποιείται μαζί με δηλώσεις όπως INSERT, SELECT, UPDATE και DELETE. Εξετάστε τον πίνακα τιμών με τα ακόλουθα δεδομένα:
Ας υποθέσουμε ότι πρέπει να δούμε τις εγγραφές στις οποίες η τιμή είναι μικρότερη από 250. Μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
SELECT * FROM price WHERE price < 250;
Επιστράφηκαν όλοι οι δίσκοι στους οποίους η τιμή είναι κάτω από 250.
Η ρήτρα WHERE μπορεί να συνδυαστεί με την πρόταση AND. Ας υποθέσουμε ότι πρέπει να δούμε όλες τις εγγραφές στον πίνακα Τιμή όπου η τιμή είναι κάτω από 250 και το αναγνωριστικό είναι πάνω από 3. Μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
SELECT * FROM price WHERE id > 3 AND price < 250;
Μόνο ένας δίσκος επιστράφηκε. Ο λόγος είναι ότι πρέπει να πληροί όλες τις προϋποθέσεις που έχουν καθοριστεί, δηλαδή id πάνω από 3 και τιμή κάτω από 250. Εάν παραβιαστεί κάποια από αυτές τις προϋποθέσεις, τότε η εγγραφή δεν θα επιστραφεί.
Η ρήτρα μπορεί επίσης να συνδυαστεί με την εντολή OR. Ας αντικαταστήσουμε το AND στην προηγούμενη εντολή μας με το OR και ας δούμε το είδος της εξόδου που λαμβάνουμε:
SELECT * FROM price WHERE id > 3 OR price < 250;
Τώρα παίρνουμε 2 ρεκόρ αντί για 1. Αυτό συμβαίνει επειδή, για ένα ρεκόρ πρόκρισης, πρέπει να πληροί μόνο μία από τις καθορισμένες προϋποθέσεις.
Αρέσει
Αυτή η ρήτρα χρησιμοποιείται για τον καθορισμό του μοτίβου δεδομένων κατά την πρόσβαση σε δεδομένα πίνακα στα οποία απαιτείται ακριβής αντιστοίχιση. Μπορεί να συνδυαστεί με τις δηλώσεις INSERT, UPDATE, SELECT και DELETE.
Θα πρέπει να μεταβιβάσετε το μοτίβο των δεδομένων που αναζητάτε στην ρήτρα και θα επιστρέψει είτε true είτε false. Ακολουθούν οι χαρακτήρες μπαλαντέρ που μπορούν να χρησιμοποιηθούν μαζί με την ρήτρα:
- %: για αντιστοίχιση 0 ή περισσότερων χαρακτήρων.
- _: για αντιστοίχιση ενός μεμονωμένου χαρακτήρα.
Εδώ είναι η σύνταξη για την πρόταση LIKE:
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
Ας δείξουμε πώς να χρησιμοποιήσετε τη ρήτρα με τον χαρακτήρα μπαλαντέρ %. Ας χρησιμοποιήσουμε τον πίνακα Βιβλίο με τις ακόλουθες εγγραφές:
Πρέπει να δούμε όλες τις εγγραφές στις οποίες το όνομα αρχίζει με M. Μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
SELECT name FROM book WHERE name LIKE 'M%';
Όλες οι εγγραφές έχουν επιστραφεί επειδή τα ονόματά τους ξεκινούν με το γράμμα M. Για να δείτε όλα τα ονόματα που τελειώνουν σε 4, μπορείτε να εκτελέσετε την ακόλουθη εντολή:
SELECT name FROM book WHERE name LIKE '%4';
Μόνο ένα όνομα έχει επιστραφεί επειδή είναι το μόνο που πληροί την προϋπόθεση.
Μπορούμε επίσης να περιβάλουμε το μοτίβο αναζήτησης με τον χαρακτήρα μπαλαντέρ:
SELECT name FROM book WHERE name LIKE '%DB%';
Εκτός από τον χαρακτήρα μπαλαντέρ %, η ρήτρα LIKE μπορεί να χρησιμοποιηθεί μαζί με τον χαρακτήρα μπαλαντέρ _. Αυτός είναι ο χαρακτήρας μπαλαντέρ υπογράμμισης και θα αναζητήσει μόνο έναν χαρακτήρα.
Ας δουλέψουμε με τον πίνακα τιμών με τις ακόλουθες εγγραφές:
Ας ελέγξουμε για το ρεκόρ στο οποίο η τιμή είναι σαν 1_0. Εκτελούμε την ακόλουθη εντολή:
SELECT * FROM price WHERE price LIKE '1_0';
Έχει επιστρέψει το ρεκόρ στο οποίο η τιμή είναι 190. Μπορούμε επίσης να δοκιμάσουμε ένα άλλο μοτίβο:
SELECT * FROM price WHERE price LIKE '_2_';
Είναι δυνατόν να χρησιμοποιήσουμε την ρήτρα LIKE μαζί με τον τελεστή NOT. Αυτό θα επιστρέψει όλες τις εγγραφές που δεν πληρούν το καθορισμένο μοτίβο. Για παράδειγμα:
Ας χρησιμοποιήσουμε τον πίνακα τιμών με τις ακόλουθες εγγραφές:
Ας βρούμε όλες τις εγγραφές όπου η τιμή δεν ξεκινά με 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
Μόνο μία εγγραφή δεν πληροί το καθορισμένο μοτίβο.
Ταξινόμηση
Αυτή η ρήτρα μας βοηθά να ταξινομήσουμε τα αρχεία μας με αύξουσα ή φθίνουσα σειρά. Το χρησιμοποιούμε με την πρόταση SELECT, όπως φαίνεται παρακάτω:
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
Είναι δυνατό για εμάς να χρησιμοποιήσουμε αυτόν τον όρο χωρίς να προσθέσουμε το τμήμα ASC ή DESC. Για παράδειγμα:
Θα χρησιμοποιήσουμε τον πίνακα Τιμών με τις ακόλουθες εγγραφές:
Εκτελέστε την ακόλουθη εντολή στον πίνακα:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
Στην παραπάνω εντολή, έχουμε παραγγείλει με βάση την τιμή. Τα ρεκόρ έχουν παραγγελθεί με τις τιμές σε αύξουσα σειρά. Αυτό σημαίνει ότι όταν δεν καθορίζουμε τη σειρά, η ταξινόμηση γίνεται με αύξουσα σειρά από προεπιλογή.
Ας εκτελέσουμε τον όρο με την επιλογή DESC:
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
Οι εγγραφές έχουν ταξινομηθεί με την τιμή σε φθίνουσα σειρά όπως έχουμε καθορίσει.
Ας χρησιμοποιήσουμε τον όρο ORDER BY μαζί με το χαρακτηριστικό ASC:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
Οι δίσκοι έχουν παραγγελθεί αλλά με τις τιμές σε αύξουσα σειρά. Αυτό είναι παρόμοιο με όταν χρησιμοποιούμε τον όρο ORDER BY χωρίς χαρακτηριστικά ASC ή DESC.
ΔΙΑΦΟΡΕΤΙΚΕΣ
Αυτή η ρήτρα μας βοηθά να καταργήσουμε τα διπλότυπα όταν επιλέγουμε εγγραφές από έναν πίνακα. Αυτό σημαίνει ότι μας βοηθά να αποκτήσουμε μοναδικούς δίσκους. Η σύνταξή του δίνεται παρακάτω:
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
Για να το αποδείξουμε αυτό, θα χρησιμοποιήσουμε τον πίνακα Τιμών με τα ακόλουθα δεδομένα:
Όταν επιλέγουμε τη στήλη τιμής από τον πίνακα, έχουμε το ακόλουθο αποτέλεσμα:
SELECT price FROM Price;
Έχουμε δύο δίσκους με τιμή 250, δημιουργώντας ένα διπλότυπο. Πρέπει να έχουμε μόνο μοναδικούς δίσκους. Μπορούμε να τα φιλτράρουμε χρησιμοποιώντας την ρήτρα DISTINCT όπως φαίνεται παρακάτω:
SELECT DISTINCT price FROM Price;
Τώρα δεν έχουμε διπλότυπα στην παραπάνω έξοδο.
Από
Ο όρος FROM που χρησιμοποιείται για την ανάκτηση δεδομένων από έναν πίνακα βάσης δεδομένων. Μπορεί επίσης να βοηθήσει όταν ενώνετε τραπέζια. Εδώ είναι η σύνταξη για την εντολή:
SELECT columnNames FROM tableName;
Για να δείτε τα περιεχόμενα του πίνακα βιβλίων, εκτελέστε την ακόλουθη εντολή:
SELECT * FROM price;
Η ρήτρα μπορεί να σας βοηθήσει να λάβετε μόνο μία στήλη από έναν πίνακα βάσης δεδομένων. Για παράδειγμα:
SELECT price FROM Price;
Προηγμένες εργασίες
Αποθηκευμένη διαδικασία
Μια διαδικασία είναι α MariaDB πρόγραμμα στο οποίο μπορείτε να μεταβιβάσετε παραμέτρους. Μια διαδικασία δεν επιστρέφει τιμές. Για να δημιουργήσουμε μια διαδικασία, χρησιμοποιούμε την εντολή CREATE PROCEDURE.
Για να δείξουμε πώς να δημιουργήσουμε και να καλέσουμε μια διαδικασία, θα δημιουργήσουμε μια διαδικασία με το όνομα myProcedure() που μας βοηθά να επιλέξουμε τη στήλη ονόματος από τον πίνακα βιβλίου. Εδώ είναι η διαδικασία:
DELIMITER $ CREATE PROCEDURE myProcedure() BEGIN SELECT name FROM book; END; ;
Η διαδικασία έχει δημιουργηθεί. Έχουμε απλώς επισυνάψει τη δήλωση SELECT στις ρήτρες BEGIN και END της διαδικασίας.
Τώρα, μπορούμε να ονομάσουμε τη διαδικασία με το όνομά της όπως φαίνεται παρακάτω:
CALL myProcedure();
Η διαδικασία επιστρέφει τη στήλη ονόματος του πίνακα βιβλίου όταν καλείται.
Μπορούμε να δημιουργήσουμε μια διαδικασία που παίρνει μια παράμετρο. Για παράδειγμα, πρέπει να επιλέξουμε το όνομα του βιβλίου και να φιλτράρουμε χρησιμοποιώντας το αναγνωριστικό βιβλίου. Μπορούμε να δημιουργήσουμε την ακόλουθη διαδικασία για αυτό:
DELIMITER $ CREATE PROCEDURE myProcedure2(book_id int) BEGIN SELECT name FROM book WHERE id = book_id; END; ;
Παραπάνω, δημιουργήσαμε μια διαδικασία με το όνομα myProcedure2(). Αυτή η διαδικασία παίρνει μια ακέραια παράμετρο με το όνομα book_id που είναι το id του βιβλίου του οποίου το όνομα πρέπει να δούμε. Για να δούμε το όνομα του βιβλίου με αναγνωριστικό 3, μπορούμε να καλέσουμε τη διαδικασία ως εξής:
CALL myProcedure2(3);
Λειτουργία
Σε αντίθεση με τις διαδικασίες, πρέπει να περάσουμε παραμέτρους στις συναρτήσεις και μια συνάρτηση πρέπει να επιστρέψει μια τιμή. Για να δημιουργήσετε μια συνάρτηση στο MariaDB, χρησιμοποιούμε την πρόταση CREATE FUNCTION. Η δήλωση έχει την ακόλουθη σύνταξη:
CREATE [ DEFINER = { CURRENT-USER | username } ] FUNCTION function-name [(parameter datatype [, parameter datatype]) ] RETURNS datatype [LANGUAGE SQL | DETERMINISTIC | NOT DETERMINISTIC | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} | SQL SECURITY {DEFINER | INVOKER} | COMMENT 'comment' BEGIN declaration-section executable-section END;
Οι παραπάνω παράμετροι περιγράφονται παρακάτω:
Παράμετρος | Descriptιόν |
---|---|
Ρήτρα DEFINER | Αυτή η παράμετρος είναι προαιρετική. Εάν δεν το καθορίσετε, ο οριστής θα γίνει ο χρήστης που δημιούργησε τη συνάρτηση. Εάν υπάρχει ανάγκη να ορίσετε διαφορετικό οριστή, συμπεριλάβετε την ρήτρα DEFINER στην οποία το user_name θα είναι ο οριστής της συνάρτησης. |
όνομα_λειτουργίας | Το όνομα που πρόκειται να εκχωρηθεί σε αυτή τη λειτουργία στο MariaDB. |
παράμετρος | Οι παράμετροι μεταβιβάστηκαν στη συνάρτηση. Κατά τη δημιουργία της συνάρτησης, όλες οι παράμετροι αντιμετωπίζονται ως IN παραμέτρους (αντί για τις παραμέτρους OUT/INOUT). |
επιστροφή_τύπος δεδομένων | Ο τύπος δεδομένων της επιστρεφόμενης τιμής της συνάρτησης. |
ΓΛΩΣΣΑ SQL | Επηρεάζει τη φορητότητα αλλά όχι τη λειτουργία. |
ΑΠΟΔΟΤΙΚΟΣ | Η συνάρτηση θα επιστρέψει ένα αποτέλεσμα μόνο όταν δοθεί ένας αριθμός παραμέτρων. |
ΟΧΙ ΝΤΕΤΕΜΙΝΙΣΤΙΚΟ | Είναι δυνατό για τη συνάρτηση να επιστρέψει διαφορετικό αποτέλεσμα όταν δίνεται ένας αριθμός παραμέτρων. |
ΠΕΡΙΕΧΕΙ SQL | Ενημερώνει MariaDB ότι αυτή η συνάρτηση περιέχει SQL. Η βάση δεδομένων δεν θα επαληθεύσει εάν αυτό είναι αλήθεια. |
ΟΧΙ SQL | Αυτή η ρήτρα δεν χρησιμοποιείται και δεν έχει καμία επίδραση στη λειτουργία σας. |
ΔΙΑΒΑΖΕΙ ΔΕΔΟΜΕΝΑ SQL | Λέει MariaDB ότι αυτή η συνάρτηση θα χρησιμοποιεί δηλώσεις SELECT για την ανάγνωση δεδομένων, αλλά δεν θα τροποποιεί τα δεδομένα. |
ΤΡΟΠΟΠΟΙΕΙ ΔΕΔΟΜΕΝΑ SQL | Λέει MariaDB ότι αυτή η λειτουργία θα χρησιμοποιεί INSERT, DELETE, UPDATE και άλλα DDL δηλώσεις για την τροποποίηση δεδομένων SQL. |
δήλωση-τμήμα | Εδώ πρέπει να δηλωθούν οι τοπικές μεταβλητές. |
εκτελέσιμο-τμήμα | Ο κωδικός λειτουργίας πρέπει να προστεθεί εδώ. |
Εδώ είναι ένα παράδειγμα MariaDB λειτουργία:
DELIMITER // CREATE FUNCTION sumFunc (x INT ) RETURNS INT DETERMINISTIC BEGIN DECLARE sum INT; SET sum = 0; label1: WHILE sum <= 3000 DO SET sum = sum + x; END WHILE label1; RETURN sum; END; // DELIMITER ;
Τότε μπορούμε να καλέσουμε την παραπάνω συνάρτηση ως εξής:
select sumFunc(1000);
Η εντολή θα επιστρέψει τα εξής:
Μόλις τελειώσετε με μια συνάρτηση, καλό θα είναι να τη διαγράψετε. Αυτό είναι εύκολο καθώς πρέπει να καλέσετε μόνο τη δήλωση DROP FUNCTION που λαμβάνει την ακόλουθη σύνταξη:
DROP FUNCTION function_name;
Για παράδειγμα, για να απορρίψουμε τη συνάρτηση με το όνομα myFunc, μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
DROP FUNCTION myFunc;
Ενώνω
Όταν χρειάζεται να ανακτήσετε δεδομένα από περισσότερους από έναν πίνακες κάθε φορά, χρησιμοποιήστε το MariaDB ΕΝΩΝΕΙ. Αυτό σημαίνει ότι α Ενώνω λειτουργεί σε δύο ή περισσότερα τραπέζια. Υποστηρίζονται οι ακόλουθοι τρεις τύποι JOINS MariaDB:
- ΕΣΩΤΕΡΙΚΗ/ΑΠΛΗ ΕΝΩΣΗ
- ΑΡΙΣΤΕΡΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ/ΑΡΙΣΤΕΡΑ ΣΥΝΔΕΣΗ
- ΔΕΞΙΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ/ΔΕΞΙΑ ΣΥΝΔΕΣΗ
Ας τα συζητήσουμε ένα προς ένα:
ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ
Η εσωτερική ένωση επιστρέφει όλες τις σειρές από τους πίνακες στους οποίους η συνθήκη σύνδεσης είναι αληθής. Η σύνταξή του είναι η εξής:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Για παράδειγμα:
Θα χρησιμοποιήσουμε τα δύο τραπέζια, τα βιβλία και το βιβλίο μας.
Ο πίνακας του βιβλίου έχει τα ακόλουθα στοιχεία:
Ο πίνακας τιμών έχει τα ακόλουθα δεδομένα:
Ο στόχος είναι να ενώσετε τη στήλη ονόματος από τον πίνακα Βιβλίο και τη στήλη τιμής από τον πίνακα Τιμή σε έναν ενιαίο πίνακα. Αυτό είναι δυνατό με μια εσωτερική ένωση, όπως φαίνεται παρακάτω:
SELECT book.name, price.price FROM book INNER JOIN price ON book.id = price.id;
Η εντολή επιστρέφει τα εξής:
ΑΡΙΣΤΕΡΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ
Αυτή η ένωση επιστρέφει όλες τις σειρές από τον αριστερό πίνακα και μόνο τις γραμμές στις οποίες η συνθήκη σύνδεσης είναι αληθής από τον άλλο πίνακα. Η σύνταξή του είναι η εξής:
SELECT columns FROM table-1 LEFT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Η λέξη-κλειδί OUTER έχει τοποθετηθεί μέσα σε αγκύλες επειδή είναι προαιρετική.
Για παράδειγμα:
SELECT book.name, price.price FROM book LEFT JOIN price ON book.id = price.id;
Η εντολή επιστρέφει τα εξής:
Η τελευταία εγγραφή στον παραπάνω πίνακα δεν έχει αντίστοιχη τιμή στα αριστερά. Γι' αυτό έχει αντικατασταθεί με NULL.
ΔΕΞΙΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ
Αυτή η ένωση επιστρέφει όλες τις σειρές από τον δεξιό πίνακα και μόνο τις γραμμές στις οποίες η συνθήκη σύνδεσης είναι αληθής από τον άλλο πίνακα. Η σύνταξή του είναι η εξής:
SELECT columns FROM table-1 RIGHT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Η λέξη-κλειδί OUTER έχει τοποθετηθεί μέσα σε αγκύλες επειδή είναι προαιρετική.
Για παράδειγμα:
SELECT book.name, price.price FROM book RIGHT JOIN price ON book.id = price.id;
Η εντολή επιστρέφει τα εξής:
Ο λόγος είναι ότι όλες οι σειρές στον δεξιό πίνακα αντιστοιχίστηκαν με αυτές του άλλου πίνακα. Εάν μερικές από τις σειρές δεν ταιριάζουν, θα είχαμε NULL στην πρώτη στήλη.