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: