Co opisuje polecenie
CREATE TABLE produkty (id INT PRIMARY KEY, nazwa VARCHAR(50) NOT NULL);
A. tabelę produkty z 50 kolumnami tekstowymi o nazwie nazwa
Źle. 50 to maksymalna długość tekstu w jednej kolumnie, nie liczba kolumn.
B. tabelę produkty z kluczem głównym id i wymaganą kolumną tekstową nazwa
Dobrze. id jest kluczem głównym, a nazwa to wymagany tekst do 50 znaków.
C. tabelę produkty, w której kolumna nazwa może pozostać pusta (NULL)
Źle. NOT NULL zabrania pustej wartości w kolumnie nazwa.
D. tabelę produkty bez klucza głównego
Źle. Kolumna id jest oznaczona jako PRIMARY KEY, więc klucz główny istnieje.
Polecenie tworzy tabelę produkty z kluczem głównym id i wymaganą kolumną tekstową nazwa.
PRIMARY KEY przy kolumnie id oznacza, że jej wartości muszą być unikalne i nie mogą być puste - jednoznacznie identyfikują każdy wiersz. VARCHAR(50) NOT NULL to tekst do 50 znaków, którego nie wolno pominąć przy wstawianiu rekordu. Do zapamiętania: NOT NULL zakazuje pustej wartości, PRIMARY KEY łączy unikalność z NOT NULL, a liczba w nawiasie przy VARCHAR to długość tekstu. Często dodaje się AUTO_INCREMENT, aby serwer sam nadawał kolejne numery id. Tabela może mieć tylko jeden klucz główny, choć może on obejmować kilka kolumn.Każdy z błędnych opisów źle odczytuje jedno słowo z definicji.
NOT NULL przy kolumnie nazwa oznacza dokładnie odwrotność opisu, w którym kolumna może pozostać pusta: próba wstawienia wiersza bez nazwy zakończy się błędem. Liczba 50 w VARCHAR(50) to maksymalna długość tekstu w jednej kolumnie, a nie liczba kolumn. Tabela ma też klucz główny - stoi przy kolumnie id jako PRIMARY KEY, więc opis tabeli bez klucza się nie zgadza. Klucz można zapisać przy kolumnie albo osobno, na końcu listy, jako PRIMARY KEY (id); oba zapisy działają tak samo. Prawidłowy opis obejmuje oba elementy: klucz główny id i wymaganą kolumnę nazwa. Czytaj definicję kolumna po kolumnie: nazwa, typ, ograniczenia. W ten sposób łatwo wychwycisz każde słowo zmieniające znaczenie, takie jak NOT NULL, UNIQUE czy DEFAULT.