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;