Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

Celowanie klauzulą WHERE - warunki w DML

Poznałeś już

INSERT
,
UPDATE
i
DELETE
. Teraz nauczę Cię precyzyjnego celowania - bo to klauzula
WHERE
decyduje, które zwoje zostaną zmienione lub usunięte.

Operatory porównania

W warunku

WHERE
porównujemy kolumnę z wartością. Najczęstsze operatory skryby:

  • =
    - równe (np.
    WHERE id = 5
    ),
  • >
    - większe niż (np.
    WHERE cena > 100
    ),
  • <
    - mniejsze niż (np.
    WHERE rok_wydania < 0
    ),
  • >=
    ,
    <=
    - większe/mniejsze lub równe,
  • <>
    (albo
    !=
    ) - różne od.
1UPDATE ksiazki
2SET dostepna = 0
3WHERE cena > 100;

To polecenie oznaczy jako niedostępne wszystkie książki droższe niż 100 - może to być jeden wiersz albo sto.

WHERE
obejmuje każdy pasujący zwój.

Łączenie warunków: AND i OR

Czasem jeden warunek to za mało. Skryba łączy je spójnikami:

  • AND - oba warunki muszą być spełnione naraz,
  • OR - wystarczy jeden z warunków.
1DELETE FROM ksiazki
2WHERE dostepna = 0 AND autor_id = 4;

To usunie tylko te książki, które są jednocześnie niedostępne i napisane przez autora numer 4. Gdybyśmy użyli

OR
, zniknęłyby książki spełniające którykolwiek z warunków - znacznie więcej zwojów!

Celuj świadomie

Im dokładniejszy

WHERE
, tym bezpieczniejsze polecenie. Zła wartość po
>
albo pomylone
AND
z
OR
mogą objąć setki wierszy, których nie chciałeś tknąć. Zanim wykonasz
UPDATE
lub
DELETE
, przeczytaj swój warunek na głos: "czy to dokładnie te wiersze, o które mi chodzi?".

Przejdź do CodeWorlds