Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych

Które ze stwierdzeń prawidłowo charakteryzuje zdefiniowaną tabelę?

CREATE TABLE dane (kolumna INTEGER(3));
A. Tabela posiada jedną kolumnę zawierającą trzyelementowe tablice.
B. Kolumny tabeli dane nazywają się: kolumna1, kolumna2, kolumna3.
C. Tabela o nazwie dane posiada trzy kolumny liczb całkowitych.
D. Tabela o nazwie dane posiada jedną kolumnę liczb całkowitych.

Pytanie z egzaminu CKE, wrzesień 2014 (arkusz E.14-X-14.08).

Instrukcja CREATE TABLE dane (kolumna INTEGER(3)); definiuje tabelę o nazwie dane i dokładnie jedną kolumnę o nazwie kolumna. Typ tej kolumny to liczba całkowita, czyli INTEGER. Zapis INTEGER(3) bywa trochę mylący, szczególnie w MySQL, bo liczba w nawiasie nie oznacza trzech osobnych kolumn ani tablicy z trzema elementami. W starszych wersjach MySQL była to tzw. szerokość wyświetlania, a nie ograniczenie wartości do trzech cyfr. Czyli baza nadal może przechowywać zwykłe liczby całkowite zgodnie z zakresem typu INTEGER. Moim zdaniem warto zapamiętać prostą zasadę: liczba kolumn wynika z liczby definicji oddzielonych przecinkami w nawiasie po nazwie tabeli. Gdyby tabela miała trzy kolumny, zapis wyglądałby raczej tak: CREATE TABLE dane (kolumna1 INTEGER, kolumna2 INTEGER, kolumna3 INTEGER);. W praktyce przy projektowaniu baz danych lepiej jasno nazywać kolumny i używać ograniczeń, np. NOT NULL, PRIMARY KEY albo CHECK, jeśli chcemy pilnować zakresu wartości. To jest zgodne z dobrymi praktykami SQL i pomaga uniknąć nieporozumień przy późniejszej pracy z rekordami.
W tym poleceniu łatwo dać się złapać na nawias przy INTEGER(3), ale trzeba rozdzielić dwie rzeczy: definicję struktury tabeli i parametry typu danych. Nazwy kolumn nie są generowane automatycznie przez bazę na podstawie liczby wpisanej w nawiasie. Jeżeli w definicji widzimy tylko jedną nazwę kolumny, czyli kolumna, to tabela ma jedną kolumnę. System bazodanowy nie dopisze sam kolumna1, kolumna2 i kolumna3, bo SQL tak nie działa. Każda kolumna musi być jawnie zadeklarowana, zwykle jako para: nazwa kolumny oraz typ danych. Częsty błąd myślowy polega też na traktowaniu INTEGER(3) jak informacji o liczbie pól w tabeli. Liczbę pól rozpoznaje się po kolejnych definicjach oddzielonych przecinkami, a nie po parametrze typu. Nie jest to również definicja trzyelementowej tablicy. W SQL tablice, jeżeli w ogóle są obsługiwane przez dany system, zapisuje się inaczej, na przykład w PostgreSQL można spotkać typ integer[], ale to już zależy od konkretnego silnika bazy. Zwykłe INTEGER(3) nie oznacza struktury złożonej. W wielu materiałach szkolnych przyjmuje się po prostu, że INTEGER oznacza liczbę całkowitą, a dopisek w nawiasie nie zmienia faktu, że mamy jedną kolumnę. Z mojego doświadczenia najlepiej czytać takie polecenie od zewnątrz: CREATE TABLE tworzy tabelę dane, a wewnątrz nawiasu znajduje się lista kolumn. Tutaj na tej liście jest tylko jedna pozycja, więc tabela przechowuje rekordy z jednym polem liczbowym.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.