Podsumowanie: w tym poradniku dowiesz się, jak używać polecenia SQL UPDATE do modyfikacji istniejących danych w tabeli.
Składnia polecenia SQL UPDATE
Oświadczenie UPDATE
zmienia istniejące dane w jednym lub więcej wierszach tabeli. Poniżej przedstawiono składnię polecenia UPDATE
:
1
2
3
4
5
6
7
|
UPDATE table
SET
column1 = new_value1,
column2 = new_value2,
…
WHERE
warunek;
|
Aby zaktualizować dane w tabeli, należy:
- Po pierwsze, określić nazwę tabeli, której dane chcemy zmienić, w klauzuli
UPDATE
. - Po drugie, przypisać nową wartość kolumnie, którą chcemy zaktualizować. W przypadku gdy chcesz zaktualizować dane w wielu kolumnach, każda para kolumna = wartość jest oddzielona przecinkiem (,).
- Po trzecie, określ, które wiersze chcesz zaktualizować w klauzuli WHERE. Klauzula
WHERE
jest opcjonalna. Jeśli pominiesz klauzulęWHERE
, wszystkie wiersze w tabeli zostaną zaktualizowane.
Silnik bazy danych wydaje komunikat określający liczbę dotkniętych wierszy po wykonaniu polecenia.
Przykłady instrukcjiSQL UPDATE
Przyjrzyjrzyjmy się kilku przykładom użycia instrukcji UPDATE
z tabelą employees
:
PrzykładSQL UPDATE jedna kolumna
Załóżmy, że Janet, która ma identyfikator pracownika 3, wychodzi za mąż, więc trzeba zmienić jej nazwisko w tabeli employees
.
Rekord Janet w Pracownicy przed aktualizacją wygląda następująco:
1
2
3
4
5
6
|
SELECT
employeeid, lastname, firstname
FROM
northwind_bk.employees
WHERE
employeeid = 3;
|
Następujące stwierdzenie zmienia nazwisko Janet z Levering na Hill:
1
2
3
4
5
|
UPDATE employees
SET
lastname = 'Hill’
WHERE
employeeID = 3;
|
Wykonaj ponownie powyższą instrukcję SELECT, aby zweryfikować zmianę:
SQL UPDATE wiele kolumn
Na przykład Janet przeprowadziła się do nowego domu, dlatego zmienił się jej adres. Teraz należy go zmienić w tabeli employees
za pomocą następującej instrukcji:
1
2
3
4
5
6
7
8
|
UPDATE employees
SET
address = '1300 Carter St’,
city = 'San Jose’,
postalcode = 95125,
region = 'CA’
WHERE
employeeID = 3;
|
SQL UPDATE wiele wierszy
Następujące UPDATE
oświadczenie zwiększa wynagrodzenie o 2% dla pracowników, których wynagrodzenie jest mniejsze niż 2000 $:
1
2
3
4
5
|
UPDATE employees
SET
salary = salary * 1.02
WHERE
salary < 2000;
|
Awans otrzymali ci pracownicy, których wynagrodzenie jest mniejsze niż 2K.
SQL UPDATE from SELECT
Następujące zapytanie wybiera handlowców, którzy odpowiadali za więcej niż 100 zamówień:
1
2
3
4
5
6
7
8
|
SELECT
employeeid, COUNT(orderid)
FROM
orders
WHERE
shippeddate IS NOT NULL
GROUP BY employeeid
HAVING COUNT(orderid) > 100;
|
Poniższe zapytanie zwiększa wynagrodzenie najlepszych sprzedawców o 5%. Idy najlepszych sprzedawców są dostarczane przez podzapytanie.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
UPDATE employees
SET
salary = salary * 1.05
WHERE
employeeid IN (SELECT
employeeid
FROM
(SELECT
employeeid, COUNT(orderid)
FROM
orders
WHERE
shippeddate IS NOT NULL
GROUP BY employeeid
HAVING COUNT(orderid) > 100) bestsalesperson)
|
W tym tutorialu, pokazaliśmy, jak używać polecenia SQL UPDATE do zmiany danych w jednym lub wielu wierszach tabeli.
- Czy ten poradnik był pomocny ?
- TakNie