Πώς να δημιουργήσετε βάση δεδομένων σε MySQL (Δημιουργώ MySQL πίνακες)

⚡ Έξυπνη Σύνοψη

Δημιουργία βάσης δεδομένων στο MySQL ακολουθεί δύο αποδεδειγμένες διαδρομές: την εκτέλεση μιας εντολής CREATE DATABASE ή τη δημιουργία φυσικών σχημάτων από ένα μοντέλο ER μέσω MySQL Προηγμένη μηχανική εργασίας σε πάγκο εργασίας. Και οι δύο προσεγγίσεις παράγουν πανομοιότυπους, έτοιμους για παραγωγή πίνακες.

  • 🗄️ Δημιουργία βάσης δεδομένων: Εκτελέστε τις ταινίες CREATE DATABASE ή CREATE SCHEMA, οι οποίες MySQL αντιμετωπίζεται ως συνώνυμο.
  • Ασφαλείς επαναλήψεις: Προσθέστε την συνάρτηση IF NOT EXISTS, ώστε ένα επαναλαμβανόμενο σενάριο να παρακάμπτει τη δημιουργία αντί να εμφανίζει σφάλμα διπλότυπου ονόματος.
  • 🌐 Σετ χαρακτήρα: Επιλέξτε utf8mb4 με utf8mb4_0900_ai_ci για πολύγλωσσα δεδομένα. Το latin1 με latin1_swedish_ci ταιριάζει σε παλαιότερα σχήματα μόνο στα Αγγλικά.
  • 🧱 Δημιουργία πίνακα: Η συνάρτηση CREATE TABLE ορίζει κάθε όνομα πεδίου, τύπο δεδομένων, ΠΡΩΤΕΥΟΝ ΚΛΕΙΔΙ και τη μηχανή αποθήκευσης, συνήθως InnoDB.
  • 🔢 Τύποι δεδομένων: Οι τύποι στηλών εμπίπτουν σε οικογένειες αριθμητικών, κειμένων και ημερομηνιών ή ώρας, καθώς και σε παραλλαγές ENUM, SET, BOOL και δυαδικές.
  • ⚙️ Προηγμένη Μηχανική: MySQL Το Workbench μετατρέπει ένα εγκεκριμένο μοντέλο ER σε εκτελέσιμα σενάρια SQL και τα δεσμεύει σε έναν ενεργό διακομιστή.

Βήματα για τη δημιουργία βάσης δεδομένων σε MySQL

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

1) Εκτελώντας ένα απλό ερώτημα SQL

2) Χρησιμοποιώντας την προοπτική μηχανική στο MySQL Πάγκος εργασίας

As Αρχάριος SQL, ας δούμε πρώτα τη μέθοδο ερωτήματος.

Πώς να δημιουργήσετε βάση δεδομένων σε MySQL

Εδώ είναι πώς να δημιουργήσετε μια βάση δεδομένων σε MySQL:

Η CREATE DATABASE είναι η εντολή SQL που χρησιμοποιείται για τη δημιουργία μιας βάσης δεδομένων MySQL.

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

CREATE DATABASE movies;

Σημείωση: Μπορείτε επίσης να χρησιμοποιήσετε την εντολή CREATE SCHEMA αντί για CREATE DATABASE.

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

ΑΝ ΔΕΝ ΥΠΑΡΧΕΙ

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

ΑΝ ΔΕΝ ΥΠΑΡΧΕΙ δίνει οδηγίες στον MySQL διακομιστή για να ελέγξει για μια βάση δεδομένων με το ίδιο όνομα πριν τη δημιουργήσει. Η βάση δεδομένων δημιουργείται μόνο εάν το όνομα είναι ελεύθερο. Χωρίς αυτήν την ρήτρα, MySQL κάνει λάθος.

CREATE DATABASE IF NOT EXISTS movies;

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

Συλλογή και σύνολο χαρακτήρων

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

Η ταξινόμηση που επιλέγετε εξαρτάται από το σύνολο χαρακτήρων. Για παράδειγμα, το σύνολο χαρακτήρων latin1 χρησιμοποιεί το latin1_swedish_ci ταξινόμηση, η οποία είναι η σουηδική σειρά χωρίς διάκριση πεζών-κεφαλαίων.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci;

