Εκκίνηση και διακοπή του διακομιστή MySQL από τον πίνακα ελέγχου. Πώς να προβάλετε όλες τις μεταβλητές και τις τιμές κατάστασης MySQL

Εκκίνηση και διακοπή του διακομιστή MySQL από τη γραμμή εντολών

Μπορείτε να ξεκινήσετε μη αυτόματα τον διακομιστή MySQL με έναν από τους δύο τρόπους:

Κάντε διπλό κλικ στο αρχείο mysqld-nt.exe που βρίσκεται στον υποκατάλογο bin του καταλόγου όπου είναι εγκατεστημένη η MySQL.

Ανοίξτε ένα παράθυρο εντολών Συμβολοσειρές των Windows. Για να το κάνετε αυτό, κάντε κλικ στο κουμπί Έναρξη, επιλέξτε Εκτέλεση από το μενού και στο παράθυρο Εκτέλεση προγράμματος που εμφανίζεται, στο πεδίο Άνοιγμα, πληκτρολογήστε εντολή cmdκαι κάντε κλικ στο OK. Στην οθόνη θα εμφανιστεί ένα παράθυρο γραμμής εντολών (Εικ. 1.25).

Ρύζι. 1,25.Παράθυρο γραμμής εντολών


Στη γραμμή εντολών, πληκτρολογήστε την εντολή

mysqld-nt

και πατήστε Enter. Ο διακομιστής MySQL θα ξεκινήσει.

Εάν, κατά τη ρύθμιση του διακομιστή, η διαδρομή προς τον υποκατάλογο bin δεν προστέθηκε στην τιμή της μεταβλητής συστήματος Path, τότε για να ξεκινήσετε τον διακομιστή πρέπει να εισαγάγετε όχι μόνο το όνομα αρχείου, αλλά και πλήρης διαδρομήσε αυτό, για παράδειγμα:

ΝΤΟ:\ Αρχεια προγραμματος\MySQL\MySQL Server 5.0\bin\mysqld-nt

Εάν θέλετε να προβάλετε διαγνωστικά μηνύματα σχετικά με τον διακομιστή στο παράθυρο της γραμμής εντολών, αντί για mysqld-nt, πληκτρολογήστε

mysqld-nt – κονσόλα

Προσοχή!

Εάν δεν καθορίσατε κωδικό πρόσβασης κατά τη ρύθμιση του διακομιστή MySQL root χρήστη, τότε πρέπει να ορίσετε έναν κωδικό πρόσβασης κατά την πρώτη εκκίνηση του διακομιστή (διαφορετικά οποιοσδήποτε θα μπορεί να διαχειρίζεται τον διακομιστή κάτω από ως ρίζαχωρίς κωδικό πρόσβασης).

Για να ορίσετε τον κωδικό πρόσβασης root, ανοίξτε ένα νέο παράθυρο γραμμής εντολών και πληκτρολογήστε την ακόλουθη εντολή:

κωδικός πρόσβασης root mysqladmin -u<пароль>

(ή C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u κωδικός πρόσβασης root<пароль>, εάν η διαδρομή προς τον υποκατάλογο bin δεν προστέθηκε στη μεταβλητή συστήματος Path κατά τη ρύθμιση του διακομιστή) και πατήστε Enter.

Στο μέλλον, εάν χρειαστεί να αλλάξετε τον κωδικό πρόσβασης χρήστη root, εκτελέστε την ίδια εντολή, χρησιμοποιώντας μόνο την επιλογή -p:

κωδικός πρόσβασης mysqladmin -u root -p<новый пароль>

Όταν εμφανιστεί η προτροπή Enter password, πληκτρολογήστε τον παλιό σας κωδικό πρόσβασης και πατήστε Enter.

Τέλος, εάν πρέπει να διακόψετε τον διακομιστή MySQL, εκτελέστε την εντολή

mysqladmin -u root -p τερματισμός λειτουργίας

και στη γραμμή εντολών Enter password, πληκτρολογήστε τον κωδικό πρόσβασης χρήστη root. Πατήστε Enter. Ο διακομιστής MySQL θα σταματήσει.

Μπορείτε επίσης να χρησιμοποιήσετε το βοηθητικό πρόγραμμα γραφικών MySQL Administrator για να ξεκινήσετε και να σταματήσετε τον διακομιστή MySQL.

Εκκίνηση και διακοπή του MySQL Server με χρήση του MySQL Administrator

Για να ξεκινήσετε τον διακομιστή MySQL χρησιμοποιώντας το βοηθητικό πρόγραμμα γραφικών MySQL Administrator, ακολουθήστε αυτά τα βήματα.

1. Εκκινήστε το πρόγραμμα MySQL Administrator (Έναρξη → Όλα τα προγράμματα → MySQL → Διαχειριστής MySQL). Στην οθόνη θα εμφανιστεί ένα παράθυρο σύνδεσης διακομιστή (Εικ. 1.26).

Ρύζι. 1.26.


2. Πατήστε και κρατήστε πατημένο το πλήκτρο Ctrl και κάντε κλικ στο κουμπί Παράλειψη που εμφανίζεται στην κάτω δεξιά γωνία του παραθύρου αντί για το κουμπί Άκυρο. Στην οθόνη θα εμφανιστεί το κύριο παράθυρο του MySQL Administrator (Εικ. 1.27).

Ρύζι. 1.27.Κύριο παράθυρο του MySQL Administrator


4. Εάν ο διακομιστής MySQL δεν έχει ρυθμιστεί ως υπηρεσία Windows, τότε το κουμπί Start Service που βρίσκεται στη δεξιά περιοχή του παραθύρου δεν είναι διαθέσιμο. Πρέπει να γίνουν τα ακόλουθα προκαταρκτικά βήματα:

1) Μεταβείτε στην καρτέλα Διαμόρφωση υπηρεσίας. Βρείτε το κουμπί Εγκατάσταση νέας υπηρεσίας στο κάτω μέρος της καρτέλας. νέα υπηρεσία) και πατήστε το.

2) στο παράθυρο διαλόγου που εμφανίζεται, καθορίστε το όνομα της υπηρεσίας και κάντε κλικ στο OK.

3) στο πεδίο Config Filename, εισαγάγετε τη διαδρομή προς αρχείο ρυθμίσεων my.ini (Εικ. 1.28), για παράδειγμα C: \Program Files\ MySQL\MySQL Server 5.0\my.ini. Το κόκκινο χρώμα γραμματοσειράς σημαίνει ότι το αρχείο δεν βρέθηκε. αν το χρώμα αλλάξει σε κανονικό, τότε η διαδρομή είναι σωστή.

4) στο πεδίο Path to binary, εισαγάγετε τη διαδρομή προς το αρχείο mysqld-nt.exe, για παράδειγμα C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt;

6) επιστρέψτε στην καρτέλα Start/Stop Service.

Ρύζι. 1.28.Διαμόρφωση καρτέλας υπηρεσίας 5. Κάντε κλικ στο κουμπί Έναρξη υπηρεσίας. Ο διακομιστής MySQL θα ξεκινήσει.


Προσοχή!

Εάν δεν καθορίσατε κωδικό πρόσβασης χρήστη root κατά τη ρύθμιση του διακομιστή MySQL, πρέπει να τον ορίσετε την πρώτη φορά που θα ξεκινήσετε τον διακομιστή (διαφορετικά οποιοσδήποτε μπορεί να διαχειριστεί τον διακομιστή ως root χωρίς κωδικό πρόσβασης). Στο ρεύμα Εκδόσεις MySQLΗ ρύθμιση του κωδικού πρόσβασης root από τον διαχειριστή δεν είναι διαθέσιμη και πρέπει να χρησιμοποιήσετε ένα βοηθητικό πρόγραμμα εντολών για να εκτελέσετε αυτήν τη λειτουργία συμβολοσειρές mysql admin (δείτε την υποενότητα «Εκκίνηση και διακοπή του διακομιστή MySQL από τη γραμμή εντολών»).

Για διακοπή του διακομιστή MySQL με χρησιμοποιώντας MySQLΔιαχειριστής, ακολουθήστε αυτά τα βήματα.

1. Εκκινήστε το πρόγραμμα MySQL Administrator (Έναρξη → Όλα τα προγράμματα → MySQL → Διαχειριστής MySQL). Στην οθόνη θα εμφανιστεί ένα παράθυρο σύνδεσης διακομιστή (βλ. Εικόνα 1.26).

