Database
 sql >> Database >  >> RDS >> Database

AGGIORNAMENTO SQL

AGGIORNAMENTO SQL

L'istruzione SQL UPDATE viene utilizzata a aggiorna e modifica i record presenti in un database . Viene utilizzato per modificare i record già esistenti archiviati nelle tabelle del database. Questo comando funziona insieme a WHERE clausola. La condizione specificata nell'istruzione UPDATE viene utilizzata per decidere quali colonne o righe della tabella verranno interessate o modificate.

Il comando UPDATE può essere utilizzato anche per aggiornare una tabella con un'altra tabella. Può essere utilizzato anche per aggiornare la data e l'ora di una query SQL.

ACCESSO ALL'AGGIORNAMENTO SQL

L'istruzione SQL UPDATE può essere utilizzata anche per aggiornare una tabella utilizzando un'altra tabella collegata da un join. Questa è nota come istruzione SQL UPDATE JOIN.

UPDATE table1, table2,
 INNER JOIN table1
 ON table1.column1 = table2.column1 
 SET table1.column1 = table2.column2
 WHERE condition

Quella che segue è la sintassi di base dell'istruzione UPDATE che utilizza la clausola JOIN:

Esempio:

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'   

Creiamo prima la prima tabella 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'   

Ora creiamo la seconda tabella TAE2.

SELECT *
 FROM TAE1 
Col1 Col2 Col3
1 11 Prima
11 12 Secondo
21 13 Terzo
31 14 Quarto

Risultato:

Vediamo ora il contenuto della tabella TAE2.

SELECT *
 FROM TAE2

Risultato:

Col1 Col2 Col3
1 21 Due uno
11 22 Due-due
21 23 Due-tre
31 24 Due-quattro

Ora la query seguente aggiornerà le righe di TAE1 dove il valore di Col1 è 21 e 31 utilizzando la tabella TAE2 dove sono presenti righe simili e dove Col1 è 21 e 31. Verranno aggiornati solo i record corrispondenti di Col2 e Col3 della tabella TAE1 .

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); 

Risultato:

Col1 Col2 Col3
1 11 Prima
11 12 Secondo
21 13 Due-tre
31 14 Due-quattro

Ora, se si verifica il contenuto della tabella TAE1, si otterrà il seguente output.

Tuttavia, il contenuto di TAE2 rimane invariato.

Col1 Col2 Col3
1 21 Due uno
11 22 Due-due
21 23 Due-tre
31 24 Due-quattro

Questo è un esempio di utilizzo della clausola JOIN con l'istruzione UPDATE. Ha unito le due tabelle precedenti.

DATA DI AGGIORNAMENTO SQL

L'istruzione SQL UPDATE DATE viene utilizzata per aggiornare il campo della data e dell'ora in SQL.

UPDATE table_name
 SET data_field = ‘data_value’ 
 WHERE conditions; 

Quella che segue è la sintassi generale dell'aggiornamento del campo data e ora in SQL :

UPDATE table_name
 SET data_field = getdate(); 

Quella che segue è la sintassi dell'aggiornamento della data con la data corrente in SQL :

UPDATE table_name
 SET data_field = CURRENT_TIMESTAMP; 

Quella che segue è la sintassi per aggiornare la data e l'ora con la data e l'ora correnti in SQL:

 UPDATE table_name
 SET data_field = ‘YYYY-MM-DD HH:MM:SS’;

Quella che segue è la sintassi per aggiornare la data e l'ora con una data e un'ora specifiche in SQL:

UPDATE table_name
 SET data_field = CAST(‘date_value’ AS DATETIME); 

Quella che segue è la sintassi per aggiornare la data con un valore specifico quando il formato della data non è noto:

Esempio:

UPDATE Employee
 SET DOJ = ‘2021-07-05’ 
 WHERE Dept_ID = 10; 

Quello che segue è un esempio di aggiornamento della data in più righe nel Dipendente specificato tabella.

Emp_ID Emp_Name Denominazione ID_gestore DOJ Stipendio ID_reparto
1 Emp1 Direttore 11-07-2021 45000 10
2 Emp2 Direttore 11-07-2021 40000 20
3 Emp3 Gestore Emp1 11-07-2021 27000 10
4 Emp4 Gestore Emp2 08-10-2021 25000 20
5 Emp5 Analista Emp3 11-07-2021 20000 10
6 Emp6 Analista Emp3 08-10-2021 18000 10
7 Emp7 Impiegato Emp3 11-07-2021 15000 10
8 Emp8 Commerciante Emp4 2021-09-09 14000 20
9 Emp9 Commerciante Emp4 08-10-2021 13000 20

Query:

Risultato:

Emp_ID Emp_Name Denominazione ID_gestore DOJ Stipendio ID_reparto
1 Emp1 Direttore 05-07-2021 45000 10
3 Emp3 Gestore Emp1 05-07-2021 27000 10
5 Emp5 Analista Emp3 05-07-2021 20000 10
6 Emp6 Analista Emp3 05-07-2021 18000 10
7 Emp7 Impiegato Emp3 05-07-2021 15000 10

Pertanto, la colonna DOJ per tutti i dipendenti con Dept_ID 10 è stata aggiornata.

Di seguito è riportato l'esempio di aggiornamento della data di ammissione in una tabella studenti utilizzando la funzione CAST:

UPDATE student
SET admission_date = CAST(‘2021-04-10’ AS DATETIME)
WHERE id = 42;