AKTUALIZACJA SQL
Instrukcja SQL UPDATE jest wykorzystana do aktualizować i modyfikować rekordy obecne w bazie danych . Służy do zmiany już istniejących rekordów przechowywanych w tabelach w bazie danych. To polecenie działa razem z WHERE klauzula. Warunek określony w instrukcji UPDATE służy do decydowania, które kolumny lub wiersze tabeli zostaną zmienione lub zmienione.
Polecenia UPDATE można również użyć do aktualizacji tabeli o inną tabelę. Może być również używany do aktualizacji daty i godziny zapytania SQL.
DOŁĄCZENIE DO AKTUALIZACJI SQL
Instrukcja SQL UPDATE może być również wykorzystana do aktualizacji jednej tabeli przy użyciu innej tabeli, która jest połączona złączeniem. Jest to znane jako instrukcja SQL UPDATE JOIN.
UPDATE table1, table2, INNER JOIN table1 ON table1.column1 = table2.column1 SET table1.column1 = table2.column2 WHERE condition
Poniżej znajduje się podstawowa składnia instrukcji UPDATE z klauzulą JOIN:
Przykład:
CREATE TABLE TAE1 (Col1 INT, Col2 INT, Col3 VARCHAR (100)) INSERT INTO TAE1 (Col1, Col2, Col3) SELECT 1, 11, 'FIRST' UNION ALL SELECT 11,12, 'SECOND' UNION ALL SELECT 21, 13, 'THIRD' UNION ALL SELECT 31, 14, 'FOURTH'
Najpierw utwórzmy pierwszą tabelę TAE1.
CREATE TABLE TAE2 (Col1 INT, Col2 INT, Col3 VARCHAR (100)) INSERT INTO TAE2 (Col1, Col2, Col3) SELECT 1, 21, 'TWO-ONE' UNION ALL SELECT 11,22, 'TWO-TWO' UNION ALL SELECT 21, 23, 'TWO-THREE' UNION ALL SELECT 31, 24, 'TWO-FOUR'
Teraz utwórzmy drugą tabelę TAE2.
SELECT * FROM TAE1
Kol1 | Kol2 | Kol3 |
1 | 11 | Pierwszy |
11 | 12 | Drugi |
21 | 13 | Trzeci |
31 | 14 | Czwarty |
Wyjście:
Zobaczmy teraz zawartość tabeli TAE2.
SELECT * FROM TAE2
Wyjście:
Kol1 | Kol2 | Kol3 |
1 | 21 | Dwa-jeden |
11 | 22 | Dwa-dwa |
21 | 23 | Dwa-trzy |
31 | 24 | Dwa-cztery |
Teraz następujące zapytanie zaktualizuje wiersze TAE1, gdzie wartość Col1 wynosi 21 i 31, używając tabeli TAE2, gdzie istnieją podobne wiersze i gdzie Col1 to 21 i 31. Tylko odpowiadające rekordy Col2 i Col3 tabeli TAE1 zostaną zaktualizowane .
UPDATE TAE1 SET Col2 = TAE2.Col2, Col3 = TAE2.Col3 FROM TAE1 INNER JOIN TAE2 ON TAE1.Col1 = TAE2.Col1 WHERE TAE1.Col1 IN (21, 31);
Wyjście:
Kol1 | Kol2 | Kol3 |
1 | 11 | Pierwszy |
11 | 12 | Drugi |
21 | 13 | Dwa-trzy |
31 | 14 | Dwa-cztery |
Teraz, jeśli zawartość tabeli TAE1 jest zaznaczona, uzyskany zostanie następujący wynik.
Jednak zawartość TAE2 pozostaje niezmieniona.
Kol1 | Kol2 | Kol3 |
1 | 21 | Dwa-jeden |
11 | 22 | Dwa-dwa |
21 | 23 | Dwa-trzy |
31 | 24 | Dwa-cztery |
To jest przykład użycia klauzuli JOIN z instrukcją UPDATE. Połączył powyższe dwie tabele.
DATA AKTUALIZACJI SQL
Instrukcja SQL UPDATE DATE służy do aktualizacji pola daty i czasu w SQL.
UPDATE table_name SET data_field = ‘data_value’ WHERE conditions;
Poniżej znajduje się ogólna składnia aktualizowania pola daty i godziny w SQL :
UPDATE table_name SET data_field = getdate();
Poniżej znajduje się składnia aktualizowania daty o bieżącą datę w SQL :
UPDATE table_name SET data_field = CURRENT_TIMESTAMP;
Poniżej znajduje się składnia aktualizowania daty i godziny o bieżącą datę i godzinę w SQL:
UPDATE table_name SET data_field = ‘YYYY-MM-DD HH:MM:SS’;
Poniżej przedstawiono składnię aktualizowania daty i godziny o konkretną datę i godzinę w SQL:
UPDATE table_name SET data_field = CAST(‘date_value’ AS DATETIME);
Poniżej przedstawiono składnię aktualizowania daty o określoną wartość, gdy format daty nie jest znany:
Przykład:
UPDATE Employee SET DOJ = ‘2021-07-05’ WHERE Dept_ID = 10;
Poniżej znajduje się przykład aktualizacji daty w wielu wierszach u danego Pracownika tabela.
Emp_ID | Emp_Name | Oznaczenie | ID_kierownika | DOJ | Wynagrodzenie | ID_działu |
1 | Emp1 | Dyrektor | 2021-07-11 | 45000 | 10 | |
2 | Praca2 | Dyrektor | 2021-07-11 | 40000 | 20 | |
3 | Emp3 | Menedżer | Emp1 | 2021-07-11 | 27 000 | 10 |
4 | Emp4 | Menedżer | Praca2 | 2021-10-08 | 25000 | 20 |
5 | Emp5 | Analityk | Emp3 | 2021-07-11 | 20000 | 10 |
6 | Emp6 | Analityk | Emp3 | 2021-10-08 | 18000 | 10 |
7 | Emp7 | Urzędnik | Emp3 | 2021-07-11 | 15000 | 10 |
8 | Emp8 | Sprzedawca | Emp4 | 2021-09-09 | 14000 | 20 |
9 | Emp9 | Sprzedawca | Emp4 | 2021-10-08 | 13000 | 20 |
Zapytanie:
Wyjście:
Emp_ID | Emp_Name | Oznaczenie | ID_kierownika | DOJ | Wynagrodzenie | ID_działu |
1 | Emp1 | Dyrektor | 2021-07-05 | 45000 | 10 | |
3 | Emp3 | Menedżer | Emp1 | 2021-07-05 | 27 000 | 10 |
5 | Emp5 | Analityk | Emp3 | 2021-07-05 | 20000 | 10 |
6 | Emp6 | Analityk | Emp3 | 2021-07-05 | 18000 | 10 |
7 | Emp7 | Urzędnik | Emp3 | 2021-07-05 | 15000 | 10 |
W związku z tym zaktualizowano kolumnę DOJ dla wszystkich pracowników posiadających Dept_ID 10.
Poniżej znajduje się przykład aktualizacji daty przyjęcia w tabeli studenckiej za pomocą funkcji CAST:
UPDATE student
SET admission_date = CAST(‘2021-04-10’ AS DATETIME)
WHERE id = 42;