CREATE TABLE – tworzenie tabel w SQL – Kurs SQL
Jednym z etapów tworzenia bazy danych jest utworzenie tabel. Służy do tego polecenie CREATE TABLE, którego składnia jest następująca:
CREATE TABLE nazwa_tabeli(nazwa_kolumny typ_danych parametry, ...);
gdzie poszczególne parametry oznaczją:
nazwa_tabeli
– to oczywiście nazwa tabeli, którą będziemy tworzyć w bazie danychnazwa_kolumny
– nazwa kolumny w utworzonej tabelityp_danych
– typ danych przechowywanych w kolumnie (poniżej najczęściej stosowane)INT
/INTEGER
– liczby całkowiteBIGINT
– duże liczby całkowiteFLOAT(x,y)
/DOUBLE(x,y)
/DECIMAL(x,y)
/REAL(x,y)
– liczby zmiennoprzecinkowe, przechowywane w postaci zależnej od parametrówx
– łączna ilość cyfr w polu iy
– ilość cyfr za przecinkiemDATE
– data w formacieYYYY-MM-DD
TIME
– czas w formacie:HH:MM:SS
DATETIME
– data i czas w formacie:YYYY-MM-DD HH:M:SS
TIMESTAMP(x)
– data i czas w formacie zależnym od parametru x, zakres:YY
–YYYYMMDDHHMSS
CHAR
/CHAR(x)
– pole tekstowe o długości określonej przezx
, w przypadku braku parametru długość pola wynosi 1VARCHAR
/TEXT
– pole tekstowe
TINYINT
– bardzo małe liczby całkowiteBLOB
– przechowuje dane binarne
parametry
– parametry kolumnyNOT NULL
– wartość tego pola nie może być pustaNULL
– wartość może być null’em – ustawienie domyślneAUTO_INCREMENT
– pole jest numerowane automatycznieUNSIGNED
– wartość nieujemnaDEFAULT
– wartość domyśłna dla polaPRIMARY KEY
– klucz podstawowy tabeli, unikalne wartości
FOREIGN KEY (kolumna1) REFERENCES tabela2(kolumna2)
– klucz obcy tabeli. Wartości zapisywane w tym polu –kolumna1
wtabeli1
muszą mieć swoje odpowiedniki wtabeli2
->kolumna2
Spójrzmy na prosty przykład utworzenia tabeli pracownicy
zawierającej pola o następujących właściwościach:
id
:- pole liczbowe ->
INT
- klucz główny tabeli ->
PRIMARY KEY
- unikalne id – pole o parametrze:
PRIMARY KEY
domyślnie jest unikalne, nie musimy nic dodawać - pole nie może być puste – pole o parametrze:
PRIMARY KEY
domyślnie nie może być puste
- pole liczbowe ->
imie
:- pole tekstowe o długości 25 znaków ->
CHAR(25)
- pole nie może być puste ->
NOT NULL
- pole tekstowe o długości 25 znaków ->
nazwisko
:- pole tekstowe o długości 50 znaków ->
CHAR(50)
- pole nie może być puste ->
NOT NULL
- pole tekstowe o długości 50 znaków ->
pesel
:- pole tekstowe o długości 11 znaków ->
CHAR(11)
- pole może być puste, jest to domyślne ustawienie, zatem nic nie musimy dodawać
- pole tekstowe o długości 11 znaków ->
data_zatrudnienia
:- format pola data ->
date
- pole obowiązkowe ->
NOT NULL
- format pola data ->
aktywny
:- pole przyjmuje wartości
0 lub 1
->TINYINT
- domyślnie pracownik aktywny ->
DEFAULT 1
- pole przyjmuje wartości
stawka_godzinowa
:- wartość zmiennoprzecinkowa, do dwóch miejsc po przecinku, maksymalna dopuszczalna wartość 999,99 ->
FLOAT(5,2)
- wartość nie może być ujemna ->
UNSIGNED
- pole musi zostać uzupełnione ->
NOT NULL
- wartość zmiennoprzecinkowa, do dwóch miejsc po przecinku, maksymalna dopuszczalna wartość 999,99 ->
Spójrzmy teraz na przykład gotowego zapytania SQL:
CREATE TABLE `pracownicy` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `imie` CHAR(25) NOT NULL, `nazwisko` CHAR(50) NOT NULL, `pesel` CHAR(11), `data_zatrudnienia` DATE NOT NULL, `aktywny` TINYINT NOT NULL DEFAULT 1, `stawka_godzinowa` FLOAT(3,2) UNSIGNED NOT NULL )
Więcej przykładów tworzenia tabel w języku SQL znajdziesz we wpisie: CREATE TABLE – przykłady tworzenia tabel dostępnym już niedługo.