Kontynuacja poprzednich zajęć - zapytania update i delete

Kontynuacja poprzednich zajęć - zapytania update i delete

UPDATE

Polecenie UPDATE jest używane do modyfikowania istniejących danych w tabeli. Umożliwia zaktualizowanie wartości w jednej lub wielu kolumnach.

Składnia:

UPDATE nazwa_tabeli
SET kolumna1 = wartość1, kolumna2 = wartość2, ...
WHERE warunek;

Przykład:

UPDATE Pracownicy
SET Imie = 'Anna Maria'
WHERE ID = 1;

Ciekawe informacje:

  • Klauzula WHERE jest kluczowa, ponieważ określa, które rekordy mają być zaktualizowane. Jeśli zostanie pominięta, wszystkie rekordy w tabeli zostaną zaktualizowane.
  • Możemy używać funkcji i wyrażeń w klauzuli SET, aby obliczać nowe wartości dla kolumn.

Ćwiczenia:

  • Ćwiczenie 1: Zaktualizuj rekord w tabeli Studenci, aby dla ID = 1 Imię było zmienione na 'Janusz'.

  • Ćwiczenie 2: Zaktualizuj tabelę Kursy, aby LiczbaGodzin dla kursu o KodKursu = 'CS101' była zmieniona na 35.

  • Ćwiczenie 3: Zaktualizuj tabelę Zakupy, aby Cena dla produktu o ID = 1 była zmieniona na 2899.99.

  • Ćwiczenie 4: Zaktualizuj tabelę Pracownicy, aby Stanowisko dla pracownika o ID = 1 było zmienione na 'Dyrektor'.

DELETE

Polecenie DELETE jest używane do usuwania rekordów z tabeli. Możemy usunąć jeden lub więcej rekordów w zależności od określonych warunków.

Składnia:

DELETE FROM nazwa_tabeli
WHERE warunek;

Przykład:

DELETE FROM Pracownicy
WHERE ID = 1;

Ciekawe informacje:

  • Podobnie jak w przypadku UPDATE, klauzula WHERE jest istotna. Bez niej wszystkie rekordy w tabeli zostaną usunięte.
  • SQL nie obsługuje bezpośredniego przywracania usuniętych danych, dlatego warto zachować ostrożność podczas usuwania rekordów.

Ćwiczenia:

  • Ćwiczenie 1: Usuń rekord z tabeli Studenci, gdzie ID = 1.

  • Ćwiczenie 2: Usuń rekord z tabeli Kursy, gdzie KodKursu = 'CS102'.

  • Ćwiczenie 3: Usuń wszystkie rekordy z tabeli Zakupy, gdzie DataZakupu jest wcześniejsza niż '2024-09-01'.

  • Ćwiczenie 4: Usuń wszystkie rekordy z tabeli Pracownicy, gdzie DataZatrudnienia jest starsza niż '2023-12-31'.