Wielkość… ma znaczenie.

Oczywiście wielkość znaków. Ale też nie zawsze.

W przypadku baz oracle mamy nieco większą dowolność:

-- taki wpis będzie poprawny
select KOLUMNA from TABELKA
-- taki wpis też będzie poprawny
select kolumna from tabelka
-- a nawet taki
sElEcT KOlUMna fROm tAbElKa

Dla MySQL – niestety już nie, jeśli nazwiemy obiekt tAbElkA – to w każdym odniesieniu musimy użyć dokładnie takiej nazwy.

Czasem zdarza się, że nazywamy obiekt w sposób identyczny jak jedno ze słów kluczowych. Baza pozwala na stworzenie tabelki o nazwie SELECT albo WHERE – nie ma najmniejszego problemu.

Zapytanie w takim wypadku musi jednak wyglądać następująco:

SELECT * FROM "SELECT"

Użycie literału jest wymagane. Dodatkowo – w momencie kiedy ujmujemy nazwę w cudzysłów – wielkość znaków zaczyna mieć znaczenie także w bazie Oracle.

Identyczna sytuacja ma miejsce w przypadku warunków, poniżej dwa różne warunki:

-- warunek 1
select * from tabelka WHERE kolumna = 'Test'
-- warunek 2
select * from tabelka WHERE kolumna = 'test'

Oczywiście zawsze możemy napisać warunek, który zignoruje wielkość znaków (przykład dla baz Oracle):

select * from tabelka where upper(kolumna) = 'TEST'

Należy jednak pamiętać, że jeśli kolumna jest indeksowana – baza nie skorzysta z indeksu w momencie kiedy najpierw przekształcimy kolumnę na wielkie litery…

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>