Κεντρικός υπολογιστής διακομιστή – τιμή localhost (τοπικός υπολογιστής).

Θύρα – επιλεγμένος αριθμός θύρας κατά τη ρύθμιση του διακομιστή (προεπιλογή – 3306).

Όνομα χρήσης – ρίζα.

Κωδικός πρόσβασης – κωδικός χρήστη root. Κάντε κλικ στο OK.

3. Στο κύριο παράθυρο του MySQL Administrator, στο αριστερό παράθυρο, κάντε κλικ στο Service Control.

4. Στο δεξιό τμήμα του παραθύρου, κάντε κλικ στο κουμπί Stop Service. Ο διακομιστής MySQL θα διακοπεί.

Στην επόμενη υποενότητα, θα μάθετε πώς να ξεκινήσετε έναν διακομιστή MySQL χρησιμοποιώντας τα Εργαλεία διαχείρισης των Windows.

Εκκίνηση και διακοπή του διακομιστή MySQL από τον πίνακα ελέγχου

Εάν ο διακομιστής MySQL διαμορφώθηκε ως υπηρεσία Windows χρησιμοποιώντας τον οδηγό εγκατάστασης (δείτε την υποενότητα "Διαμόρφωση του διακομιστή MySQL") ή χρησιμοποιώντας το βοηθητικό πρόγραμμα MySQL Administrator (δείτε την υποενότητα "Έναρξη και διακοπή του διακομιστή MySQL με χρήση του MySQL Administrator"), τότε ξεκινήστε και σταματήστε it Μπορείτε να χρησιμοποιήσετε το στοιχείο Υπηρεσίες του Πίνακα Ελέγχου.

Για να αποκτήσετε πρόσβαση στο στοιχείο Υπηρεσίες, κάντε κλικ στο κουμπί Έναρξη, επιλέξτε Πίνακας Ελέγχου από το μενού, στη συνέχεια κάντε διπλό κλικ στο Εργαλεία διαχείρισης στον Πίνακα Ελέγχου και, τέλος, κάντε διπλό κλικ στις Υπηρεσίες στο παράθυρο Εργαλεία διαχείρισης. Το παράθυρο Υπηρεσίες θα εμφανιστεί στην οθόνη (Εικ. 1.29) με μια λίστα με όλες τις τοπικές υπηρεσίες.

Ρύζι. 1.29.Υπηρεσία MySQL στον πίνακα ελέγχου


Στο παράθυρο Υπηρεσίες, κάντε κλικ στο όνομα της υπηρεσίας MySQL (το όνομα καθορίζεται κατά τη δημιουργία της υπηρεσίας στον οδηγό ρύθμισης παραμέτρων ή στον διαχειριστή MySQL). Στη συνέχεια κάντε κλικ στο τον απαιτούμενο σύνδεσμοκάτω από το όνομα υπηρεσίας: Start Service, Stop Service ή Restart Service.

Μόλις εκτελεστεί ο διακομιστής MySQL, μπορείτε να συνδεθείτε σε αυτόν. Στις επόμενες υποενότητες θα μάθετε πώς να το κάνετε αυτό.

Σύνδεση στον διακομιστή από τη γραμμή εντολών

Για να συνδεθείτε στον διακομιστή MySQL από τη γραμμή εντολών, ακολουθήστε αυτά τα βήματα.

1. Ανοίξτε ένα παράθυρο γραμμής εντολών των Windows. Για να το κάνετε αυτό, κάντε κλικ στο κουμπί Έναρξη, επιλέξτε Εκτέλεση από το μενού, στο παράθυρο Εκτέλεση προγράμματος που εμφανίζεται, πληκτρολογήστε cmd στο πεδίο Άνοιγμα και κάντε κλικ στο OK.

2. Στη γραμμή εντολών (βλ. Εικόνα 1.25), πληκτρολογήστε την εντολή

mysql -h<Имя компьютера>-u<Имя пользователя>-Π

(Οπου<Имя компьютера>είναι το όνομα του υπολογιστή στον οποίο εκτελείται ο διακομιστής) και πατήστε Enter. Όταν σας ζητηθεί να εισάγετε τον κωδικό πρόσβασης, εισαγάγετε τον κωδικό πρόσβασης του χρήστη.

Εάν πρέπει να συνδεθείτε σε έναν διακομιστή MySQL που εκτελείται στον ίδιο υπολογιστή, το όνομα του υπολογιστή (localhost) μπορεί να παραλειφθεί, για παράδειγμα

mysql -u root -p

Μετά τη σύνδεση στον διακομιστή, η γραμμή εντολών θα αλλάξει σε mysql> (Εικόνα 1.30). Τώρα μπορείτε να ξεκινήσετε να εργάζεστε με τη βάση δεδομένων: να προσθέσετε πίνακες, να εισαγάγετε και να αναζητήσετε δεδομένα, να εγγράψετε νέους χρήστες κ.λπ.

Ρύζι. 1.30.Σύνδεση στον διακομιστή MySQL από τη γραμμή εντολών


Για να αποσυνδεθείτε από τον διακομιστή, απλώς πληκτρολογήστε την εντολή στη γραμμή εντολών

και πατήστε Enter.

Ένας εναλλακτικός τρόπος σύνδεσης με τον διακομιστή MySQL παρέχεται από το βοηθητικό πρόγραμμα γραφικών MySQL Query Browser.

Σύνδεση στον διακομιστή χρησιμοποιώντας το πρόγραμμα περιήγησης MySQL Query

Το βοηθητικό πρόγραμμα περιήγησης MySQL Query είναι μια διεπαφή για τη δημιουργία, την επεξεργασία και την εκτέλεση δηλώσεων SQL. Είναι πιο βολικό από τη γραμμή εντολών. Εάν αποφασίσετε να χρησιμοποιήσετε το πρόγραμμα περιήγησης MySQL Query για να εργαστείτε με τη βάση δεδομένων, ακολουθήστε αυτά τα βήματα για να συνδεθείτε στο διακομιστή.

1. Εκκινήστε το πρόγραμμα MySQL Query Browser (Έναρξη → Όλα τα προγράμματα → MySQL → MySQL Query Browser). Στην οθόνη θα εμφανιστεί ένα παράθυρο σύνδεσης διακομιστή (Εικ. 1.31).

Ρύζι. 1.31.Παράθυρο σύνδεσης διακομιστή MySQL


2. Στα πεδία του παραθύρου σύνδεσης διακομιστή, εισαγάγετε τις παραμέτρους σύνδεσης:

Server Host – το όνομα του υπολογιστή στον οποίο εκτελείται ο διακομιστής MySQL.

Θύρα – αριθμός θύρας που επιλέχθηκε κατά τη ρύθμιση του διακομιστή (προεπιλογή – 330 6).

Όνομα χρήστη – όνομα χρήστη.

Κωδικός πρόσβασης – κωδικός χρήστη.

Προεπιλεγμένο σχήμα – Το όνομα της βάσης δεδομένων με την οποία θα εργαστείτε (αυτό μπορεί να είναι μια υπάρχουσα βάση δεδομένων ή μια νέα).

3. Κάντε κλικ στο OK. Εάν εισαγάγατε ένα όνομα για τη νέα βάση δεδομένων, τότε στο παράθυρο διαλόγου που εμφανίζεται, κάντε κλικ στο Ναι για να δημιουργήσετε αυτήν τη βάση δεδομένων.

Μετά τη σύνδεση στον διακομιστή, θα εμφανιστεί στην οθόνη το κύριο παράθυρο του MySQL Query Browser (Εικ. 1.32). Σε αυτό μπορείτε να εκτελέσετε οποιεσδήποτε λειτουργίες με τη βάση δεδομένων: προσθήκη πινάκων, εισαγωγή και αναζήτηση δεδομένων, εγγραφή νέων χρηστών κ.λπ.

Ρύζι. 1.32.Κύριο παράθυρο του προγράμματος περιήγησης MySQL Query


Προσοχή!

