Jak utworzyć bazę danych w MySQL (Tworzyć MySQL Tabele)

⚡ Inteligentne podsumowanie

Tworzenie bazy danych w MySQL podąża dwiema sprawdzonymi ścieżkami: wykonaniem polecenia CREATE DATABASE lub wygenerowaniem schematów fizycznych z modelu ER za pomocą MySQL Inżynieria przyszłościowa stołu warsztatowego. Oba podejścia pozwalają uzyskać identyczne, gotowe do produkcji stoły.

  • 🗄️ Tworzenie bazy danych: Uruchom filmy CREATE DATABASE lub CREATE SCHEMA, które MySQL traktuje jako synonim.
  • 🛡️ Bezpieczne powtórki: Dodaj IF NOT EXISTS, aby powtarzający się skrypt pomijał tworzenie zamiast zgłaszać błąd duplikatu nazwy.
  • 🌐 Zestaw znaków: Wybierz utf8mb4 z utf8mb4_0900_ai_ci dla danych wielojęzycznych; latin1 z latin1_swedish_ci pasuje do starszych schematów obsługujących wyłącznie język angielski.
  • 🧱 Tworzenie tabeli: CREATE TABLE definiuje każdą nazwę pola, typ danych, klucz podstawowy i silnik pamięci masowej, zwykle InnoDB.
  • 🔢 Typy danych: Typy kolumn dzielą się na numeryczne, tekstowe, daty i godziny, a także warianty ENUM, SET, BOOL oraz binarne.
  • ⚙️ Inżynieria przyszłości: MySQL Workbench konwertuje zatwierdzony model ER na wykonywalne skrypty SQL i przesyła je na serwer produkcyjny.

Kroki tworzenia bazy danych w MySQL

Baza danych w MySQL to nazwany kontener dla tabel, widoków i powiązanych obiektów. Można go utworzyć na dwa sposoby:

1) Wykonując proste zapytanie SQL

2) Korzystając z inżynierii przyszłości w MySQL Workbench

As Początkujący SQL, przyjrzyjmy się najpierw metodzie zapytania.

Jak utworzyć bazę danych w MySQL

Oto jak utworzyć bazę danych w MySQL:

CREATE DATABASE to polecenie SQL używane do tworzenia bazy danych w MySQL.

Wyobraź sobie, że musisz utworzyć bazę danych o nazwie „filmy”. Możesz utworzyć bazę danych w MySQL wykonując następujące polecenie SQL.

CREATE DATABASE movies;

Uwaga: Można również użyć polecenia CREATE SCHEMA zamiast CREATE DATABASE.

To polecenie działa tylko raz. Ponowne jego uruchomienie powoduje błąd, więc poprawmy zapytanie, dodając więcej parametrów.

JEŚLI NIE ISTNIEJE

Pojedynczy MySQL Serwer może pomieścić wiele baz danych. Jeśli z serwera korzysta kilka osób, możesz spróbować utworzyć bazę danych o nazwie takiej jak istniejąca.

JEŚLI NIE ISTNIEJE instruuje MySQL serwer sprawdza, czy istnieje baza danych o tej samej nazwie przed jej utworzeniem. Baza danych jest tworzona tylko wtedy, gdy nazwa jest wolna; bez tej klauzuli MySQL wyrzuca błąd.

CREATE DATABASE IF NOT EXISTS movies;

Gdy nazwa bazy danych jest bezpieczna, następną decyzją jest, jak ją utworzyć. MySQL powinien przechowywać i porównywać tekst w nim zawarty.

Sortowanie i zestaw znaków

A zestaw znaków decyduje, jakie znaki może przechowywać kolumna, podczas gdy porównanie jest zestawem zasady stosowane w porównaniu i sortowanie. Oba można zdefiniować na czterech poziomach: serwera, bazy danych, tabeli i kolumny.

Wybór kolejności zależy od zestawu znaków. Na przykład zestaw znaków latin1 używa latin1_swedish_ci sortowanie, które jest szwedzką kolejnością bez uwzględniania wielkości liter.

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

W przypadku języków lokalnych, takich jak arabski lub chiński, wybierz Unicode utf8mb4 Zestaw znaków, który przechowuje wszystkie znaki Unicode, w tym emoji. W MySQL 8.0, utf8mb4 jest domyślnym zestawem znaków i utf8mb4_0900_ai_ci domyślne sortowanie.

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

Możesz znaleźć listę wszystkich zestawień i zestawów znaków w tym miejscu.

Listę istniejących baz danych możesz zobaczyć, uruchamiając następujące polecenie SQL.

SHOW DATABASES;

Mając już bazę danych, możesz dodać tabele, które będą zawierały rekordy.

Jak utworzyć tabelę w MySQL

Polecenie CREATE TABLE służy do tworzenia tabel w bazie danych.

Utwórz tabelę w MySQL

Jak pokazuje diagram, każda tabela należy do jednej bazy danych. Tabele są tworzone za pomocą UTWÓRZ TABELĘ oświadczenie, które ma następującą składnię.

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

TUTAJ

  • „CREATE TABLE” odpowiada za utworzenie tabeli w bazie danych.
  • „[IF NOT EXISTS]” jest opcjonalne i powoduje utworzenie tabeli tylko wtedy, gdy nie zostanie znaleziona pasująca nazwa tabeli.
  • „`fieldName`” to nazwa pola, a „typ danych” definiuje rodzaj przechowywanych w nim danych.
  • „[parametry opcjonalne]” to dodatkowe informacje o polu, takie jak „AUTO_INCREMENT” lub NOT NULL.
  • „Silnik pamięci masowej” zarządza tabelą, zwykle InnoDB, która obsługuje transakcje i klucze obce.

MySQL Utwórz przykład tabeli

Poniżej znajduje MySQL przykład utworzenia tabeli w bazie danych:

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;

Uwaga: prawidłowe MySQL słowo kluczowe to AUTO_INCREMENT z podkreśleniem. AUTOINCREMENT należy do SQLite i powoduje błąd składniowy w MySQL.

Każda kolumna zawiera określony typ danych, dlatego dokonuj ostrożnego wyboru: nie zaniżaj ani nie przeceniaj zakresu oczekiwanych danych.

MySQL Typy danych

Typy danych definiują charakter danych, które można przechowywać w określonej kolumnie tabeli.

MySQL ma 3 główne kategorie typów danych, mianowicie:

  1. Numeryczne
  2. Tekst
  3. Data / godzina

Numeryczne typy danych

Typy danych liczbowych służą do przechowywania wartości liczbowych. Bardzo ważne jest, aby upewnić się, że zakres danych mieści się między dolną a górną granicą wybranego typu danych liczbowych.

MAŁAINT( ) -128 do 127 w normie
0 do 255 BEZ PODPISU.
MAŁAINT( ) -32768 do 32767 w normie
0 do 65535 BEZ PODPISU.
ŚREDNI MIĘTOWY( ) -8388608 do 8388607 w normie
0 do 16777215 BEZ PODPISU.
LCAŁK( ) -2147483648 do 2147483647 w normie
0 do 4294967295 BEZ PODPISU.
DUŻY INT( ) -9223372036854775808 do 9223372036854775807 w normie
0 do 18446744073709551615 BEZ PODPISU.
FLOAT Mała przybliżona liczba ze zmiennym przecinkiem dziesiętnym.
PODWÓJNY( , ) Duża liczba ze zmiennym przecinkiem dziesiętnym.
DZIESIĘTNE( , ) Wartość DOUBLE zapisana jako ciąg znaków, z możliwością ustawienia stałego przecinka dziesiętnego. Wybór do przechowywania wartości walutowych.

Typy danych tekstowych

Jak sama nazwa kategorii typów danych wskazuje, służą one do przechowywania wartości tekstowych. Zawsze upewnij się, że długość danych tekstowych nie przekracza maksymalnej długości kolumny.

ZNAK( ) Stała sekcja o długości od 0 do 255 znaków.
WARCHAR( ) Sekcja zmienna o długości od 0 do 255 znaków.
MAŁYTEKST Ciąg o maksymalnej długości 255 znaków.
TEKST Ciąg o maksymalnej długości 65535 znaków.
KROPELKA Ciąg o maksymalnej długości 65535 znaków.
ŚREDNI TEKST Ciąg o maksymalnej długości 16777215 znaków.
ŚREDNIA BLOBA Ciąg o maksymalnej długości 16777215 znaków.
DŁUGITEKST Ciąg o maksymalnej długości 4294967295 znaków.
DŁUGI BLOB Ciąg o maksymalnej długości 4294967295 znaków.

Typy danych daty i godziny

Typy danych daty i czasu przechowują wartości kalendarza i zegara w ustalonym formacie, co zapewnia niezawodność sortowania i porównywania.

DATA RRRR-MM-DD
DATA GODZINA RRRR-MM-DD GG: MM: SS
ZNAK CZASU YYYYMMDDHHMMSS
CZAS GG:MM:SS

Inne typy danych

Oprócz powyższych istnieją pewne inne typy danych w MySQL.

WYLICZENIE Aby zapisać wartość tekstową wybraną z listy predefiniowanych wartości tekstowych
SET Służy także do przechowywania wartości tekstowych wybranych z listy predefiniowanych wartości tekstowych. Może mieć wiele wartości.
BOOL Synonim TINYINT(1), używany do przechowywania wartości logicznych
BINARY Podobnie jak CHAR; różnica polega na tym, że teksty są przechowywane w formacie binarnym.
WARBINARNE Podobnie jak VARCHAR; różnica polega na tym, że teksty są przechowywane w formacie binarnym.

Przyjrzyjmy się teraz zapytaniu tworzącemu tabelę, które wykorzystuje wszystkie typy danych. Przeanalizuj je i zidentyfikuj, jak każdy typ danych jest zdefiniowany w poniższym poleceniu „Utwórz tabelę”. MySQL przykład.

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;

