Kako stvoriti bazu podataka u MySQL (Stvoriti MySQL stolovi)

⚡ Pametni sažetak

Stvaranje baze podataka u MySQL slijedi dva provjerena puta: izvršavanje naredbe CREATE DATABASE ili generiranje fizičkih shema iz ER modela putem MySQL Inženjering radne ploče unaprijed. Oba pristupa proizvode identične, za proizvodnju spremne stolove.

  • 🗄️ Izrada baze podataka: Pokrenite CREATE DATABASE movies; ili CREATE SCHEMA, što MySQL tretira kao sinonim.
  • 🛡️ Sigurna ponovna pokretanja: Dodajte IF NOT EXISTS kako bi ponovljeni skript preskočio stvaranje umjesto da izazove grešku dupliciranog imena.
  • 🌐 Skup znakova: Odaberite utf8mb4 s utf8mb4_0900_ai_ci za višejezične podatke; latin1 s latin1_swedish_ci odgovara starijim shemama koje prikazuju samo engleski jezik.
  • 🧱 Izrada tablice: CREATE TABLE definira naziv svakog polja, tip podataka, PRIMARNI KLJUČ i mehanizam za pohranu, obično InnoDB.
  • 🔢 Vrste podataka: Tipovi stupaca spadaju u numeričke, tekstualne i datumske ili vremenske obitelji, plus ENUM, SET, BOOL i binarne varijante.
  • ️ Napredno inženjerstvo: MySQL Workbench pretvara odobreni ER model u izvršne SQL skripte i šalje ih na aktivni poslužitelj.

Koraci za stvaranje baze podataka u MySQL

Baza podataka u MySQL je imenovani spremnik za tablice, prikaze i povezane objekte. Možete ga stvoriti na dva načina:

1) Izvršavanjem jednostavnog SQL upita

2) Korištenjem naprednog inženjeringa u MySQL Radna tezga

As SQL početnik, pogledajmo prvo metodu upita.

Kako stvoriti bazu podataka u MySQL

Evo kako stvoriti bazu podataka u MySQL:

CREATE DATABASE je SQL naredba koja se koristi za kreiranje baze podataka u MySQL.

Zamislite da trebate stvoriti bazu podataka s nazivom „filmovi“. Možete stvoriti bazu podataka u MySQL izvršavanjem sljedeće SQL naredbe.

CREATE DATABASE movies;

Napomena: Umjesto naredbe CREATE DATABASE, možete koristiti i naredbu CREATE SCHEMA.

Naredba radi samo jednom. Ponovno pokretanje izbacuje grešku, pa poboljšajmo upit s više parametara.

AKO NE POSTOJI

Jedan sam MySQL Poslužitelj može sadržavati mnogo baza podataka. Kada nekoliko ljudi dijeli taj poslužitelj, možete pokušati stvoriti bazu podataka s imenom postojeće.

AKO NE POSTOJI upućuje MySQL poslužitelj da provjeri postoji li baza podataka s istim imenom prije nego što je stvori. Baza podataka se stvara samo ako je ime slobodno; bez ove klauzule, MySQL izbacuje pogrešku.

CREATE DATABASE IF NOT EXISTS movies;

Nakon što je naziv baze podataka siguran, sljedeća odluka je kako MySQL treba pohraniti i usporediti tekst unutar njega.

Razvrstavanje i skup znakova

A skup znakova odlučuje koje znakove stupac može pohraniti, dok sravnjivanje je skup od pravila korištena u usporedbi i sortiranje. Oboje se može definirati na četiri razine: poslužitelj, baza podataka, tablica i stupac.

Sortiranje koje odaberete ovisi o skupu znakova. Na primjer, skup znakova latin1 koristi latin1_swedish_ci sređivanje, što je švedski redoslijed koji ne razlikuje velika i mala slova.

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

Za lokalne jezike poput arapskog ili kineskog odaberite Unicode utf8mb4 skup znakova koji pohranjuje svaki Unicode znak, uključujući emotikone. U MySQL 8.0, utf8mb4 je zadani skup znakova i utf8mb4_0900_ai_ci zadana kolacija.

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

Možete pronaći popis svih sortiranja i skupova znakova ovdje.

Popis postojećih baza podataka možete vidjeti pokretanjem sljedeće SQL naredbe.

SHOW DATABASES;

S bazom podataka na mjestu, sada možete dodati tablice koje će zapravo sadržavati zapise.

Kako napraviti tablicu u MySQL

Naredba CREATE TABLE koristi se za stvaranje tablica u bazi podataka.

Napravi tablicu u MySQL

Kao što dijagram pokazuje, svaka tablica pripada jednoj bazi podataka. Tablice se stvaraju pomoću IZRADI TABELU izjava, koja ima sljedeću sintaksu.

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

