Które zapytanie wybierze z tabeli klient nazwiska zaczynające się na literę „Z” (o dowolnej długości)?
Dobrze.
LIKE 'Z%' = „Z” + dowolny ciąg.Źle. Błędny operator i znaki wzorca.
Źle.
= porównuje DOSŁOWNIE, a ? nie jest tu wieloznacznikiem.Źle.
'Z_%' wymaga JESZCZE jednego znaku po „Z”.Wyszukiwanie po fragmencie tekstu wymaga operatora
LIKE i znaków wieloznacznych. Tu potrzebujemy nazwisk zaczynających się na „Z” o dowolnej dalszej części, czyli wzorca 'Z%', gdzie % zastępuje dowolny ciąg (także pusty): SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%';. Dlatego ta kwerenda jest poprawna.Pozostałe zapytania nie zadziałają jak trzeba. Operator
= porównuje DOSŁOWNIE, a 'Z?' i 'Z_?' nie są poprawnymi wzorcami SQL (znak ? nic tu nie znaczy). Wzorzec 'Z_%' zawiera _ - dokładnie jeden dowolny znak - więc wymagałby co najmniej dwóch liter i wykluczyłby samo „Z”. Pasuje tylko LIKE 'Z%'.