Najlepsze praktyki tworzenia MySQL Baza danych

Oto kilka konwencji, które pomogą Ci zachować czytelność skryptów:

  • Słowa kluczowe SQL należy pisać wielkimi literami, np. „DROP SCHEMA IF EXISTS `MyFlixDB`;”
  • Wszystkie polecenia SQL należy kończyć średnikami.
  • Unikaj używania spacji w nazwach schematów, tabel i pól. Zamiast nich używaj podkreśleń do oddzielania nazw schematów, tabel i pól.
  • W przypadku nowych tabel lepiej wybrać InnoDB od MyISAM, ponieważ InnoDB obsługuje transakcje, blokowanie na poziomie wiersza i klucze obce.

Metoda zapytania jest kompletna. Druga ścieżka dociera do tej samej bazy danych z modelu wizualnego, a nie ręcznie napisanego kodu SQL.

Jak stworzyć MySQL Schemat ER warsztatu inżynierskiego

MySQL Workbench posiada narzędzia wspierające inżynierię przyszłości. Inżynieria przyszłości jest terminem technicznym opisującym proces automatyczne tłumaczenie modelu logicznego na implementację fizyczną.

Stworzyliśmy Schemat ER w naszym Modelowanie oddziału ratunkowego Lekcja. Teraz użyjemy tego modelu ER do wygenerowania skryptów SQL, które utworzą naszą bazę danych.

Tworzenie bazy danych MyFlix z modelu MyFlix ER

Krok 1) Otwórz model ER bazy danych MyFlix które stworzyłeś wcześniej.

Krok 2) Wybierz inżyniera przyszłości

Kliknij menu Baza danych i wybierz opcję Forward Engineer.

Wybierz inżyniera do przodu w MySQL Workbench

Krok 3) Opcje połączenia

Następne okno umożliwia połączenie się z instancją MySQL Serwer. Kliknij listę rozwijaną zapisanych połączeń i wybierz hosta lokalnego. Kliknij Wykonaj.

Opcje połączenia w kreatorze inżyniera forward

Krok 4) Wybierz opcje pokazane poniżej

Wybierz opcje pokazane poniżej w wyświetlonym kreatorze. Kliknij Dalej.

Opcje inżynierii do przodu dla bazy danych MyFlix

Krok 5) Zachowaj domyślne ustawienia i kliknij Dalej

Następny ekran pokazuje podsumowanie obiektów na naszym diagramie EER. Nasza baza danych MyFlix zawiera 5 tabel. Zachowaj ustawienia domyślne i kliknij Dalej.

Podsumowanie obiektów na diagramie EER MyFlix

Krok 6) Revspójrz na skrypt SQL

Poniższe okno wyświetla podgląd skryptu SQL, który tworzy naszą bazę danych. Zapisz skrypt w pliku *.sql lub skopiuj go do schowka, a następnie kliknij Dalej.

Podgląd wygenerowanego skryptu SQL

Krok 7) Zatwierdź postęp

Poniższe okno pojawia się po utworzeniu bazy danych na wybranym urządzeniu MySQL instancji serwera. Tabele z modelu ER znajdują się teraz fizycznie na serwerze.

Okno postępu zatwierdzania inżynierii do przodu

Dołączona jest baza danych wraz z danymi fikcyjnymi. Będziemy z niej korzystać w kolejnych lekcjach. Wystarczy ją zaimportować. MySQL Warsztat do rozpoczęcia pracy.

Kliknij tutaj, aby pobrać MyFlixDB

FAQ

Nie ma różnicy w MySQL. CREATE SCHEMA to alias dla CREATE DATABASE, a oba polecenia budują ten sam obiekt. W innych systemach, takich jak Oracle, schemat i baza danych pozostają odrębnymi pojęciami.

Uruchom DROP DATABASE IF EXISTS filmy; z klienta lub z MySQL WorkbenchPolecenie trwale usuwa bazę danych i każdą tabelę w niej zawartą, dlatego najpierw należy wykonać kopię zapasową.

Konto wymaga uprawnienia CREATE na poziomie globalnym. Administratorzy przyznają je poleceniem GRANT CREATE ON *.* TO 'user'@'localhost';. Bez tego uprawnienia serwer zwraca błąd odmowy dostępu.

Tak. Asystenci AI przekształcają prosty opis encji w skrypty CREATE TABLE z kluczami i typami danych. Zawsze sprawdzaj wygenerowane typy, długości i ograniczenia przed uruchomieniem skryptu na serwerze produkcyjnym.

Funkcje sztucznej inteligencji w nowoczesnych bazach danych umożliwiają klientom czytanie Schemat ER lub historię zapytań i sugerować poprawki normalizacyjne, kandydatów indeksowych i korekty typów danych. Sugestie przyspieszają przegląd projektu, ale człowiek nadal zatwierdza każdą zmianę.

Podsumuj ten post następująco: