Cum se creează o bază de date în MySQL (Crea MySQL Mese)

⚡ Rezumat inteligent

Crearea unei baze de date în MySQL urmează două căi dovedite: executarea unei instrucțiuni CREATE DATABASE sau generarea de scheme fizice dintr-un model ER prin MySQL Inginerie avansată pentru atelier. Ambele abordări produc tabele identice, gata de producție.

  • 🗄️ Crearea bazei de date: Executați filme CREATE DATABASE; sau CREATE SCHEMA, care MySQL tratează ca sinonim.
  • 🛡️ Reluări în siguranță: Adăugați IF NOT EXISTS astfel încât un script repetat să sară peste crearea în loc să genereze o eroare de nume duplicat.
  • 🌐 Set de caractere: Alegeți utf8mb4 cu utf8mb4_0900_ai_ci pentru date multilingve; latin1 cu latin1_swedish_ci se potrivește schemelor vechi, numai în limba engleză.
  • 🧱 Crearea tabelului: CREATE TABLE definește fiecare nume de câmp, tip de date, PRIMARY KEY și motorul de stocare, în mod normal InnoDB.
  • 🔢 Tipuri de date: Tipurile de coloane se împart în familii numerice, text și de dată sau oră, plus variante ENUM, SET, BOOL și binare.
  • ⚙️ Inginerie avansată: MySQL Workbench convertește un model ER aprobat în scripturi SQL executabile și le salvează pe un server activ.

Pași pentru a crea o bază de date în MySQL

O bază de date în MySQL este un container denumit pentru tabele, vizualizări și obiecte conexe. Puteți crea unul în două moduri:

1) Prin executarea unei interogări SQL simplă

2) Prin utilizarea ingineriei avansate în MySQL Banc de lucru

As SQL începător, să ne uităm mai întâi la metoda de interogare.

Cum se creează o bază de date în MySQL

Iată cum se creează o bază de date în MySQL:

CREATE DATABASE este comanda SQL folosită pentru crearea unei baze de date în MySQL.

Imaginează-ți că trebuie să creezi o bază de date cu numele „filme”. Poți crea o bază de date în MySQL prin executarea următoarei comenzi SQL.

CREATE DATABASE movies;

Notă: Puteți utiliza și comanda CREATE SCHEMA în loc de CREATE DATABASE.

Instrucțiunea funcționează o singură dată. Rularea ei din nou generează o eroare, așa că haideți să îmbunătățim interogarea cu mai mulți parametri.

DACĂ NU EXISTĂ

Un singur MySQL Un server poate conține mai multe baze de date. Când mai multe persoane partajează acel server, puteți încerca să creați o bază de date cu numele uneia existente.

DACĂ NU EXISTĂ îl instruiește pe MySQL serverul să verifice dacă există o bază de date cu același nume înainte de a o crea. Baza de date este creată numai dacă numele este liber; fără această clauză, MySQL aruncă o eroare.

CREATE DATABASE IF NOT EXISTS movies;

Odată ce numele bazei de date este sigur, următoarea decizie este cum MySQL ar trebui să stocheze și să compare textul din interiorul său.

Colaţionare şi set de caractere

A set de caractere decide ce caractere poate stoca o coloană, în timp ce un gustare este setul de reguli utilizate în comparație și sortare. Ambele pot fi definite la patru niveluri: server, bază de date, tabel și coloană.

Ordonarea pe care o alegeți depinde de setul de caractere. De exemplu, setul de caractere latin1 folosește latin1_swedish_ci colaționare, care este ordinea suedeză fără a ține cont de majuscule/minuscule.

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

Pentru limbile locale, cum ar fi araba sau chineza, selectați Unicode utf8mb4 set de caractere, care stochează fiecare caracter Unicode, inclusiv emoji-uri. În MySQL 8.0, utf8mb4 este setul implicit de caractere și utf8mb4_0900_ai_ci colaționarea implicită.

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

Puteți găsi lista cu toate colațiile și seturile de caractere aici.

Puteți vedea lista bazelor de date existente executând următoarea comandă SQL.

SHOW DATABASES;

Odată ce baza de date este configurată, puteți adăuga tabelele care vor conține înregistrările.

Cum se creează un tabel în MySQL

Comanda CREATE TABLE este utilizată pentru a crea tabele într-o bază de date.

Creați tabel în MySQL

După cum arată diagrama, fiecare tabel aparține unei singure baze de date. Tabelele sunt create cu CREAȚI TABEL instrucțiune, care are următoarea sintaxă.

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

AICI

  • „CREATE TABLE” este responsabilă pentru crearea tabelului în baza de date.
  • „[DACĂ NU EXISTĂ]” este opțional și creează tabelul numai dacă nu se găsește un nume de tabel corespunzător.
  • „`fieldName`” este numele câmpului, iar „data Type” definește natura datelor stocate în acesta.
  • „[parametri opționali]” reprezintă informații suplimentare despre un câmp, cum ar fi „AUTO_INCREMENT” sau NOT NULL.
  • „Storage Engine” gestionează tabelul, în mod normal InnoDB, care acceptă tranzacții și chei externe.

MySQL Creați un exemplu de tabel

Mai jos este a MySQL exemplu de creare a unui tabel într-o bază de date:

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;

Notă: corectă MySQL cuvântul cheie este AUTO_INCREMENT cu o subliniere. AUTOINCREMENT aparține lui SQLite și generează o eroare de sintaxă în MySQL.

Fiecare coloană conține un tip de date, așa că alegeți cu atenție: nu subestimați și nici supraestimați intervalul de date așteptat.

MySQL Tipuri de date

Tipurile de date definesc natura datelor care pot fi stocate într-o anumită coloană a unui tabel.

MySQL are 3 principalele categorii de tipuri de date, și anume:

  1. Numeric
  2. Text
  3. Data / ora

Tipuri de date numerice

Tipurile de date numerice sunt utilizate pentru stocarea valorilor numerice. Este foarte important să vă asigurați că intervalul datelor dvs. se află între limitele inferioară și superioară ale tipului de date numerice pe care îl alegeți.

TINYINT( ) -128 până la 127 normal
0 la 255 NESEMNAT.
SMALLINT( ) -32768 până la 32767 normal
0 la 65535 NESEMNAT.
MEDIUMINT( ) -8388608 până la 8388607 normal
0 la 16777215 NESEMNAT.
INT( ) -2147483648 până la 2147483647 normal
0 la 4294967295 NESEMNAT.
BIGINT( ) -9223372036854775808 până la 9223372036854775807 normal
0 la 18446744073709551615 NESEMNAT.
PLUTI Un mic număr aproximativ cu virgulă zecimală flotantă.
DUBLĂ( , ) Un număr mare cu virgulă zecimală flotantă.
DECIMAL( , ) Un DOUBLE stocat ca șir de caractere, permițând o virgulă zecimală fixă. Opțiune pentru stocarea valorilor monetare.

Tipuri de date text

Așa cum sugerează și numele categoriei de tipuri de date, acestea sunt utilizate pentru stocarea valorilor text. Asigurați-vă întotdeauna că lungimea datelor textuale nu depășește lungimea maximă a coloanei.

CHAR( ) O secțiune fixă ​​de la 0 la 255 de caractere.
VARCHAR( ) O secțiune variabilă de la 0 la 255 de caractere.
TINYTEXT Un șir cu o lungime maximă de 255 de caractere.
TEXT Un șir cu o lungime maximă de 65535 de caractere.
BLOB Un șir cu o lungime maximă de 65535 de caractere.
TEXT MEDIU Un șir cu o lungime maximă de 16777215 de caractere.
BLOB MEDIU Un șir cu o lungime maximă de 16777215 de caractere.
TEXT LUNG Un șir cu o lungime maximă de 4294967295 de caractere.
LONGBLOB Un șir cu o lungime maximă de 4294967295 de caractere.

Tipuri de date pentru dată și oră

Tipurile de date de tip dată și oră stochează valorile calendarului și ale ceasului într-un format fix, ceea ce menține sortarea și compararea fiabile.

DATA AAAA-LL-ZZ
datetime AAAA-LL-ZZ HH: MM: SS
TIMESTAMP-UL YYYYMMDDHHMMSS
TIMP HH: MM: SS

Alte tipuri de date

Pe lângă cele de mai sus, există și alte tipuri de date în MySQL.

ENUM Pentru a stoca o valoare text aleasă dintr-o listă de valori text predefinite
SET Acesta este, de asemenea, utilizat pentru stocarea valorilor text alese dintr-o listă de valori text predefinite. Poate avea mai multe valori.
BOOL Sinonim pentru TINYINT(1), folosit pentru a stoca valori booleene
BINAR Similar cu CHAR; diferența este că textele sunt stocate în format binar.
VARBINAR Similar cu VARCHAR; diferența este că textele sunt stocate în format binar.

Acum să vedem o interogare pentru crearea unui tabel care utilizează toate tipurile de date. Studiați-o și identificați cum este definit fiecare tip de date în tabelul de mai jos. MySQL exemplu.

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;

Cele mai bune practici pentru crearea a MySQL Baza de date

Câteva convenții mențin scripturile lizibile:

  • Folosiți majuscule pentru cuvintele cheie SQL, de exemplu „DROP SCHEMA IF EXISTS `MyFlixDB`;”
  • Încheiați toate comenzile SQL folosind punct și virgulă.
  • Evitați utilizarea spațiilor în numele schemelor, tabelelor și câmpurilor. Folosiți sublinieri pentru a separa numele schemelor, tabelelor sau câmpurilor.
  • Preferați InnoDB în locul MyISAM pentru tabele noi, deoarece InnoDB acceptă tranzacții, blocare la nivel de rând și chei externe.

Metoda de interogare este completă. A doua rută ajunge la aceeași bază de date dintr-un model vizual în loc de cod SQL scris de mână.

Cum se creează MySQL Diagrama ER a bancului de lucru Forward Engineering

MySQL Banc de lucru are utilități care suportă inginerie avansată. Inginerie avansată este termenul tehnic care descrie procesul de traducerea automată a unui model logic într-o implementare fizică.

Am creat un Diagrama ER în a noastră Modelare ER lecție. Vom folosi acum acel model ER pentru a genera scripturile SQL care vor crea baza noastră de date.

Crearea bazei de date MyFlix din modelul MyFlix ER

Pasul 1) Deschideți modelul ER al bazei de date MyFlix pe care l-ai creat mai devreme.

Pasul 2) Selectați inginerul de avans

Faceți clic pe meniul Bază de date și selectați Inginer înainte.

Selectați inginerul de avans în MySQL Banc de lucru

Pasul 3) Opțiuni de conectare

Următoarea fereastră vă permite să vă conectați la o instanță de MySQL server. Faceți clic pe lista derulantă cu conexiunile stocate și selectați gazda locală. Faceți clic pe Executare.

Opțiuni de conectare în expertul de inginerie de redirecționare

Pasul 4) Selectați opțiunile afișate mai jos

Selectați opțiunile afișate mai jos în expertul care apare. Faceți clic pe Următorul.

Opțiuni de inginerie de redirecționare pentru baza de date MyFlix

Pasul 5) Păstrați selecțiile implicite și faceți clic pe Următorul

Următorul ecran prezintă rezumatul obiectelor din diagrama noastră EER. Baza noastră de date MyFlix are 5 tabele. Păstrați selecțiile implicite și faceți clic pe Următorul.

Rezumatul obiectelor din diagrama MyFlix EER

Pas 6) Revvezi scriptul SQL

Fereastra de mai jos previzualizează scriptul SQL care creează baza noastră de date. Salvați scriptul într-un fișier *.sql sau copiați-l în clipboard, apoi faceți clic pe Următorul.

Previzualizare a scriptului SQL generat

Pasul 7) Înregistrarea progresului

Fereastra de mai jos apare după ce baza de date este creată pe locația selectată MySQL instanță de server. Tabelele din modelul ER există acum fizic pe server.

Fereastra de progres a comiterii inginerești directe

Baza de date împreună cu datele fictive este atașată. Vom folosi această bază de date în lecțiile următoare. Pur și simplu importați-o în MySQL Banc de lucru pentru început.

Faceți clic aici pentru a descărca MyFlixDB

Întrebări frecvente

Nu există nicio diferență în MySQLCREATE SCHEMA este un alias pentru CREATE DATABASE și ambele construiesc același obiect. În alte sisteme, cum ar fi Oracle, o schemă și o bază de date rămân concepte separate.

Executați filmele DROP DATABASE IF EXISTS; de la client sau de la MySQL Banc de lucruComanda șterge definitiv baza de date și fiecare tabel din ea, așa că faceți mai întâi o copie de rezervă.

Contul are nevoie de privilegiul CREATE la nivel global. Administratorii îl acordă cu GRANT CREATE ON *.* TO 'user'@'localhost';. Fără acest privilegiu, serverul returnează o eroare de acces refuzat.

Da. Asistenții inteligenți artificiali transformă o descriere simplă a entităților tale în scripturi CREATE TABLE cu chei și tipuri de date. Verifică întotdeauna tipurile, lungimile și constrângerile generate înainte de a rula scriptul pe un server de producție.

Funcțiile de inteligență artificială din clienții de baze de date moderni citesc Diagrama ER sau istoricul interogărilor și sugerează corecții de normalizare, candidați de indexare și corecții ale tipurilor de date. Sugestiile accelerează revizuirile de proiectare, dar o persoană aprobă în continuare fiecare modificare.

Rezumați această postare cu: