Aby stworzyć tabelę w bazie danych, należy zastosować polecenie SQL
A.
PLUS TABLE
B.
ADD TABLE
C.
CREATE TABLE
D.
NEW TABLE
Pytanie z egzaminu CKE, czerwiec 2015 (arkusz E.14-X-15.05).
Polecenie CREATE TABLE należy do grupy instrukcji DDL, czyli Data Definition Language. Służy ono do definiowania struktury bazy danych, a konkretnie do utworzenia nowej tabeli wraz z jej kolumnami, typami danych i ograniczeniami. W praktyce nie wystarczy tylko napisać CREATE TABLE, bo zwykle trzeba jeszcze podać nazwę tabeli oraz opis pól, np. CREATE TABLE uczniowie (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50));. Taka instrukcja mówi silnikowi bazy danych, że ma utworzyć tabelę uczniowie, w której id będzie kluczem głównym, a imię i nazwisko będą tekstami o określonej długości. Moim zdaniem to jedna z podstawowych komend SQL, którą trzeba kojarzyć od razu, bo bez tabel nie ma gdzie sensownie przechowywać rekordów. Dobrą praktyką jest dobieranie konkretnych typów danych, ustawianie kluczy głównych, używanie ograniczeń NOT NULL tam, gdzie dane są wymagane, oraz trzymanie się czytelnego nazewnictwa tabel i kolumn. W większych projektach takie polecenia często zapisuje się w migracjach, żeby struktura bazy była wersjonowana i łatwa do odtworzenia na innym serwerze.
W SQL do tworzenia tabel nie używa się przypadkowych angielskich słów, nawet jeśli brzmią logicznie. Język SQL ma określoną składnię i zestaw słów kluczowych, a operacje związane ze strukturą bazy danych należą do DDL. Dlatego poprawną formą jest CREATE TABLE, a nie konstrukcje typu PLUS TABLE, NEW TABLE czy ADD TABLE. Słowo PLUS może kojarzyć się z dodawaniem, ale w SQL nie pełni roli polecenia tworzącego obiekty bazy. Może wystąpić co najwyżej jako operator dodawania w wyrażeniach liczbowych, zależnie od systemu, ale nie jako instrukcja administracyjna. NEW bywa spotykane w innych językach programowania, na przykład przy tworzeniu obiektów, więc łatwo się tu zasugerować programowaniem obiektowym. Baza danych jednak nie tworzy tabel przez NEW TABLE, tylko przez formalną instrukcję CREATE TABLE. Z kolei ADD występuje w SQL w innych kontekstach, na przykład przy ALTER TABLE ADD COLUMN, czyli przy modyfikowaniu już istniejącej tabeli przez dodanie kolumny. To jest częsty błąd myślowy: skoro add znaczy dodaj, to może doda tabelę. No właśnie nie do końca. W bazach danych ważne jest rozróżnienie między utworzeniem nowego obiektu a zmianą istniejącego obiektu. CREATE tworzy, ALTER modyfikuje, DROP usuwa. Z mojego doświadczenia najlepiej zapamiętać to jako prostą zasadę: gdy powstaje nowa tabela od zera, zaczynamy od CREATE TABLE, a potem dopiero podajemy nazwę, kolumny, typy danych oraz ograniczenia, takie jak PRIMARY KEY, NOT NULL czy UNIQUE.