OVDJE

  • Naredba "CREATE TABLE" odgovorna je za stvaranje tablice u bazi podataka.
  • „[IF NE POSTOJI]“ je opcionalno i kreira tablicu samo ako nije pronađen odgovarajući naziv tablice.
  • „`fieldName`” je naziv polja, a „data Type” definira prirodu podataka pohranjenih u njemu.
  • „[neobavezni parametri]“ su dodatne informacije o polju, kao što su „AUTO_INCREMENT“ ili NOT NULL.
  • „Storage Engine“ upravlja tablicom, obično InnoDB-om, koji podržava transakcije i strane ključeve.

MySQL Primjer izrade tablice

Ispod je a MySQL primjer za izradu tablice u bazi podataka:

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;

Bilješka: točne MySQL ključna riječ je AUTO_INCREMENT s podcrtom. AUTOINCREMENT pripada SQLite i izaziva sintaktičku grešku u MySQL.

Svaki stupac nosi tip podataka, stoga pažljivo birajte: nemojte ni podcijeniti ni precijeniti raspon podataka koje očekujete.

MySQL Vrste podataka

Tipovi podataka definiraju prirodu podataka koji se mogu pohraniti u određeni stupac tablice.

MySQL ima 3 glavne kategorije tipova podataka, i to:

  1. Numerički
  2. Tekst
  3. Datum vrijeme

Numeričke vrste podataka

Numerički tipovi podataka koriste se za pohranjivanje numeričkih vrijednosti. Vrlo je važno osigurati da je raspon vaših podataka između donje i gornje granice odabranog numeričkog tipa podataka.

TINYINT( ) -128 do 127 normalno
0 do 255 NEPOTPISANO.
SMALLINT( ) -32768 do 32767 normalno
0 do 65535 NEPOTPISANO.
SREDNJE ( ) -8388608 do 8388607 normalno
0 do 16777215 NEPOTPISANO.
INT( ) -2147483648 do 2147483647 normalno
0 do 4294967295 NEPOTPISANO.
BIGINT( ) -9223372036854775808 do 9223372036854775807 normalno
0 do 18446744073709551615 NEPOTPISANO.
PLUTATI Mali približni broj s pomičnim decimalnim zarezom.
DVOSTRUKO ( , ) Veliki broj s pomičnim decimalnim zarezom.
DECIMAL( , ) Vrijednost DOUBLE pohranjena kao niz znakova, s fiksnom decimalnom točkom. Izbor za pohranjivanje vrijednosti valuta.

Tekstualne vrste podataka

Kao što i samo ime kategorije tipova podataka govori, one se koriste za pohranjivanje tekstualnih vrijednosti. Uvijek pazite da duljina tekstualnih podataka ne prelazi maksimalnu duljinu stupca.

CHAR( ) Fiksni odjeljak od 0 do 255 znakova.
VARCHAR( ) Varijabilni odjeljak od 0 do 255 znakova.
SITNI TEKST Niz maksimalne duljine od 255 znakova.
TEKST Niz maksimalne duljine od 65535 znakova.
BLOB Niz maksimalne duljine od 65535 znakova.
SREDNJI TEKST Niz maksimalne duljine od 16777215 znakova.
SREDNJA MRLJA Niz maksimalne duljine od 16777215 znakova.
DUGI TEKST Niz maksimalne duljine od 4294967295 znakova.
DUGAČKA Niz maksimalne duljine od 4294967295 znakova.

Vrste podataka o datumu i vremenu

Tipovi podataka datuma i vremena pohranjuju vrijednosti kalendara i sata u fiksnom formatu, što osigurava pouzdanost sortiranja i usporedbe.

INFORMACIJE GGGG-MM-DD
DATUM VRIJEME GGGG-MM-DD HH: MM: SS
VREMENSKI KAMP GGGGMMDDHHMMSS
VRIJEME HH: MM: SS

Druge vrste podataka

Osim gore navedenog, postoje i neke druge vrste podataka u MySQL.

ENUM Za pohranjivanje tekstualne vrijednosti odabrane s popisa unaprijed definiranih tekstualnih vrijednosti
SET Ovo se također koristi za pohranjivanje tekstualnih vrijednosti odabranih s popisa unaprijed definiranih tekstualnih vrijednosti. Može imati više vrijednosti.
BOOL Sinonim za TINYINT(1), koji se koristi za pohranu Booleovih vrijednosti
binarni Slično kao CHAR; razlika je u tome što se tekstovi pohranjuju u binarnom formatu.
VARBINARIJ Slično kao VARCHAR; razlika je u tome što se tekstovi pohranjuju u binarnom formatu.

Sada pogledajmo upit za stvaranje tablice koja koristi sve tipove podataka. Proučimo ga i identificirajmo kako je svaki tip podataka definiran u donjoj tablici za stvaranje. MySQL primjer.

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;

