Które ze stwierdzeń prawidłowo charakteryzuje zdefiniowaną tabelę?
CREATE TABLE osoby (imie VARCHAR(20), wiek INTEGER);
A. Tabela osoby ma dwie kolumny: tekstową imie i liczbową wiek.
Dobrze. Dwie definicje kolumn: imie typu VARCHAR(20) i wiek typu INTEGER.
B. Kolumna wiek przechowuje napisy o długości do 20 znaków.
Źle. Kolumna wiek ma typ INTEGER, a tekst do 20 znaków przechowuje kolumna imie.
C. Tabela osoby ma jedną kolumnę tekstową o długości do 20 znaków.
Źle. Pomija kolumnę wiek, zdefiniowaną po przecinku.
D. Tabela osoby ma 20 kolumn tekstowych i jedną kolumnę liczbową.
Źle. Liczba 20 to maksymalna długość tekstu, a nie liczba kolumn.
Tabela osoby ma dwie kolumny: tekstową imie i liczbową wiek. W
CREATE TABLE po nazwie tabeli w nawiasie podaje się listę kolumn oddzielonych przecinkami, a każda kolumna ma nazwę i typ. VARCHAR(20) to tekst o zmiennej długości, najwyżej 20 znaków, a INTEGER to liczba całkowita. Liczba w nawiasie przy typie nie oznacza liczby kolumn, tylko parametr typu. Do zapamiętania: ile par „nazwa typ” rozdzielonych przecinkami, tyle kolumn. Strukturę utworzonej tabeli pokaże polecenie DESCRIBE osoby;. W praktyce dodaje się jeszcze kolumnę id INT AUTO_INCREMENT PRIMARY KEY, aby każdy wiersz miał unikalny identyfikator.Łatwo potraktować liczbę w nawiasie jako liczbę kolumn, a to tylko parametr typu.
VARCHAR(20) określa maksymalną długość tekstu w jednej kolumnie, więc nie tworzy 20 kolumn. Opis z jedną kolumną tekstową pomija drugą definicję po przecinku: wiek INTEGER to pełnoprawna, osobna kolumna. Twierdzenie, że kolumna wiek przechowuje napisy, przypisuje jej typ sąsiedniej kolumny - wiek ma typ INTEGER, czyli liczbę całkowitą, a tekst do 20 znaków trafia do kolumny imie. Prawidłowy opis wynika z policzenia definicji: dwie pary nazwa i typ dają dwie kolumny, tekstową imie oraz liczbową wiek. Każda kolumna ma własny typ, niezależny od pozostałych. Przy innych typach jest podobnie: w DECIMAL(8,2) liczby w nawiasie oznaczają liczbę cyfr i miejsc po przecinku, a nie kolumny. Liczbę kolumn zawsze wyznacza się z liczby definicji oddzielonych przecinkami.