W jaki sposób wykonanie podanej kwerendy SQL wpłynie na tabelę pracownicy?
ALTER TABLE pracownicy MODIFY plec char(9);
Odpowiedzi
Informacja zwrotna
Odpowiedź jest poprawna, ponieważ polecenie ALTER TABLE zmienia istniejącą kolumnę w tabeli pracownicy. W szczególności, polecenie MODIFY plec char(9) modyfikuje typ danych kolumny plec na znakowy o stałej długości 9. Oznacza to, że każda wartość przechowywana w tej kolumnie będzie miała dokładnie 9 znaków (wypełnionych np. spacjami, jeśli wartość będzie krótsza). W praktyce zapewnia to jednolitą długość dla przechowywanych danych, co może być korzystne w przypadku, gdy wymagane jest zachowanie spójności długości, na przykład przy przechowywaniu kodów pocztowych lub identyfikatorów. Standardy projektowania baz danych zalecają używanie odpowiednich typów danych, aby zminimalizować przestrzeń dyskową oraz przyspieszyć operacje na danych. Warto zauważyć, że w przypadku kolumny char(9) nie można wprowadzić wartości dłuższej niż 9 znaków, co zapobiega niezgodnościom danych.
Wiele osób może mylnie zakładać, że polecenie SQL ALTER TABLE z instrukcją MODIFY dodaje nową kolumnę, co jest nieprawdziwe. W rzeczywistości, ta instrukcja wprowadza zmiany w już istniejącej kolumnie, a nie tworzy nowej. Pojęcie „dodawania kolumny” odnosi się do instrukcji ADD, a nie MODIFY. Kolejnym błędnym założeniem może być mylenie typów danych - istnieje tendencja do myślenia, że „zmienna długość” oznacza typ char, podczas gdy jest to charakterystyczne dla typu varchar. Typ char jest używany do przechowywania danych o stałej długości, co oznacza, że nawet jeśli przechowywana wartość jest krótsza niż zadana długość, system automatycznie wypełni pozostałe znaki spacjami. Zmiana typu danych na char(9) nie umożliwia przechowywania zmiennych długości danych, a użycie varchar w tym kontekście byłoby właściwsze, gdyby istniała potrzeba przechowywania danych o różnej długości. Wydaje się, że niektórzy mogą też źle interpretować pojęcie „zmiennej długości” i myśleć, że jest to coś, co można przypisać kolumnie typu char, co prowadzi do nieprawidłowych wniosków.