Η προεπιλεγμένη γραμματοσειρά που χρησιμοποιείται στο MySQL Query Browser για την εμφάνιση ερωτημάτων SQL δεν υποστηρίζει ρωσικά γράμματα. Για να εισαγάγετε ρωσικά γράμματα σε κείμενα ερωτημάτων, πρέπει να επιλέξετε διαφορετική γραμματοσειρά (για παράδειγμα, Arial ή Book Antiqua). Για να το κάνετε αυτό, ανοίξτε στο κύριο παράθυρο του προγράμματος περιήγησης ερωτημάτων MySQL Μενού εργαλείων(Εργαλεία) και επιλέξτε Επιλογές. Στο παράθυρο Επιλογές που εμφανίζεται, στο αριστερό παράθυρο, κάντε κλικ στο Γενικές Επιλογές ( Κοινές παράμετροι) και στη δεξιά περιοχή στο πεδίο Γραμματοσειρά κώδικα, επιλέξτε από τη λίστα επιθυμητή γραμματοσειρά. Κάντε κλικ στο κουμπί Εφαρμογή.

Για να αποσυνδεθείτε από τον διακομιστή, απλώς κλείστε το παράθυρο του προγράμματος περιήγησης ερωτημάτων MySQL.

Αυτό ολοκληρώνει την εισαγωγή μας στη MySQL και προχωράμε στην περίληψη των αποτελεσμάτων.

1.6. Περίληψη

Αυτό το κεφάλαιο καλύπτει MySQL DBMSκαι βοηθητικά προγράμματα γραφικών MySQL Administrator και MySQL Query Browser. Έχετε κατακτήσει μια αρκετά περίπλοκη διαδικασία για την εγκατάσταση και τη ρύθμιση παραμέτρων ενός διακομιστή MySQL, μάθετε πώς να διαχειρίζεστε τον διακομιστή και να συνδέεστε σε αυτόν. Μάθατε επίσης πώς λειτουργεί μια σχεσιακή βάση δεδομένων και πώς να σχεδιάζετε τη δική σας βάση δεδομένων.

Έτσι, το επόμενο βήμα είναι να δημιουργήσετε μια βάση δεδομένων στη MySQL. Το δεύτερο κεφάλαιο είναι αφιερωμένο σε αυτό. Θα σας δείξει πώς να δημιουργείτε πίνακες, να εισάγετε πληροφορίες σε αυτούς και να βρίσκετε τις πληροφορίες που χρειάζεστε στη βάση δεδομένων.

Κεφάλαιο 2
Διαχείριση βάσεων δεδομένων με SQL

Σε αυτό το κεφάλαιο, θα μάθετε πώς να εργάζεστε με δεδομένα στο MySQL DBMS, πώς να προσδιορίζετε τη δομή τους και πώς να προσθέτετε, να αλλάζετε και να διαγράφετε δεδομένα. Αυτές οι λειτουργίες εκτελούνται από την SQL, μια καθολική δομημένη γλώσσα ερωτημάτων τυπικά μέσαπρόσβαση σε σχεσιακές βάσεις δεδομένωνδεδομένα.

Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από τις πολλές εφαρμογές πελάτη διακομιστή MySQL για να εκτελέσετε εντολές SQL. Αυτό το κεφάλαιο δεν καλύπτει εφαρμογές τρίτους προγραμματιστές. Θα γνωρίσετε μόνο εφαρμογές που δημιουργούνται από το MySQL AB: το βοηθητικό πρόγραμμα γραμμής εντολών mysql και το βοηθητικό πρόγραμμα γραφικών MySQL Query Browser.

Όλες οι λειτουργίες δεδομένων είναι διαθέσιμες και στα δύο βοηθητικά προγράμματα. Το MySQL Query Browser είναι βολικό για εργασία με τη βάση δεδομένων: τα στοιχεία του παρουσιάζονται ξεκάθαρα, μπορείτε να επεξεργαστείτε απευθείας δεδομένα (χωρίς να χρησιμοποιήσετε τον τελεστή SQL UPDATE), να εργαστείτε με ερωτήματα, για παράδειγμα, να τα δημιουργήσετε χρησιμοποιώντας ένα ειδικό εργαλείο (και δεν χρειάζεστε για να εισαγάγετε τα ονόματα των πινάκων και των στηλών με μη αυτόματο τρόπο ), αποθηκεύστε ερωτήματα σε ένα αρχείο, εξάγετε αποτελέσματα ερωτημάτων και πολλά άλλα. Μπορείτε να μάθετε για όλες τις δυνατότητες του MySQL Query Browser ανατρέχοντας στην τεκμηρίωση στα ρωσικά, την οποία μπορείτε να βρείτε στη διεύθυνση http://dev.mysql.com/doc/query-browser/ru/index.html.

Πρώτα θα μάθετε πώς να εκτελείτε εντολές SQL στο MySQL Query Browser και στη γραμμή εντολών και, στη συνέχεια, θα καλύψουμε μόνο τη σύνταξη των εντολών SQL.

2.1. Εκτέλεση εντολών SQL

Πριν εκτελέσετε εντολές SQL, πρέπει να συνδεθείτε σε έναν διακομιστή MySQL που λειτουργεί (το πώς να το κάνετε αυτό περιγράφηκε στο Κεφάλαιο 1). Σε αυτήν την ενότητα, θα μάθετε πώς να δημιουργείτε εντολές SQL και να τις υποβάλλετε στον διακομιστή για εκτέλεση.

Εάν χρησιμοποιείτε τη γραμμή εντολών, τότε για να εκτελέσετε την εντολή SQL, εισαγάγετε το κείμενό της στο παράθυρο της γραμμής εντολών και πατήστε το πλήκτρο Enter για να στείλετε την εντολή στον διακομιστή. Για να αποφύγετε προβλήματα με την κωδικοποίηση δεδομένων ρωσικής γλώσσας, πριν ξεκινήσετε να εργάζεστε με τα δεδομένα, εκτελέστε την εντολή

ΣΕΤ ΟΝΟΜΑΤΩΝ cp866;

Μπορείτε να δείτε το αποτέλεσμα της εκτέλεσης αυτής της εντολής στο Σχ. 2.1.

Ρύζι. 2.1.Ρύθμιση της κωδικοποίησης στη γραμμή εντολών


Η εντολή SET NAMES πρέπει να επαναληφθεί όταν Ολοισύνδεση στον διακομιστή χρησιμοποιώντας τη γραμμή εντολών. Αυτή η εντολή λέει στον διακομιστή ότι αυτή η εφαρμογή-πελάτης (βοηθητικό πρόγραμμα mysql) χρησιμοποιεί κωδικοποίηση CP-866 (αυτή είναι η κωδικοποίηση γραμμής εντολών των Windows) και ο διακομιστής θα εκτελέσει αυτόματα τη μετατροπή κωδικοποίησης κατά την επικοινωνία με την εφαρμογή πελάτη.

Αφού αλλάξετε την κωδικοποίηση, μπορείτε να εισαγάγετε οποιεσδήποτε εντολές SQL στη γραμμή εντολών. Ένα μήνυμα σχετικά με το αποτέλεσμα της εντολής, καθώς και τα ζητούμενα δεδομένα, εμφανίζεται απευθείας στο παράθυρο της γραμμής εντολών (Εικ. 2.2).

Ρύζι. 2.2.Εκτέλεση ερωτήματος SQL στη γραμμή εντολών


Το βοηθητικό πρόγραμμα mysql σας επιτρέπει να εισάγετε εντολές πολλαπλών γραμμών (στο Σχ. 2.3 η εντολή SHOW DATABASES καταχωρήθηκε με αυτόν τον τρόπο). Εάν δεν έχει εισαχθεί ερωτηματικό - ένα σημάδι του τέλους της εντολής, τότε όταν πατάτε Εισαγάγετε κλειδιάΤο βοηθητικό πρόγραμμα δεν στέλνει την εντολή στον διακομιστή, αλλά σας ζητά να συνεχίσετε να εισάγετε την εντολή. Εάν θέλετε να ακυρώσετε μια εντολή πολλών γραμμών, πληκτρολογήστε \c (Εικόνα 2.3).

Ρύζι. 2.3.Εντολή πολλαπλών γραμμών


Εάν χρησιμοποιείτε το πρόγραμμα περιήγησης MySQL Query, τότε δεν χρειάζεται να ορίσετε την κωδικοποίηση - αυτό το πρόγραμμα λειτουργεί σε κωδικοποίηση UTF-8 και το αναφέρει αυτό στον διακομιστή. Ωστόσο, στο MySQL Query Browser υπάρχει πρόβλημα με την εμφάνιση των ρωσικών γραμμάτων στην περιοχή ερωτήματος (η περιοχή όπου εισάγεται το κείμενο των εντολών SQL, Εικ. 2.4). Για να λύσετε αυτό το πρόβλημα, πρέπει να αλλάξετε τη γραμματοσειρά που χρησιμοποιείται στην περιοχή ερωτήματος (το πώς να το κάνετε αυτό περιγράφηκε στο τέλος του προηγούμενου κεφαλαίου). Χρειάζεται να αλλάξετε τη γραμματοσειρά μόνο μία φορά.

Ρύζι. 2.4.Εκτέλεση ερωτήματος SQL στο πρόγραμμα περιήγησης ερωτημάτων MySQL


Στην περιοχή ερωτήματος, μπορείτε να εισαγάγετε πολλές εντολές SQL ταυτόχρονα, όπως φαίνεται στην Εικόνα. 2.4. Η τρέχουσα εντολή (ο κέρσορας βρίσκεται σε μία από τις γραμμές της) επισημαίνεται με λευκό φόντο, οι υπόλοιπες εντολές εμφανίζονται σε ανοιχτό γκρι φόντο. Για να εκτελέσετε την τρέχουσα εντολή, μπορείτε να κάνετε κλικ είτε στο κουμπί Εκτέλεση που βρίσκεται στα δεξιά της περιοχής προτροπής είτε στο συνδυασμό πλήκτρων Ctrl+Enter. Μετά την εκτέλεση μιας εντολής, τα ζητούμενα δεδομένα εμφανίζονται στην περιοχή αποτελεσμάτων και ένα μήνυμα σχετικά με το αποτέλεσμα της εντολής εμφανίζεται στο κάτω μέρος αυτής της περιοχής.

Τώρα που μάθατε πώς να εισάγετε εντολές SQL, ας αρχίσουμε να διαχειριζόμαστε δεδομένα χρησιμοποιώντας αυτές τις εντολές. Πρώτα απ 'όλα, θα εξετάσουμε τις εντολές που έχουν σχεδιαστεί για να λειτουργούν με τη βάση δεδομένων ως σύνολο.

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

Σε αυτήν την ενότητα, θα μάθετε πώς να δημιουργείτε και να διαγράφετε μια βάση δεδομένων, να αλλάζετε την προεπιλεγμένη κωδικοποίηση για αυτήν, να επιλέξετε την τρέχουσα βάση δεδομένων και επίσης να προβάλλετε μια λίστα με όλες τις βάσεις δεδομένων σε έναν δεδομένο διακομιστή MySQL.

Για να δημιουργήσετε μια βάση δεδομένων, εκτελέστε την εντολή

ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ<Имя базы данных>;

Για παράδειγμα, η εντολή

ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ Τμήμα Πωλήσεων;

δημιουργεί μια βάση δεδομένων με το όνομα SalesDept.

Εάν για κάποιο λόγο χρειαστεί να ορίσετε μια προεπιλεγμένη κωδικοποίηση για τη νέα βάση δεδομένων που είναι διαφορετική από την κωδικοποίηση που καθορίζεται όταν Ρύθμιση MySQL, στη συνέχεια, κατά τη δημιουργία μιας βάσης δεδομένων, μπορείτε να καθορίσετε τον επιθυμητό κανόνα κωδικοποίησης (σύνολο χαρακτήρων) ή/και σύγκρισης (ταξινόμησης) για τιμές χαρακτήρων:

ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ<Имя базы данных>

ΣΕΤ ΧΑΡΑΚΤΗΡΑ<Имя кодировки>

ΑΝΤΙΠΑΡΑΒΑΛΛΩ<Имя правила сравнения>;

Για παράδειγμα, εάν είστε μέσα νέα βάσηεισάγετε δεδομένα που βρίσκονται στην κωδικοποίηση CP-1251, τότε θα υποδείξουμε αυτήν την κωδικοποίηση κατά τη δημιουργία της βάσης δεδομένων με αυτόν τον τρόπο:

ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ Τμήμα Πωλήσεων

ΣΕΤ ΧΑΡΑΚΤΗΡΩΝ cp1251 ΣΥΓΚΡΟΤΗΜΑ cp1251_general_ci;

Συμβουλή

Για να προβάλετε τη λίστα των κωδικοποιήσεων που χρησιμοποιούνται στη MySQL, εκτελέστε την εντολή SHOW CHARACTER SET. και για να δείτε μια λίστα κανόνων για τη σύγκριση συμβολικών τιμών, χρησιμοποιήστε την εντολή SHOW COLLATION. Σε αυτή την περίπτωση μπορείτε να χρησιμοποιήσετε ΣΑΝ χειριστή: για παράδειγμα, για να δείτε όλους τους κανόνες σύγκρισης για την κωδικοποίηση CP-1251, εκτελέστε την εντολή SHOW COLLATION LIKE %1251%;. Η κατάληξη "_ci" (χωρίς διάκριση πεζών-κεφαλαίων) στο όνομα των κανόνων σύγκρισης σημαίνει ότι η πεζή και η κεφαλαία των χαρακτήρων δεν λαμβάνεται υπόψη κατά τη σύγκριση και την ταξινόμηση, η κατάληξη "_cs" (με διάκριση πεζών-κεφαλαίων) - λαμβάνεται υπόψη η πεζή και η πεζή “_bin” (δυαδικό) – η σύγκριση και η ταξινόμηση εκτελούνται από αριθμητικοί κωδικοίχαρακτήρες. Για τους περισσότερους κανόνες σύγκρισης, μπορείτε να βρείτε μια περιγραφή (δηλαδή τη σειρά των χαρακτήρων σύμφωνα με την οποία θα ταξινομηθούν τιμές κειμένου) στην ιστοσελίδα http://www.collation-charts.org/mysql60/.

Η κωδικοποίηση που καθορίστηκε κατά τη δημιουργία της βάσης δεδομένων θα χρησιμοποιηθεί από προεπιλογή για πίνακες σε αυτήν τη βάση δεδομένων, ωστόσο, μπορείτε να καθορίσετε διαφορετική κωδικοποίηση.

Μπορείτε να αλλάξετε τον κανόνα κωδικοποίησης ή/και σύγκρισης για τιμές χαρακτήρων για τη βάση δεδομένων χρησιμοποιώντας την εντολή

ΑΛΛΑΓΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ<Имя базы данных>

ΣΕΤ ΧΑΡΑΚΤΗΡΑ<Имя кодировки>

ΑΝΤΙΠΑΡΑΒΑΛΛΩ<Имя правила сравнения>;

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

Για να αφαιρέσετε μια περιττή ή λανθασμένα δημιουργημένη βάση δεδομένων, εκτελέστε την εντολή

ΑΠΟΣΤΟΛΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ<Имя базы данных>;

Προσοχή!

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

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

ΧΡΗΣΗ<Имя базы данных>;

Για παράδειγμα,:

USE SalesDept;

Στη συνέχεια, μπορείτε να εκτελέσετε λειτουργίες σε πίνακες σε αυτήν τη βάση δεδομένων χωρίς να τοποθετήσετε το όνομα του πίνακα με το όνομα της βάσης δεδομένων. Για παράδειγμα, για να αποκτήσετε πρόσβαση στον πίνακα Customers στη βάση δεδομένων SalesDept, μπορείτε απλώς να γράψετε Customers αντί για SalesDept.Customers. Καθορίζοντας την τρέχουσα βάση δεδομένων, μπορείτε να αποκτήσετε πρόσβαση σε πίνακες σε άλλες βάσεις δεδομένων, αλλά πρέπει να χρησιμοποιήσετε το όνομα της βάσης δεδομένων ως πρόθεμα. Η επιλογή της τρέχουσας βάσης δεδομένων αποθηκεύεται μέχρι να αποσυνδεθείτε από τον διακομιστή ή μέχρι να επιλέξετε άλλη τρέχουσα βάση δεδομένων.

Για να δείτε μια λίστα με όλες τις βάσεις δεδομένων που υπάρχουν σε έναν δεδομένο διακομιστή MySQL, εκτελέστε την εντολή

ΕΜΦΑΝΙΣΗ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ.

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

Το INFORMATION_SCHEMA είναι μια βάση δεδομένων πληροφοριών από την οποία μπορείτε να λάβετε πληροφορίες για όλες τις άλλες βάσεις δεδομένων, τη δομή δεδομένων σε αυτές και όλα τα είδη αντικειμένων: πίνακες, στήλες, πρωτεύοντα και ξένα κλειδιά, δικαιώματα πρόσβασης, αποθηκευμένες διαδικασίες, κωδικοποιήσεις κ.λπ. Αυτή η βάση δεδομένων είναι διαθέσιμη Είναι μόνο για ανάγνωση και εικονικό, που σημαίνει ότι δεν αποθηκεύεται ως κατάλογος στο δίσκο: όλες οι πληροφορίες που ζητούνται από αυτήν τη βάση δεδομένων παρέχονται δυναμικά από τον διακομιστή MySQL.

Η Mysql είναι μια βοηθητική βάση δεδομένων που χρησιμοποιείται από τον διακομιστή MySQL. Αποθηκεύει πληροφορίες σχετικά με εγγεγραμμένους χρήστες και τα δικαιώματα πρόσβασής τους, πηγή πληροφοριώνκαι τα λοιπά.

Το Test είναι μια κενή βάση δεδομένων που μπορεί να χρησιμοποιηθεί για να δοκιμάσει πράγματα ή απλά να διαγραφεί.

Έτσι, έχετε κατακτήσει τις βασικές λειτουργίες που εκτελούνται με τη βάση δεδομένων στο σύνολό της: τις εντολές CREATE DATABASE (δημιουργία), ALTER DATABASE (αλλαγή), DROP DATABASE (διαγραφή), USE (επιλέξτε την τρέχουσα βάση δεδομένων) και SHOW DATBASE (προβολή λίστας των βάσεων δεδομένων). Στη συνέχεια θα δούμε τις λειτουργίες του πίνακα. Σε αυτήν την περίπτωση, θα υποθέσουμε ότι έχετε επιλέξει μια βάση δεδομένων ως τρέχουσα και εργάζεστε με τους πίνακες της.

2.3. Εργασία με τραπέζια

Σε αυτήν την ενότητα, θα μάθετε πώς να δημιουργείτε, να τροποποιείτε και να διαγράφετε έναν πίνακα, πώς να βλέπετε πληροφορίες πίνακα και μια λίστα με όλους τους πίνακες στην τρέχουσα βάση δεδομένων. Ας ξεκινήσουμε με την πιο δύσκολη εντολή - τη δημιουργία ενός πίνακα.

Δημιουργία πίνακα

Για να δημιουργήσετε έναν πίνακα, εκτελέστε την εντολή που εμφανίζεται στην Λίστα 2.1.

Λίστα 2.1.Εντολή δημιουργίας πίνακα

ΔΗΜΙΟΥΡΓΙΑ ΤΡΑΠΕΖΙΟΥ<Имя таблицы>

(<Имя столбца 1> <Тип столбца 1> [<Свойства столбца 1>],

<Имя столбца 2> <Тип столбца 2> [<Свойства столбца 2>],

[<Информация о ключевых столбцах и индексах>])

[<Опциональные свойства таблицы>];


Όπως μπορείτε να δείτε, η εντολή δημιουργίας πίνακα μπορεί να περιλαμβάνει πολλές παραμέτρους, αλλά πολλές από αυτές είναι προαιρετικές (στη Λίστα 2.1, τέτοιες παράμετροι περικλείονται στο αγκύλες). Στην πραγματικότητα, για να δημιουργήσετε έναν πίνακα, πρέπει απλώς να καθορίσετε το όνομά του και τα ονόματα και τους τύπους όλων των στηλών. χρησιμοποιούνται άλλες παράμετροι εάν είναι απαραίτητο.

Ας δούμε πρώτα μερικά παραδείγματα που θα σας βοηθήσουν να κατακτήσετε την εντολή CREATE TABLE και αμέσως, χωρίς να μελετήσετε τις πολλές παραμέτρους της, ξεκινήστε να δημιουργείτε τους δικούς σας (απλούς στη δομή) πίνακες.

Ας υποθέσουμε ότι χτίζουμε τη βάση δεδομένων που σχεδιάσαμε στο Κεφάλαιο 1. Χρησιμοποιώντας τις εντολές από την προηγούμενη ενότητα, δημιουργήσαμε μια κενή βάση δεδομένων SalesDept και την επιλέξαμε ως τρέχουσα. Τώρα ας δημιουργήσουμε τρεις πίνακες: Πελάτες, Προϊόντα και Παραγγελίες. Η λίστα 2.2 δείχνει την εντολή για τη δημιουργία του πίνακα Πελάτες.

Λίστα 2.2.Εντολή για τη δημιουργία του πίνακα Πελάτες

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ Πελάτες

(αναγνωριστικό ΣΕΙΡΑ,

όνομα VARCHAR(100),

τηλέφωνο VARCHAR(20),

διεύθυνση VARCHAR(150),

βαθμολογία INT,

ΚΥΡΙΟ ΚΛΕΙΔΙ (αναγνωριστικό))


Αυτή η εντολή χρησιμοποίησε παραμέτρους: πρώτον, το όνομα του πίνακα και, δεύτερον, τα ονόματα και τους τύπους των στηλών από τις οποίες θα αποτελείται ο πίνακας (βλ. επίσης Πίνακα 1.1 στο Κεφάλαιο 1).

Αναγνωριστικό – αναγνωριστικό εγγραφής. Εκχωρήσατε τον τύπο SERIAL σε αυτήν τη στήλη, ο οποίος σας επιτρέπει να αριθμήσετε αυτόματα τις σειρές του πίνακα. Λέξη-κλειδί SERIAL σημαίνει BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Αυτό σημαίνει ότι μεγάλοι ακέραιοι (BIGINT) θετικοί (UNSIGNED) αριθμοί μπορούν να εισαχθούν στη στήλη, ενώ η απουσία απροσδιόριστων και διπλών τιμών (NOT NULL UNIQUE) ελέγχεται αυτόματα. Εάν, κατά την προσθήκη μιας γραμμής σε έναν πίνακα, δεν καθορίσετε μια τιμή για αυτήν τη στήλη, τότε το πρόγραμμα MySQL θα εισαγάγει τον επόμενο αριθμό σειράς (AUTO_INCREMENT) σε αυτήν τη στήλη.

Σημείωση

