UPDATE - modyfikacja danych
Aktualizacja danych jest jedną z kluczowych operacji w zarządzaniu bazami danych. Pozwala na zmianę istniejących rekordów w tabelach, co jest niezbędne w dynamicznym środowisku biznesowym. W systemach bazodanowych, takich jak Microsoft SQL Server (MS SQL) istnieje specjalne polecenie UPDATE, które umożliwia dokonywanie takich zmian.
Składnia Polecenia UPDATE w MS SQL
Polecenie UPDATE w MS SQL służy do modyfikacji istniejących rekordów w tabelach. Jego składnia jest względnie prosta i wygląda następująco:
UPDATE nazwa_tabeli
SET kolumna1 = wartość1, kolumna2 = wartość2, ...
WHERE warunek;
nazwa_tabeli: Określa nazwę tabeli, w której chcemy dokonać aktualizacji.kolumna1 = wartość1, kolumna2 = wartość2, ...: Określa konkretne kolumny, które chcemy zaktualizować, oraz ich nowe wartości.WHERE warunek: Jest opcjonalnym elementem, który pozwala na określenie warunku, który musi być spełniony przez rekordy, aby zostały zaktualizowane. Jeśli ten fragment jest pominięty, wszystkie rekordy w tabeli zostaną zaktualizowane.
Przykładowe Zastosowania Polecenia UPDATE
1. Aktualizacja Danych o Autorze
Załóżmy, że chcemy zaktualizować datę urodzenia autora w tabeli Authors. Przykładowo, zmieniamy datę urodzenia dla autora o identyfikatorze 3 na 1980-05-15.
UPDATE Authors
SET BirthDate = '1980-05-15'
WHERE AuthorId = 3;
2. Zmiana Numeru Telefonu Użytkownika
Jeśli użytkownik zmienia numer telefonu, musimy zaktualizować ten szczegół w tabeli Users. Załóżmy, że użytkownik o identyfikatorze 2 zmienia numer telefonu na 123-456-789.
UPDATE Users
SET PhoneNumber = '123-456-789'
WHERE UserId = 2;
3. Modyfikacja Stanu Egzemplarza Książki
Jeśli stan egzemplarza książki się zmienia (na przykład w wyniku naprawy lub zniszczenia), możemy zaktualizować tę informację w tabeli Copies. Załóżmy, że zmieniamy stan egzemplarza o identyfikatorze 1 na "Not good"
UPDATE Copies
SET Condition = 'Not good'
WHERE CopyId = 1;
Aktualizacja z użyciem danych z innej tabeli
Czasami potrzebujemy zaktualizować dane w jednej tabeli na podstawie informacji z innej tabeli.
Przykładowo, jeżeli chcielibyśmy zmodyfikować powiązanie książki, z autorem na podstawie wartości AuthorId, to zamiast hard-codoania wartości AuthorId w zapytaniu UPDATE, możemy użyć zapytania FROM do pobrania wartości AuthorId z tabeli Authors i użyć jej w zapytaniu UPDATE.
UPDATE Books
SET AuthorId = a.AuthorId
FROM Authors a
WHERE Books.BookId = 2 AND a.FirstName = 'Stephen' AND a.LastName = 'King'
Zauważ, że w klauzuli FROM jesteśmy w stanie użyć alias, natomiast w UPDATE, juz nie, ale nadal możemy filtorwać wiersze z tabeli Books, w klauzuli WHERE, specyfikując kolumny pełną nazwą (tabela.kolumna).
Co więcej, jeżeli byłaby potrzeba połączyć wielu tabel, to również możemy wykorzystać klazulę JOIN, aby połączyć tabele, a następnie filtrować wiersze w klauzuli WHERE.
UPDATE, a ograniczenia
Wykonując polecenie UPDATE, nadal będą obowiązywały nas ograniczenia zdefiniowane w tabeli, podobnie jak to miało miejsce przy tworzeniu nowych wpisów. Przykładowo, na tabeli Genres mieliśmy ograniczenie, które wymagało, aby długość nazwy gatunku była większa niż 2 znaki. W poniższym przykładzie spróbujemy zmienić nazwę gatunku na taką, która przekracza to ograniczenie.
UPDATE Genres
SET Name = 'SF'
WHERE GenreId = 1
Podobny błąd dostaniemy również np. podczas ustawiania klucza obcego, który nie istnieje w tabeli, do której chcemy go przypisać.
UPDATE Books
SET AuthorId = 9999
WHERE BookId = 2
Podsumowanie
Polecenie UPDATE w MS SQL jest niezwykle przydatnym narzędziem do aktualizacji danych w bazach danych. Pozwala ono na skuteczną zmianę istniejących rekordów zgodnie z określonymi warunkami. Zrozumienie składni i zastosowań tego polecenia jest kluczowe dla skutecznego zarządzania danymi w środowisku SQL Server. Pamiętajmy jednak, żeby zawsze ostrożnie korzystać z tego rodzaju operacji, aby uniknąć przypadkowego uszkodzenia danych.