SQL-UPDATE
De SQL UPDATE-instructie wordt gebruikt naar update en wijzig de aanwezige records in een database . Het wordt gebruikt om de reeds bestaande records die zijn opgeslagen in de tabellen in de database te wijzigen. Dit commando werkt samen met WHERE clausule. De voorwaarde die is opgegeven in de UPDATE-instructie wordt gebruikt om te beslissen welke kolommen of rijen van de tabel worden beïnvloed of gewijzigd.
Het UPDATE-commando kan ook worden gebruikt om een tabel door een andere tabel bij te werken. Het kan ook worden gebruikt om de datum en tijd van een SQL-query bij te werken.
SQL UPDATE DOE MEE
De SQL UPDATE-instructie kan ook worden gebruikt om een tabel bij te werken met een andere tabel die via een join is verbonden. Dit staat bekend als de SQL UPDATE JOIN-instructie.
UPDATE table1, table2, INNER JOIN table1 ON table1.column1 = table2.column1 SET table1.column1 = table2.column2 WHERE condition
Het volgende is de basissyntaxis van de UPDATE-instructie met behulp van de JOIN-component:
Voorbeeld:
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'
Laten we eerst de eerste tabel TAE1 maken.
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'
Laten we nu de tweede tabel TAE2 maken.
SELECT * FROM TAE1
Kol1 | Kol2 | Kol3 |
1 | 11 | Eerste |
11 | 12 | Tweede |
21 | 13 | Derde |
31 | 14 | Vierde |
Uitvoer:
Laten we nu eens kijken naar de inhoud van de tabel TAE2.
SELECT * FROM TAE2
Uitvoer:
Kol1 | Kol2 | Kol3 |
1 | 21 | Twee-een |
11 | 22 | Twee-twee |
21 | 23 | Twee-drie |
31 | 24 | Twee-vier |
Nu zal de volgende query de rijen van TAE1 bijwerken waar de waarde van Col1 21 en 31 is met behulp van de tabel TAE2 waar vergelijkbare rijen zijn en waar Col1 21 en 31 is. Alleen de overeenkomstige records van Col2 en Col3 van de tabel TAE1 worden bijgewerkt .
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);
Uitvoer:
Kol1 | Kol2 | Kol3 |
1 | 11 | Eerste |
11 | 12 | Tweede |
21 | 13 | Twee-drie |
31 | 14 | Twee-vier |
Als nu de inhoud van de tabel TAE1 wordt gecontroleerd, wordt de volgende uitvoer verkregen.
De inhoud van TAE2 blijft echter ongewijzigd.
Kol1 | Kol2 | Kol3 |
1 | 21 | Twee-een |
11 | 22 | Twee-twee |
21 | 23 | Twee-drie |
31 | 24 | Twee-vier |
Dit is een voorbeeld van het gebruik van de JOIN-component met de UPDATE-instructie. Het heeft de bovenstaande twee tabellen samengevoegd.
SQL-UPDATEDATUM
De SQL UPDATE DATE-instructie wordt gebruikt om het datum- en tijdveld in SQL bij te werken.
UPDATE table_name SET data_field = ‘data_value’ WHERE conditions;
Het volgende is de algemene syntaxis van het bijwerken van het datum- en tijdveld in SQL :
UPDATE table_name SET data_field = getdate();
Het volgende is de syntaxis van de datum bijwerken met de huidige datum in SQL :
UPDATE table_name SET data_field = CURRENT_TIMESTAMP;
Het volgende is de syntaxis van het bijwerken van de datum en tijd met de huidige datum en tijd in SQL:
UPDATE table_name SET data_field = ‘YYYY-MM-DD HH:MM:SS’;
Het volgende is de syntaxis van het bijwerken van de datum en tijd met een specifieke datum en tijd in SQL:
UPDATE table_name SET data_field = CAST(‘date_value’ AS DATETIME);
Het volgende is de syntaxis van het bijwerken van de datum met een specifieke waarde wanneer het formaat van de datum niet bekend is:
Voorbeeld:
UPDATE Employee SET DOJ = ‘2021-07-05’ WHERE Dept_ID = 10;
Het volgende is een voorbeeld van het bijwerken van de datum in meerdere rijen in de gegeven Werknemer tafel.
Emp_ID | Emp_Name | Aanduiding | Manager_ID | DOJ | Salaris | Dept_ID |
1 | Emp1 | Directeur | 2021-07-11 | 45000 | 10 | |
2 | Emp2 | Directeur | 2021-07-11 | 40000 | 20 | |
3 | Emp3 | Beheerder | Emp1 | 2021-07-11 | 27000 | 10 |
4 | Emp4 | Beheerder | Emp2 | 2021-10-08 | 25000 | 20 |
5 | Emp5 | Analyst | Emp3 | 2021-07-11 | 20000 | 10 |
6 | Emp6 | Analyst | Emp3 | 2021-10-08 | 18000 | 10 |
7 | Emp7 | Bediende | Emp3 | 2021-07-11 | 15000 | 10 |
8 | Emp8 | Verkoper | Emp4 | 21-09-09 | 14000 | 20 |
9 | Emp9 | Verkoper | Emp4 | 2021-10-08 | 13000 | 20 |
Vraag:
Uitvoer:
Emp_ID | Emp_Name | Aanduiding | Manager_ID | DOJ | Salaris | Dept_ID |
1 | Emp1 | Directeur | 201-07-05 | 45000 | 10 | |
3 | Emp3 | Beheerder | Emp1 | 2021-07-05 | 27000 | 10 |
5 | Emp5 | Analyst | Emp3 | 2021-07-05 | 20000 | 10 |
6 | Emp6 | Analyst | Emp3 | 2021-07-05 | 18000 | 10 |
7 | Emp7 | Bediende | Emp3 | 2021-07-05 | 15000 | 10 |
Zo is de DOJ-kolom voor alle medewerkers met Dept_ID 10 bijgewerkt.
Het volgende is een voorbeeld van het bijwerken van de toelatingsdatum in een studententabel met behulp van de CAST-functie:
UPDATE student
SET admission_date = CAST(‘2021-04-10’ AS DATETIME)
WHERE id = 42;