Το NULL είναι μια σταθερά που δείχνει την απουσία τιμής. Εάν η στήλη περιέχει τιμή NULL, τότε θεωρείται ότι δεν υπάρχει ορισμένη αξίααυτή η στήλη δεν έχει οριστεί (γι' αυτό ονομάζουμε και NULL απροσδιόριστη τιμή). Το NULL δεν πρέπει να συγχέεται με κενή γραμμή(“”) ή τον αριθμό 0. Οι τιμές NULL αντιμετωπίζονται με ειδικό τρόπο: οι περισσότερες συναρτήσεις και τελεστές επιστρέφουν NULL εάν ένα από τα ορίσματα είναι NULL. Για παράδειγμα, το αποτέλεσμα σύγκρισης 1 = 1 είναι μια αληθινή τιμή (TRUE) και το αποτέλεσμα σύγκρισης NULL = NULL είναι μια απροσδιόριστη τιμή (NULL), δηλαδή δύο απροσδιόριστες τιμές δεν θεωρούνται ίσες.

Nam είναι το όνομα του πελάτη, τηλέφωνο είναι ο αριθμός τηλεφώνου και διεύθυνση είναι η διεύθυνση. Εκχωρήσατε τον τύπο VARCHAR σε αυτές τις στήλες επειδή θα περιέχουν τιμές χαρακτήρων. Ο μέγιστος επιτρεπόμενος αριθμός χαρακτήρων στην τιμή της στήλης υποδεικνύεται σε παρένθεση.

Τρίτον, προσδιορίσατε ότι η στήλη id θα είναι το πρωτεύον κλειδί του πίνακα, συμπεριλαμβάνοντας μια ρήτρα ΠΡΩΤΙΚΟ ΚΛΕΙΔΙ (id) στην εντολή δημιουργίας πίνακα.

Τέταρτον, έχετε καθορίσει δύο προαιρετικές παραμέτρους για αυτόν τον πίνακα. Η παράμετρος ENGINE καθορίζει τον τύπο του πίνακα. Εκχωρήσατε στον πίνακα "Πελάτες" τον τύπο InnoDB, καθώς μόνο αυτός ο τύπος διασφαλίζει τη διατήρηση της ακεραιότητας των σχέσεων μεταξύ των πινάκων (περισσότερες λεπτομέρειες σχετικά με τους τύπους πινάκων θα αναλυθούν στην ενότητα "Προαιρετικές ιδιότητες πίνακα"). Η παράμετρος CHARACTER SET καθορίζει την προεπιλεγμένη κωδικοποίηση για τα δεδομένα του πίνακα. Επειδή δεν έχετε ορίσει την κωδικοποίηση ξεχωριστά για τις στήλες ονόματος, τηλεφώνου και διεύθυνσης, τα δεδομένα σε αυτές τις στήλες θα αποθηκευτούν στο UTF-8, που είναι η προεπιλεγμένη κωδικοποίηση για τον πίνακα "Πελάτες".

Το επόμενο παράδειγμα που θα δούμε είναι η εντολή δημιουργίας πίνακα Προϊόντων που εμφανίζεται στη Λίστα 2.3.

Λίστα 2.3.Εντολή δημιουργίας πίνακα προϊόντων

ΔΗΜΙΟΥΡΓΙΑ ΤΡΑΠΕΖΙΩΝ Προϊόντων

(αναγνωριστικό ΣΕΙΡΑ,

περιγραφή VARCHAR(100),

λεπτομέρειες ΚΕΙΜΕΝΟ,

τιμή ΔΕΚΑΔΙΚΟ(8,2),

ΚΥΡΙΟ ΚΛΕΙΔΙ (αναγνωριστικό))

ΣΕΤ ΧΑΡΑΚΤΗΡΩΝ ΚΙΝΗΤΗΡΑ InnoDB utf8;


Αυτή η εντολή μοιάζει πολύ με την εντολή για τη δημιουργία του πίνακα Πελάτες και διαφέρει μόνο στο όνομα του πίνακα και στο σύνολο των στηλών. Οι στήλες αναγνωριστικό (αριθμός προϊόντος) και περιγραφή (όνομα προϊόντος) του πίνακα Προϊόντα έχουν τύπους που είναι ήδη γνωστοί σε εμάς. Η στήλη λεπτομερειών είναι τύπου TEXT. Αυτός ο τύπος είναι βολικός στη χρήση αντί του τύπου VARCHAR εάν η στήλη περιέχει μεγάλες τιμές: το συνολικό μήκος των τιμών όλων των στηλών VARCHAR περιορίζεται στα 65.535 byte για κάθε πίνακα και δεν υπάρχει όριο στο συνολικό μήκος του τις στήλες TEXT. Το μειονέκτημα του τύπου TEXT είναι η αδυναμία συμπερίληψης τέτοιων στηλών στο ξένο κλειδί ενός πίνακα, δηλαδή η δημιουργία σχέσης μεταξύ πινάκων με βάση αυτές τις στήλες.

Η στήλη τιμής είναι τύπου ΔΕΚΑΔΙΑΚΗΣ, σχεδιασμένη να αποθηκεύει χρηματικά ποσά και άλλες αξίες για τις οποίες είναι σημαντικό να αποφεύγονται σφάλματα στρογγυλοποίησης. Έχουμε υποδείξει δύο αριθμούς σε παρενθέσεις: ο πρώτος από αυτούς καθορίζει μέγιστο ποσόψηφία στην τιμή της στήλης, το δεύτερο είναι ο μέγιστος αριθμός ψηφίων μετά το δεκαδικό διαχωριστικό. Με άλλα λόγια, η τιμή ενός προϊόντος μπορεί να περιέχει έως και έξι ψηφία στο ακέραιο μέρος (6 = 8–2) και έως δύο ψηφία στο κλασματικό μέρος.

Και τέλος, το τελευταίο παράδειγμα είναι η εντολή για τη δημιουργία του πίνακα Παραγγελίες, που εμφανίζεται στη Λίστα 2.4.

Λίστα 2.4.Εντολή δημιουργίας πίνακα παραγγελιών

ΔΗΜΙΟΥΡΓΙΑ ΠΑΡΑΓΓΕΛΙΩΝ ΤΡΑΠΕΖΙΩΝ

(αναγνωριστικό ΣΕΙΡΑ,

ημερομηνία DATE,

product_id ΜΕΓΑΛΟ ΜΗ ΥΠΟΓΡΑΦΗΜΕΝΟ ΟΧΙ NULL,

ποσοτητα ΑΝΥΠΟΓΡΑΦΗ,

ποσό ΔΕΚΑΔΙΚΟ(10,2),

customer_id ΜΕΓΑΛΗ ΜΗ ΥΠΟΓΡΑΦΗ,

ΚΥΡΙΟ ΚΛΕΙΔΙ (αναγνωριστικό),

ΞΕΝΟ ΚΛΕΙΔΙ (αναγνωριστικό προϊόντος) ΑΝΑΦΟΡΕΣ Προϊόντα (αναγνωριστικό)

ΣΧΕΤΙΚΑ ΜΕ ΤΗ ΔΙΑΓΡΑΦΗ ΠΕΡΙΟΡΙΣΜΟΥ ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ CASCADE,

ΞΕΝΟ ΚΛΕΙΔΙ (customer_id) ΑΝΑΦΟΡΕΣ Πελάτες (id)

ΣΧΕΤΙΚΑ ΜΕ ΤΗ ΔΙΑΓΡΑΦΗ ΠΕΡΙΟΡΙΣΜΟΥ ΣΤΗΝ ΕΝΗΜΕΡΩΣΗ CASCADE)

ΣΕΤ ΧΑΡΑΚΤΗΡΩΝ ΚΙΝΗΤΗΡΑ InnoDB utf8;


Ένα ιδιαίτερο χαρακτηριστικό του πίνακα Orders είναι η παρουσία ξένων κλειδιών: η στήλη product_id περιέχει αριθμούς προϊόντων από τον πίνακα Products και η στήλη customer_id περιέχει αριθμούς πελατών από τον πίνακα Customers (βλ. επίσης Πίνακα 1.2 στο Κεφάλαιο 1). Επειδή οι αριθμοί προϊόντων και πελατών είναι μεγάλοι θετικοί ακέραιοι αριθμοί, εκχωρήσαμε τις στήλες product_id και customer_id για να πληκτρολογήσετε BIGINT UNISIGNED.

Επιπλέον, προκειμένου να διασφαλιστεί η αυτόματη διατήρηση της ακεραιότητας των συνδέσεων (μιλήσαμε για την ακεραιότητα στο Κεφάλαιο 1), αναφέραμε Το πρόγραμμα MySQLσε ποιο πρωτεύον κλειδί αντιστοιχεί κάθε ξένο κλειδί. Έτσι, η κατασκευή ΞΕΝΟ ΚΛΕΙΔΙ (customer_id) REFERENCES Customers (id) σημαίνει ότι η στήλη customer_id μπορεί να περιέχει μόνο τιμές από τη στήλη id του πίνακα Customers και μηδενικές τιμές, ενώ άλλες τιμές απαγορεύονται. Για τη στήλη product_id, ορίσαμε έναν παρόμοιο περιορισμό και εκχωρήσαμε την ιδιότητα NOT NULL σε αυτήν τη στήλη για να αποτρέψουμε την καταχώρηση παραγγελιών με ένα απροσδιόριστο προϊόν. Επιπλέον, υποδείξαμε τους κανόνες για τη διατήρηση της ακεραιότητας για κάθε μία από τις συνδέσεις (τους συζητήσαμε επίσης στο Κεφάλαιο 1). Ο κανόνας ON DELETE RESTRICT σημαίνει ότι δεν μπορείτε να διαγράψετε μια εγγραφή πελάτη εάν αυτός ο πελάτης έχει καταχωρημένη παραγγελία και δεν μπορείτε να διαγράψετε μια εγγραφή προϊόντος εάν αυτό το προϊόν παραγγέλθηκε από κάποιον. Ο κανόνας ON UPDATE CASCADE σημαίνει ότι όταν αλλάζει ένας αριθμός πελάτη στον πίνακα Πελάτες ή ένας αριθμός στοιχείου στον πίνακα Προϊόντα, οι αντίστοιχες αλλαγές γίνονται στον πίνακα Παραγγελίες.

Σημείωση

Λάβετε υπόψη ότι δημιουργήσαμε τον πίνακα Παραγγελίες στο έσχατη λύσηεπειδή τα κύρια κλειδιά στους πίνακες Πελάτες και Προϊόντα πρέπει να δημιουργηθούν πριν από τα ξένα κλειδιά στον πίνακα Παραγγελίες που αναφέρονται σε αυτά. Ωστόσο, θα ήταν δυνατό να δημιουργήσουμε πίνακες χωρίς ξένα κλειδιά με οποιαδήποτε σειρά και στη συνέχεια να προσθέσουμε ξένα κλειδιά χρησιμοποιώντας την εντολή ALTER TABLE, την οποία θα δούμε στην υποενότητα «Αλλαγή της δομής του πίνακα».

Στα παραδείγματά μας, εξετάσαμε μόνο μερικές από τις παραμέτρους της εντολής δημιουργίας πίνακα. Τώρα θα παραθέσουμε όλες τις κύριες παραμέτρους που μπορεί να σας φανούν χρήσιμες κατά τη δημιουργία πινάκων. Στην ενότητα «Τύποι δεδομένων στη MySQL» θα μιλήσουμε για τύπους στηλών, στην ενότητα «Ιδιότητες στήλης» θα μιλήσουμε για τη ρύθμιση στηλών κλειδιών και τέλος στην ενότητα «Στήλες και ευρετήρια κλειδιών» θα μιλήσουμε για προαιρετικές ιδιότητες πίνακα .

Τύποι δεδομένων στη MySQL

Όπως ήδη γνωρίζετε, όταν δημιουργείτε έναν πίνακα, πρέπει να καθορίσετε έναν τύπο δεδομένων για κάθε στήλη. Η MySQL παρέχει πολλούς τύπους δεδομένων για την αποθήκευση αριθμών, ημερομηνίες/ωρών και συμβολοσειρές χαρακτήρων(κείμενα). Επιπλέον, υπάρχουν τύποι δεδομένων για την αποθήκευση χωροαντικειμένων, οι οποίοι δεν θα συζητηθούν σε αυτό το βιβλίο.

Ας σκεφτούμε αριθμητικοί τύποιδεδομένα.

ΚΟΜΜΑΤΙ[(<Количествобитов>)].

Ένας αριθμός bit που περιέχει έναν καθορισμένο αριθμό bit. Εάν ο αριθμός των bit δεν έχει καθοριστεί, ο αριθμός αποτελείται από ένα bit.

Ένας ακέραιος αριθμός στην περιοχή από -128 έως 127, ή (αν έχει καθοριστεί η ιδιότητα ΜΗ ΥΠΟΓΡΑΦΗ) από 0 έως 255.

BOOL ή BOOLEAN.

Είναι συνώνυμα για τον τύπο δεδομένων TINYINT(1) (ο αριθμός στην παρένθεση είναι ο αριθμός των ψηφίων που θα εμφανιστούν, βλ. σημείωση παρακάτω). Σε αυτήν την περίπτωση, μια μη μηδενική τιμή θεωρείται αληθής (TRUE), μια μηδενική τιμή θεωρείται ψευδής (FALSE).

Ένας ακέραιος αριθμός στην περιοχή από -32.768 έως 32.767 ή (αν έχει καθοριστεί η ιδιότητα ΜΗ ΥΠΟΓΡΑΦΗ) από 0 έως 65.535.

Ένας ακέραιος αριθμός στο εύρος από -8.388.608 έως 8.388.607 ή (αν έχει καθοριστεί η ιδιότητα ΜΗ ΥΠΟΓΡΑΦΗ) από 0 έως 16.777.215.

INT ή ΑΚΕΡΑΙΟΣ.

Ένας ακέραιος αριθμός στην περιοχή από -2,147,483,648 έως 2,147,483,647 ή (αν έχει καθοριστεί η ιδιότητα ΜΗ ΥΠΟΓΡΑΦΗ) από 0 έως 4,294,967,295.

Ένας ακέραιος αριθμός στην περιοχή από -9,223,372,036,854,775,808 έως 9,223,372,036,854,775,807 ή (εάν έχει καθοριστεί η ιδιότητα ΜΗ ΥΠΟΓΡΑΦΗ) από 0 έως 18,446,747,615,075.

Συνώνυμη με την έκφραση BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (ένας μεγάλος ανυπόγραφος ακέραιος αριθμός που δέχεται αυτόματα αυξημένες μοναδικές τιμές. NULL τιμέςαπαγορευμένος). Χρησιμοποιείται για αυτόματη παραγωγή μοναδικές αξίεςστη στήλη πρωτεύων κλειδί. Θα βρείτε μια περιγραφή των ιδιοτήτων UNSIGNED και AUTO_INCREMENT σε αυτήν την υποενότητα και των ιδιοτήτων NOT NULL και UNIQUE στην ενότητα "Ιδιότητες στήλης".

Σημείωση

Για όλα ακέραιους τύπουςδεδομένα, εκτός από το BOOL (BOOLEAN) και το SERIAL, μπορείτε να καθορίσετε σε παρένθεση τον αριθμό των εμφανιζόμενων ψηφίων, ο οποίος χρησιμοποιείται σε συνδυασμό με την παράμετρο ZEROFILL: εάν ο αριθμός περιέχει λιγότερα ψηφία, τότε κατά την έξοδο συμπληρώνεται στα αριστερά με μηδενικά. Για παράδειγμα, εάν μια στήλη πίνακα ορίζεται ως INT(5) ZEROFILL, τότε οι τιμές "1234567" και "12345" εμφανίζονται ως έχουν και η τιμή "123" εμφανίζεται ως "00123". Για τον τύπο δεδομένων BIT, το μέγεθος του αριθμού, δηλαδή ο μέγιστος αριθμός των αποθηκευμένων bit, υποδεικνύεται σε παρένθεση.

Έτρεξα αυτή την εντολή:

/etc/init.d/mysql start

αλλά βλέπω αυτό το σφάλμα

ΣΦΑΛΜΑ 1045 (28000) Δεν επιτρέπεται η πρόσβαση για τον χρήστη....

Αφού δοκίμασα αυτήν την εντολή:

/etc/init.d/mysql start

Έβαλα τον κωδικό μου και ξαναβλέπω το ίδιο σφάλμα.

Επόμενη εντολή:

Αποτελέσματα:

ΣΦΑΛΜΑ 1049 (42000) Άγνωστη βάση δεδομένων "έναρξη".

Και όταν εκτελώ αυτήν την εντολή:

Εκκίνηση υπηρεσίας sudo mysql

Η επιτυχία του διακομιστή MySQL έχει ξεκινήσει. Δροσερός!

Τι έγινε λοιπόν με τις άλλες ομάδες; Γιατί οδηγούν σε σφάλμα;

Σχετικά με το "Πώς να ξεκινήσω/σταματήσω τον διακομιστή mysql;"

Οι δύο πρώτες εντολές δεν εκτελέστηκαν ως root, επομένως αυτή είναι αναμενόμενη συμπεριφορά. Πρέπει να είστε root για να σταματήσετε/εκκινήσετε το mysql.

Sudo /etc/init.d/mysql start

πρέπει να λειτουργεί. Πράγματι, για μένα είναι:

Kojan:~> sudo /etc/init.d/mysql κωδικός επανεκκίνησης για chris: Διακοπή διακομιστή βάσης δεδομένων MySQL: mysqld. Εκκίνηση διακομιστή βάσης δεδομένων MySQL: mysqld. Έλεγχος για κατεστραμμένους πίνακες που δεν έχουν κλείσει καθαρά και χρειάζονται αναβάθμιση..

Χρησιμοποίησα επανεκκίνηση αντί για εκτέλεση μιας και εκτελούσε ήδη, αλλά το αποτέλεσμα είναι το ίδιο. Είστε βέβαιοι ότι πληκτρολογήσατε σωστά τον κωδικό πρόσβασής σας; 🙂 Επεξεργαστήκατε καθόλου τη διαμόρφωση sudo ώστε να μην λειτουργεί;

Αυτό..

Sudo /etc/init.d/mysql - root -p start

Τα επιχειρήματα είναι λανθασμένα. το σενάριο init.d δέχεται μόνο έναρξη ή διακοπή ή επανεκκίνηση - μόνο μια λέξη που λέει τι πρέπει να κάνετε. Δεν μπορείτε να του δώσετε πολλά επιχειρήματα όπως προσπαθήσατε να κάνετε.

Ούτως ή άλλως, η σύντομη απάντηση είναι αυτή με την οποία πραγματικά πρέπει να εργαστείτε είναι ο προτεινόμενος τρόπος. Η υπηρεσία αντικαθιστά όλα τα σενάρια init.d με την πάροδο του χρόνου, επομένως θα πρέπει να συνηθίσετε να χρησιμοποιείτε την υπηρεσία . Η σελίδα στην οποία συνδέεστε είναι 3 ετών, επομένως πρέπει να ληφθεί με αλάτι :)

Βοηθά επίσης να ελέγξετε ξανά ότι το "mysql" είναι το σωστό όνομα υπηρεσίας. Στην περίπτωσή μου αυτό δεν ισχύει. Συνέχισα να λαμβάνω την ακόλουθη απάντηση: mysql: μη αναγνωρισμένη υπηρεσία κατά την εκκίνηση

Κατάσταση υπηρεσίας mysql

Στη συνέχεια έλεγξα το /etc/init.d και βρήκα ένα σενάριο που ονομάζεται mysqld το οποίο καθόριζε το όνομα της διαδικασίας: mysqld και prog = mysqld

Μετά το έκανα

Υπηρεσία κατάστασης υπηρεσίας mysqld υπηρεσία διακοπής υπηρεσίας mysqld start

και όλα δούλεψαν υπέροχα.

Για το Ubuntu 12.10 και μεταγενέστερα:

ΕΚΚΙΝΗΣΗ MYSQL:

Sudo start mysql

ΕΠΑΝΕΚΚΙΝΗΣΗ MYSQL:

Sudo επανεκκίνηση mysql # Η υπηρεσία πρέπει να εκτελείται

STOP MYSQL:

Sudo stop mysql # Η υπηρεσία πρέπει να εκτελείται

Στην πραγματικότητα, έλαβα ένα περίεργο σφάλμα όταν εγκατέστησα το mysql-workbench στον υπολογιστή μου Ubuntu. Μετά από αυτό προσπάθησα να ξεκινήσω την υπηρεσία mysql χρησιμοποιώντας την ακόλουθη εντολή:

Έναρξη υπηρεσίας mysql

Έτσι πήρα τη λύση ότι ο διακομιστής MySQL δεν ήταν εγκατεστημένος, οπότε τον εγκατέστησα και το πρόβλημά μου λύθηκε. Εντολή για εγκατάσταση διακομιστή mysql:

Sudo apt-get εγκατάσταση mysql-server

Μετά την επιτυχή εγκατάσταση, ξεκινήστε τον διακομιστή MySQL ως:

Έναρξη υπηρεσίας mysql

Ένα μικρό σενάριο για να καλύψει και τις δύο περιπτώσεις [διακομιστής σε λειτουργία/διακομιστής σε λειτουργία]:

#!/bin/bash υπηρεσία mysql επανεκκίνηση εάν [ "$?" != "0" ]; στη συνέχεια υπηρεσία mysql start fi

μετά Εγκαταστάσεις MySQLστο σύστημά σας απλώς κάντε αυτό:

$service mysql κατάσταση

εάν η υπηρεσία κάνει απλώς αυτό:

και να σταματήσω την υπηρεσία μου ότι:

Αρκετά έργα Διαδικτύου χρησιμοποιούν MySQL DBMS ως αποθήκευση βάσεων δεδομένων. Με όλα αυτά, υπάρχουν και άλλες επιλογές για να διαλέξετε, όπως: MS SQL, mSQL, PostrgreSQL, Oracle κ.λπ., αλλά σχεδόν κάθε hoster παρέχει υπηρεσίες που πιθανότατα περιλαμβάνουν τη δυνατότητα χρήσης βάσεων δεδομένων MySQL. Αυτή η δημοτικότητα θα μπορούσε να οφείλεται σε πολλούς καλούς λόγους, ένα από τα οποία είναι ότι έχει το προϊόν Άνοιξε πηγή , με άλλα λόγια Ανοιχτή πηγή , το οποίο μπορεί να αποκτήσει ο καθένας (υπάρχουν κάποιες κρατήσεις για εκδόσεις Windows). Υπάρχει επίσης η άποψη ότι ένας συνδυασμός PHP/MySQL ή Perl/MySQL μπορεί να δώσει μεγάλος δείκτης Ταχύτητα, που σε άλλες περιπτώσεις είναι πολύ πιο δύσκολο να επιτευχθεί. Επιπλέον, η PHP στην τυπική της έκδοση έχει ενσωματωμένη υποστήριξη για MySQL.

Για τη δημιουργία ερωτημάτων στον διακομιστή MySQL, όπως στα περισσότερα άλλα DBMS, χρησιμοποιείται η γλώσσα SQL. Η SQL είναι η κυρίαρχη γλώσσα για την εργασία με βάσεις δεδομένων, αλλά κάθε βάση δεδομένων μπορεί επίσης να έχει τις δικές της «διαλέκτους» Γλώσσα SQL, τα οποία είναι εγγενή σε έναν συγκεκριμένο τύπο DBMS.

Όπως σε κάθε βάση δεδομένων, υπάρχουν ορισμένα πρότυπα σύμφωνα με τα οποία ο διακομιστής βάσης δεδομένων λειτουργεί σωστά. Ένας από τους λόγους για την επιβράδυνση του συστήματος μπορεί να είναι ένα σύνθετο ερώτημα SQL που χρειάζεται πολύς καιρόςγια εκτέλεση. Βαρύς Ερωτήματα SQL δημιουργώ Βαρύ φορτίοστον διακομιστή MySQL, το οποίο γενικά επηρεάζει την απόδοση του συστήματος στο σύνολό του. Αυτό μπορεί μερικές φορές να είναι εξαιρετικά κρίσιμο σε έναν διακομιστή "μάχης", όταν η επιβράδυνση του συστήματος μπορεί να προκαλέσει μια δέσμη πρόσθετων προβλημάτων.

Τέτοια αιτήματα, κατά κανόνα, πρέπει να γίνονται, αλλά τι να κάνετε εάν πρέπει να αφαιρέσετε ένα αίτημα από την ουρά, το οποίο, λόγω της πολυπλοκότητάς του, έχει παγώσει.
Υπάρχει μια μέθοδος, που ονομάζεται ευρέως «αδέξια» λύση στο πρόβλημα, αυτή είναι η επανεκκίνηση του διακομιστή MySQL.

Υπάρχει ένας άλλος τρόπος, ο οποίος είναι συχνά πιο λογικός, αυτός είναι να «σκοτώσει» το προβληματικό Ερώτημα MySQL. Αυτό μπορεί να γίνει μέσω SSH ή με κάποιο βοηθητικό πρόγραμμα, για παράδειγμα, phpMyAdmin.

Κατάργηση ενός μεγάλου ερωτήματος MySQL μέσω SSH:

1. Συνδεθείτε στο διακομιστή μέσω SSH
2. Εκτελέστε την εντολή:

$ mysql –u ΧΡΗΣΤΗΣ –σελ

Αντί για USER καθορίζουμε τον χρήστη MySQL
3. Εισαγάγετε τον κωδικό πρόσβασης από λογαριασμόςΧΡΗΣΤΗΣ
4. Εκτελέστε την εντολή

Εμφάνιση λίστας διαδικασιών.

(μην ξεχάσετε να συμπεριλάβετε ένα ερωτηματικό στο τέλος)
5. Μάθετε το αναγνωριστικό του προβληματικού αιτήματος
6. Εκτελέστε την εντολή

Kill query 11223

Αντί για 11223, υποδείξτε το αναγνωριστικό του αιτήματος που πρέπει να καταργηθεί.
Το phpMyAdmin το κάνει ακόμα πιο εύκολο.

Κατάργηση μεγάλου ερωτήματος MySQL στο phpMyAdmin:

Εμφάνιση λίστας διαδικασιών

4. Εμφανίζεται μια λίστα αιτημάτων απαιτούμενο αίτημακάντε κλικ στο σύνδεσμο «Τέλος».



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: