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 danych
  • nazwa_kolumny – nazwa kolumny w utworzonej tabeli
  • typ_danych – typ danych przechowywanych w kolumnie (poniżej najczęściej stosowane)
    • INT / INTEGER – liczby całkowite
    • BIGINT – duże liczby całkowite
    • FLOAT(x,y) / DOUBLE(x,y) / DECIMAL(x,y) / REAL(x,y) – liczby zmiennoprzecinkowe, przechowywane w postaci zależnej od parametrów x – łączna ilość cyfr w polu i y – ilość cyfr za przecinkiem
    • DATE – data w formacie YYYY-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 przez x, w przypadku braku parametru długość pola wynosi 1
    • VARCHAR / TEXT– pole tekstowe
    • TINYINT – bardzo małe liczby całkowite
    • BLOB – przechowuje dane binarne
  • parametry – parametry kolumny
    • NOT NULL – wartość tego pola nie może być pusta
    • NULL – wartość może być null’em – ustawienie domyślne
    • AUTO_INCREMENT – pole jest numerowane automatycznie
    • UNSIGNED – wartość nieujemna
    • DEFAULT – wartość domyśłna dla pola
    • PRIMARY KEY – klucz podstawowy tabeli, unikalne wartości
    • FOREIGN KEY (kolumna1) REFERENCES tabela2(kolumna2) – klucz obcy tabeli. Wartości zapisywane w tym polu – kolumna1 w tabeli1 muszą mieć swoje odpowiedniki w tabeli2 -> 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
  • imie:
    • pole tekstowe o długości 25 znaków -> CHAR(25)
    • pole nie może być puste -> NOT NULL
  • nazwisko:
    • pole tekstowe o długości 50 znaków -> CHAR(50)
    • pole nie może być puste -> NOT NULL
  • 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ć
  • data_zatrudnienia:
    • format pola data -> date
    • pole obowiązkowe -> NOT NULL
  • aktywny:
    • pole przyjmuje wartości 0 lub 1-> TINYINT
    • domyślnie pracownik aktywny -> DEFAULT 1
  • 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

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.