Database
 sql >> Base de données >  >> RDS >> Database

MISE À JOUR SQL

MISE À JOUR SQL

L'instruction SQL UPDATE est utilisée à mettre à jour et modifier les enregistrements présents dans une base de données . Il est utilisé pour modifier les enregistrements déjà existants stockés dans les tables de la base de données. Cette commande est travaillée avec WHERE clause. La condition spécifiée dans l'instruction UPDATE est utilisée pour décider quelles colonnes ou lignes de la table seront affectées ou modifiées.

La commande UPDATE peut également être utilisée pour mettre à jour une table par une autre table. Il peut également être utilisé pour mettre à jour la date et l'heure d'une requête SQL.

JOINTURE DE MISE À JOUR SQL

L'instruction SQL UPDATE peut également être utilisée pour mettre à jour une table à l'aide d'une autre table connectée par une jointure. C'est ce qu'on appelle l'instruction SQL UPDATE JOIN.

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

Voici la syntaxe de base de l'instruction UPDATE utilisant la clause JOIN :

Exemple :

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'   

Commençons par créer la première table 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'   

Créons maintenant la deuxième table TAE2.

SELECT *
 FROM TAE1 
Col1 Col2 Col3
1 11 Premier
11 12 Deuxième
21 13 Troisième
31 14 Quatrième

Sortie :

Voyons maintenant le contenu de la table TAE2.

SELECT *
 FROM TAE2

Sortie :

Col1 Col2 Col3
1 21 Deux contre un
11 22 Deux-deux
21 23 Deux-trois
31 24 Deux-quatre

Maintenant, la requête suivante mettra à jour les lignes de TAE1 où la valeur de Col1 est 21 et 31 en utilisant la table TAE2 où il y a des lignes similaires et où Col1 est 21 et 31. Seuls les enregistrements correspondants de Col2 et Col3 de la table TAE1 seront mis à jour .

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

Sortie :

Col1 Col2 Col3
1 11 Premier
11 12 Deuxième
21 13 Deux-trois
31 14 Deux-quatre

Maintenant, si le contenu de la table TAE1 est vérifié, la sortie suivante sera obtenue.

Cependant, le contenu de TAE2 reste inchangé.

Col1 Col2 Col3
1 21 Deux contre un
11 22 Deux-deux
21 23 Deux-trois
31 24 Deux-quatre

Voici un exemple d'utilisation de la clause JOIN avec l'instruction UPDATE. Il a fusionné les deux tables ci-dessus.

DATE DE MISE À JOUR SQL

L'instruction SQL UPDATE DATE est utilisée pour mettre à jour le champ de date et d'heure dans SQL.

UPDATE table_name
 SET data_field = ‘data_value’ 
 WHERE conditions; 

Voici la syntaxe générale de la mise à jour du champ de date et d'heure dans SQL :

UPDATE table_name
 SET data_field = getdate(); 

Voici la syntaxe de mise à jour de la date avec la date actuelle dans SQL :

UPDATE table_name
 SET data_field = CURRENT_TIMESTAMP; 

Voici la syntaxe de mise à jour de la date et de l'heure avec la date et l'heure actuelles en SQL :

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

Voici la syntaxe de mise à jour de la date et de l'heure avec une date et une heure spécifiques en SQL :

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

Voici la syntaxe de mise à jour de la date avec une valeur spécifique lorsque le format de la date n'est pas connu :

Exemple :

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

Voici un exemple de mise à jour de la date sur plusieurs lignes dans l'Employé donné tableau.

Emp_ID Emp_Name Désignation Manager_ID DOJ Salaire Dept_ID
1 Emp1 Directeur 2021-07-11 45000 10
2 Emp2 Directeur 2021-07-11 40000 20
3 Emp3 Gestionnaire Emp1 2021-07-11 27000 10
4 Emp4 Gestionnaire Emp2 2021-10-08 25000 20
5 Emp5 Analyste Emp3 2021-07-11 20000 10
6 Emp6 Analyste Emp3 2021-10-08 18000 10
7 Emp7 Commis Emp3 2021-07-11 15000 10
8 Emp8 Vendeur Emp4 2021-09-09 14000 20
9 Emp9 Vendeur Emp4 2021-10-08 13000 20

Requête :

Sortie :

Emp_ID Emp_Name Désignation Manager_ID DOJ Salaire Dept_ID
1 Emp1 Directeur 2021-07-05 45000 10
3 Emp3 Gestionnaire Emp1 2021-07-05 27000 10
5 Emp5 Analyste Emp3 2021-07-05 20000 10
6 Emp6 Analyste Emp3 2021-07-05 18000 10
7 Emp7 Commis Emp3 2021-07-05 15000 10

Ainsi, la colonne DOJ pour tous les employés ayant Dept_ID 10 a été mise à jour.

Voici l'exemple de mise à jour de la date d'admission dans une table d'étudiants à l'aide de la fonction CAST :

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