Για τοπικές γλώσσες όπως τα Αραβικά ή τα Κινέζικα, επιλέξτε το Unicode utf8mb4 σύνολο χαρακτήρων, το οποίο αποθηκεύει κάθε χαρακτήρα Unicode, συμπεριλαμβανομένων των emoji. Στο MySQL 8.0, utf8mb4 είναι το προεπιλεγμένο σύνολο χαρακτήρων και utf8mb4_0900_ai_ci η προεπιλεγμένη ταξινόμηση.

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

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

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

SHOW DATABASES;

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

Πώς να δημιουργήσετε πίνακα σε MySQL

Η εντολή CREATE TABLE χρησιμοποιείται για τη δημιουργία πινάκων σε μια βάση δεδομένων.

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

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

CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;

ΕΔΩ

  • Η εντολή "ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ" είναι υπεύθυνη για τη δημιουργία του πίνακα στη βάση δεδομένων.
  • Η επιλογή "[ΑΝ ΔΕΝ ΥΠΑΡΧΕΙ]" είναι προαιρετική και δημιουργεί τον πίνακα μόνο εάν δεν βρεθεί αντίστοιχο όνομα πίνακα.
  • Το "`fieldName`" είναι το όνομα του πεδίου και το "data Type" ορίζει τη φύση των δεδομένων που είναι αποθηκευμένα σε αυτό.
  • Οι «[προαιρετικές παράμετροι]» είναι επιπλέον πληροφορίες σχετικά με ένα πεδίο, όπως «AUTO_INCREMENT» ή «NOT NULL».
  • Η «μηχανή αποθήκευσης» διαχειρίζεται τον πίνακα, συνήθως το InnoDB, ο οποίος υποστηρίζει συναλλαγές και ξένα κλειδιά.

MySQL Δημιουργία παραδείγματος πίνακα

Παρακάτω είναι μια MySQL παράδειγμα για τη δημιουργία ενός πίνακα σε μια βάση δεδομένων:

CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (
  `membership_number` INT AUTO_INCREMENT ,
  `full_names` VARCHAR(150) NOT NULL ,
  `gender` VARCHAR(6) ,
  `date_of_birth` DATE ,
  `physical_address` VARCHAR(255) ,
  `postal_address` VARCHAR(255) ,
  `contact_number` VARCHAR(75) ,
  `email` VARCHAR(255) ,
  PRIMARY KEY (`membership_number`) )
ENGINE = InnoDB;

Σημείωση: η σωστή MySQL λέξη-κλειδί είναι AUTO_INCREMENT με μια υπογράμμιση. AUTOINCREMENT ανήκει στον SQLite και εμφανίζει ένα συντακτικό σφάλμα στο MySQL.

Κάθε στήλη περιέχει έναν τύπο δεδομένων, επομένως επιλέξτε προσεκτικά: ούτε υποτιμήστε ούτε υπερεκτιμήστε το εύρος δεδομένων που αναμένετε.

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

Οι τύποι δεδομένων καθορίζουν τη φύση των δεδομένων που μπορούν να αποθηκευτούν σε μια συγκεκριμένη στήλη ενός πίνακα.

MySQL έχει 3 κύριες κατηγορίες τύπων δεδομένων, δηλαδή:

  1. Αριθμητικός
  2. Κείμενο
  3. Ημερομηνία ώρα

Αριθμητικοί τύποι δεδομένων

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

TINYINT( ) -128 έως 127 κανονικά
0 έως 255 ΑΝΥΠΟΓΡΑΦΗ.
SMALLINT( ) -32768 έως 32767 κανονικά
0 έως 65535 ΑΝΥΠΟΓΡΑΦΗ.
MEDIUMINT( ) -8388608 έως 8388607 κανονικά
0 έως 16777215 ΑΝΥΠΟΓΡΑΦΗ.
INT( ) -2147483648 έως 2147483647 κανονικά
0 έως 4294967295 ΑΝΥΠΟΓΡΑΦΗ.
ΜΕΓΑΛΟ( ) -9223372036854775808 έως 9223372036854775807 κανονικά
0 έως 18446744073709551615 ΑΝΥΠΟΓΡΑΦΗ.
FLOAT Ένας μικρός κατά προσέγγιση αριθμός με κινητή υποδιαστολή.
ΔΙΠΛΟ( , ) Ένας μεγάλος αριθμός με κινητή υποδιαστολή.
ΔΕΚΑΔΙΚΟ( , ) Ένα DOUBLE αποθηκεύεται ως συμβολοσειρά, επιτρέποντας μια σταθερή υποδιαστολή. Επιλογή για την αποθήκευση τιμών νομισμάτων.

Τύποι δεδομένων κειμένου

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

CHAR( ) Ένα σταθερό τμήμα μήκους από 0 έως 255 χαρακτήρες.
VARCHAR( ) Μια μεταβλητή ενότητα μήκους από 0 έως 255 χαρακτήρες.
TINYTEXT Μια συμβολοσειρά με μέγιστο μήκος 255 χαρακτήρες.
ΚΕΙΜΕΝΟ Μια συμβολοσειρά με μέγιστο μήκος 65535 χαρακτήρες.
Blob Μια συμβολοσειρά με μέγιστο μήκος 65535 χαρακτήρες.
ΜΕΣΑΙΟ ΚΕΙΜΕΝΟ Μια συμβολοσειρά με μέγιστο μήκος 16777215 χαρακτήρες.
ΜΕΣΑΙΑ ΣΦΑΛΚΙΑ Μια συμβολοσειρά με μέγιστο μήκος 16777215 χαρακτήρες.
ΜΑΚΡΥΚΕΙΜΕΝΟ Μια συμβολοσειρά με μέγιστο μήκος 4294967295 χαρακτήρες.
LONGBLOB Μια συμβολοσειρά με μέγιστο μήκος 4294967295 χαρακτήρες.

Τύποι δεδομένων ημερομηνίας και ώρας

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

ΗΜΕΡΟΜΗΝΙΑ ΕΕΕΕ-ΜΜ-ΔΔ
ΗΜΕΡΟΜΗΝΙΑ ΩΡΑ ΕΕΕΕ-ΜΜ-ΗΗ ΥΗ: ΜΜ: SS
ΧΡΟΝΟΣΗΜΑ YYYYMMDDHHMMSS
TIME ΩΩ: ΜΜ: SS

Άλλοι τύποι δεδομένων

Εκτός από τα παραπάνω, υπάρχουν και άλλοι τύποι δεδομένων MySQL.

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

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

CREATE TABLE `all_data_types` (
    `varchar` VARCHAR( 20 )  ,
    `tinyint` TINYINT  ,
    `text` TEXT  ,
    `date` DATE  ,
    `smallint` SMALLINT  ,
    `mediumint` MEDIUMINT  ,
    `int` INT  ,
    `bigint` BIGINT  ,
    `float` FLOAT( 10, 2 )  ,
    `double` DOUBLE  ,
    `decimal` DECIMAL( 10, 2 )  ,
    `datetime` DATETIME  ,
    `timestamp` TIMESTAMP  ,
    `time` TIME  ,
    `year` YEAR  ,
    `char` CHAR( 10 )  ,
    `tinyblob` TINYBLOB  ,
    `tinytext` TINYTEXT  ,
    `blob` BLOB  ,
    `mediumblob` MEDIUMBLOB  ,
    `mediumtext` MEDIUMTEXT  ,
    `longblob` LONGBLOB  ,
    `longtext` LONGTEXT  ,
    `enum` ENUM( '1', '2', '3' )  ,
    `set` SET( '1', '2', '3' )  ,
    `bool` BOOL  ,
    `binary` BINARY( 20 )  ,
    `varbinary` VARBINARY( 20 )
) ENGINE = MYISAM;

καλυτερα Πρακτικές Δημιουργίας α MySQL βάση δεδομένων

Μερικές συμβάσεις διατηρούν τα σενάρια σας ευανάγνωστα:

  • Χρησιμοποιήστε κεφαλαία γράμματα για λέξεις-κλειδιά SQL, π.χ. “DROP SCHEMA IF EXISTS `MyFlixDB`”
  • Τερματίστε όλες τις εντολές SQL χρησιμοποιώντας ερωτηματικά.
  • Αποφύγετε τη χρήση κενών σε ονόματα σχημάτων, πινάκων και πεδίων. Χρησιμοποιήστε υπογράμμιση για να διαχωρίσετε ονόματα σχημάτων, πινάκων ή πεδίων.
  • Προτιμήστε το InnoDB έναντι του MyISAM για νέους πίνακες, επειδή το InnoDB υποστηρίζει συναλλαγές, κλείδωμα σε επίπεδο γραμμών και ξένα κλειδιά.

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

Πώς να δημιουργήσετε MySQL Διάγραμμα ER πάγκου εργασίας Forward Engineering

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

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

Δημιουργία της βάσης δεδομένων MyFlix από το μοντέλο MyFlix ER

Βήμα 1) Ανοίξτε το μοντέλο ER της βάσης δεδομένων MyFlix που δημιουργήσατε νωρίτερα.

Βήμα 2) Επιλέξτε μπροστινός μηχανικός

Κάντε κλικ στο μενού Βάση δεδομένων και επιλέξτε Προωθητικός μηχανικός.

Επιλέξτε μηχανικό προώθησης στο MySQL Πάγκος εργασίας

Βήμα 3) Επιλογές σύνδεσης

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

Επιλογές σύνδεσης στον οδηγό προώθησης μηχανικού

Βήμα 4) Επιλέξτε τις επιλογές που εμφανίζονται παρακάτω

Επιλέξτε τις επιλογές που εμφανίζονται παρακάτω στον οδηγό που εμφανίζεται. Κάντε κλικ στο κουμπί Επόμενο.

Επιλογές προώθησης μηχανικού για τη βάση δεδομένων MyFlix

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

Η επόμενη οθόνη δείχνει τη σύνοψη των αντικειμένων στο διάγραμμα EER μας. Η βάση δεδομένων MyFlix μας έχει 5 πίνακες. Διατηρήστε τις επιλογές ως προεπιλογές και κάντε κλικ στο κουμπί Επόμενο.

Σύνοψη αντικειμένων στο διάγραμμα MyFlix EER

Βήμα 6) Revδείτε το σενάριο SQL

Το παρακάτω παράθυρο εμφανίζει μια προεπισκόπηση του σεναρίου SQL που δημιουργεί τη βάση δεδομένων μας. Αποθηκεύστε το σενάριο σε ένα αρχείο *.sql ή αντιγράψτε το στο πρόχειρο και, στη συνέχεια, κάντε κλικ στο κουμπί Επόμενο.

Προεπισκόπηση του δημιουργημένου σεναρίου SQL

Βήμα 7) Πρόοδος δέσμευσης

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

Παράθυρο προόδου ολοκλήρωσης μηχανικής προώθησης

Η βάση δεδομένων μαζί με τα εικονικά δεδομένα επισυνάπτεται. Θα χρησιμοποιήσουμε αυτήν τη βάση δεδομένων στα μαθήματα που ακολουθούν. Απλώς εισαγάγετέ την στο MySQL Πάγκος εργασίας για να ξεκινήσετε.

Κάντε κλικ εδώ για λήψη του MyFlixDB

Συχνές Ερωτήσεις

Δεν υπάρχει διαφορά στο MySQLΤο CREATE SCHEMA είναι ένα ψευδώνυμο για το CREATE DATABASE και και τα δύο κατασκευάζουν το ίδιο αντικείμενο. Σε άλλα συστήματα, όπως το Oracle, ένα σχήμα και μια βάση δεδομένων παραμένουν ξεχωριστές έννοιες.

Εκτέλεση ταινιών DROP DATABASE IF EXISTS από τον υπολογιστή-πελάτη ή από MySQL Πάγκος εργασίαςΗ εντολή διαγράφει οριστικά τη βάση δεδομένων και κάθε πίνακα που περιέχει, επομένως δημιουργήστε πρώτα ένα αντίγραφο ασφαλείας.

Ο λογαριασμός χρειάζεται το δικαίωμα CREATE σε καθολικό επίπεδο. Οι διαχειριστές το εκχωρούν με GRANT CREATE ON *.* TO 'user'@'localhost';. Χωρίς αυτό το δικαίωμα, ο διακομιστής επιστρέφει ένα σφάλμα "άρνηση πρόσβασης".

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

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

Συνοψίστε αυτήν την ανάρτηση με: