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

Πίνακας περιεχομένων:

Anonim

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

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

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

2) Χρησιμοποιώντας μηχανική προώθησης στο MySQL Workbench

Σε αυτό το SQL Tutorial, θα μάθετε-

  • Τρόπος δημιουργίας βάσης δεδομένων
  • Τρόπος δημιουργίας πίνακα στη MySQL
  • Τύποι δεδομένων
  • MySQL workbench ER διάγραμμα προς τα εμπρός Μηχανική

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

Τρόπος δημιουργίας βάσης δεδομένων

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

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

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

CREATE DATABASE movies; 

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

Τώρα ας βελτιώσουμε το ερώτημά μας SQL προσθέτοντας περισσότερες παραμέτρους και προδιαγραφές.

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

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

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

CREATE DATABASE IF NOT EXISTS movies;

Σελιδοποίηση και σύνολο χαρακτήρων

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

Πρέπει να επιλέξετε τους κανόνες ταξινόμησης που με τη σειρά τους εξαρτώνται από το επιλεγμένο σύνολο χαρακτήρων.

Για παράδειγμα, το σύνολο χαρακτήρων Latin1 χρησιμοποιεί το

latin1_swedish_ci αντιπαραβολή που είναι η σουηδική υπόθεση μη ευαίσθητη σειρά.
CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci

Η βέλτιστη πρακτική κατά τη χρήση τοπικών γλωσσών όπως Αραβικά, Κινέζικα κ.λπ. είναι να επιλέξετε το σύνολο χαρακτήρων Unicode (utf-8) που έχει αρκετές ταξινομήσεις ή απλώς κολλήστε στην προεπιλεγμένη ταξινόμηση utf8-general-ci.

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

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

SHOW DATABASES

Τρόπος δημιουργίας πίνακα στη MySQL

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

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

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

ΕΔΩ

  • Το "CREATE TABLE" είναι αυτό που είναι υπεύθυνο για τη δημιουργία του πίνακα στη βάση δεδομένων.
  • Το "[ΕΑΝ ΔΕΝ ΥΠΑΡΧΕΙ]" είναι προαιρετικό και δημιουργήστε τον πίνακα μόνο εάν δεν υπάρχει αντίστοιχο όνομα πίνακα.
  • Το "fieldName" "είναι το όνομα του πεδίου και το" Τύπος δεδομένων "καθορίζει τη φύση των δεδομένων που θα αποθηκευτούν στο πεδίο.
  • "[προαιρετικές παράμετροι]" πρόσθετες πληροφορίες για ένα πεδίο όπως "AUTO_INCREMENT", NOT NULL κ.λπ.

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

Ακολουθεί ένα παράδειγμα MySQL για τη δημιουργία πίνακα στη βάση δεδομένων:

CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (`membership_number` INT AUTOINCREMENT ,`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. Μπορείτε να χρησιμοποιήσετε οποιοδήποτε από αυτά ανάλογα με τις ανάγκες σας. Πρέπει πάντα να προσπαθείτε να μην υποτιμάτε ή να υπερεκτιμάτε το πιθανό εύρος δεδομένων κατά τη δημιουργία μιας βάσης δεδομένων.

ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

Η 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 ΑΝΕΞΑΓΩΓΗ.
ΦΛΟΤΕΡ Ένας μικρός κατά προσέγγιση αριθμός με κυμαινόμενο δεκαδικό σημείο.
ΔΙΠΛΟ (,) Ένας μεγάλος αριθμός με κυμαινόμενο δεκαδικό σημείο.
ΔΕΙΚΤΗΣ (,) Ένα ΔΙΠΛΟ αποθηκευμένο ως συμβολοσειρά, επιτρέποντας ένα σταθερό δεκαδικό σημείο. Επιλογή αποθήκευσης νομισματικών αξιών.

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

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

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

Ημερομηνία ώρα

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

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

ENUM Για να αποθηκεύσετε την τιμή κειμένου που επιλέγεται από μια λίστα προκαθορισμένων τιμών κειμένου
ΣΕΙΡΑ Αυτό χρησιμοποιείται επίσης για την αποθήκευση τιμών κειμένου που επιλέγονται από μια λίστα προκαθορισμένων τιμών κειμένου. Μπορεί να έχει πολλές τιμές.
ΜΠΟΥΛΙ Συνώνυμο για 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 ;

Βέλτιστες πρακτικές

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

MySQL workbench ER διάγραμμα μηχανικής προώθησης

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

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

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

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

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

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

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

5. Στην επόμενη οθόνη εμφανίζεται η περίληψη των αντικειμένων στο διάγραμμα EER. Το MyFlix DB διαθέτει 5 πίνακες. Διατηρήστε τις επιλογές προεπιλεγμένες και κάντε κλικ στο Επόμενο.

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

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

Περίληψη

  • Η δημιουργία βάσης δεδομένων συνεπάγεται τη μετάφραση του λογικού μοντέλου βάσης δεδομένων στη φυσική βάση δεδομένων.
  • Η MySQL υποστηρίζει έναν αριθμό τύπων δεδομένων για αριθμητικές τιμές, ημερομηνίες και συμβολοσειρές.
  • Η εντολή CREATE DATABASE χρησιμοποιείται για τη δημιουργία μιας βάσης δεδομένων
  • Η εντολή CREATE TABLE χρησιμοποιείται για τη δημιουργία πινάκων σε μια βάση δεδομένων
  • Ο πάγκος εργασίας MySQL υποστηρίζει μηχανική προώθησης που περιλαμβάνει αυτόματη δημιουργία σεναρίων SQL από το λογικό μοντέλο βάσης δεδομένων που μπορεί να εκτελεστεί για τη δημιουργία της φυσικής βάσης δεδομένων

Επισυνάπτεται η βάση δεδομένων μαζί με το Dummy Data. Θα χρησιμοποιήσουμε αυτό το DB για όλα τα περαιτέρω μαθήματά μας. Απλή εισαγωγή του DB στο MySQL Workbench για να ξεκινήσετε

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