Najbolji primjeri iz prakse za stvaranje a MySQL Baza podataka

Nekoliko konvencija održava vaše skripte čitljivima:

  • Koristite velika slova za SQL ključne riječi, npr. „DROP SCHEMA IF EXISTS `MyFlixDB`;”
  • Završite sve SQL naredbe točka-zarezom.
  • Izbjegavajte korištenje razmaka u nazivima shema, tablica i polja. Umjesto toga koristite podcrte za odvajanje naziva shema, tablica ili polja.
  • Za nove tablice preferirajte InnoDB u odnosu na MyISAM, jer InnoDB podržava transakcije, zaključavanje na razini redaka i strane ključeve.

Metoda upita je dovršena. Druga ruta dolazi do iste baze podataka iz vizualnog modela umjesto ručno pisanog SQL-a.

Kako stvoriti MySQL Dijagram ER radne ploče za napredno inženjerstvo

MySQL Radna tezga ima pomoćne programe koji podržavaju napredni inženjering. Prednji inženjering je tehnički izraz koji opisuje proces automatsko prevođenje logičkog modela u fizičku implementaciju.

Stvorili smo ER dijagram u našem ER modeliranje lekcija. Sada ćemo koristiti taj ER model za generiranje SQL skripti koje će stvoriti našu bazu podataka.

Kreiranje MyFlix baze podataka iz MyFlix ER modela

Korak 1) Otvorite ER model MyFlix baze podataka koju ste ranije stvorili.

Korak 2) Odaberite prednjeg inženjera

Kliknite na izbornik Baza podataka i odaberite Naprijed inženjer.

Odaberite prednjeg inženjera u MySQL Radna tezga

Korak 3) Mogućnosti povezivanja

Sljedeći prozor vam omogućuje povezivanje s instancom MySQL poslužitelj. Kliknite padajući popis pohranjenih veza i odaberite lokalni host. Kliknite Izvrši.

Opcije povezivanja u čarobnjaku za inženjere za daljnje povezivanje

Korak 4) Odaberite opcije prikazane u nastavku

U čarobnjaku koji se pojavi odaberite opcije prikazane u nastavku. Kliknite Dalje.

Opcije za inženjering unaprijed za MyFlix bazu podataka

Korak 5) Ostavite zadane postavke i kliknite Dalje

Sljedeći zaslon prikazuje sažetak objekata u našem EER dijagramu. Naša MyFlix baza podataka ima 5 tablica. Ostavite zadane odabire i kliknite Dalje.

Sažetak objekata na MyFlix EER dijagramu

Korak 6) Revtj. SQL skriptu

Donji prozor prikazuje pregled SQL skripte koja stvara našu bazu podataka. Spremite skriptu u *.sql datoteku ili je kopirajte u međuspremnik, a zatim kliknite Dalje.

Pregled generiranog SQL skripta

Korak 7) Potvrdite napredak

Donji prozor se pojavljuje nakon što je baza podataka kreirana na odabranom MySQL instanca poslužitelja. Tablice iz ER modela sada fizički postoje na poslužitelju.

Prozor napretka potvrđivanja unaprijednog inženjeringa

Priložena je baza podataka zajedno s lažnim podacima. Ovu bazu podataka koristit ćemo u lekcijama koje slijede. Jednostavno je uvezite u MySQL Radni stol za početak.

Kliknite ovdje za preuzimanje MyFlixDB

Pitanja i odgovori

Nema razlike u MySQL. CREATE SCHEMA je alias za CREATE DATABASE, a oba grade isti objekt. U drugim sustavima, kao što su Oracle, shema i baza podataka ostaju odvojeni koncepti.

Pokrenite DROP DATABASE IF EXISTS filmove; s klijenta ili s MySQL Radna tezgaNaredba trajno briše bazu podataka i svaku tablicu u njoj, stoga prvo napravite sigurnosnu kopiju.

Računu je potrebna privilegija CREATE na globalnoj razini. Administratori je dodjeljuju s GRANT CREATE ON *.* TO 'user'@'localhost';. Bez te privilegije, poslužitelj vraća grešku odbijen pristup.

Da. AI asistenti pretvaraju jednostavan opis vaših entiteta u skripte CREATE TABLE s ključevima i tipovima podataka. Uvijek pregledajte generirane tipove, duljine i ograničenja prije pokretanja skripte na produkcijskom poslužitelju.

Značajke umjetne inteligencije u modernim klijentima baza podataka čitaju vaše ER dijagram ili povijest upita i predložiti ispravke normalizacije, kandidate za indeksiranje i ispravke tipova podataka. Prijedlozi ubrzavaju preglede dizajna, ali čovjek i dalje odobrava svaku promjenu.

Sažmite ovu objavu uz: