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

Comment mettre à jour une table dans Oracle

Ce tutoriel SQL fournit des explications, des exemples pour l'instruction Update dans oracle

L'instruction de mise à jour dans Oracle est utilisée pour mettre à jour les lignes existantes dans la table. Il s'agit d'une instruction DML. DML est un langage de manipulation de données. Nous pouvons utiliser cette instruction pour mettre à jour des lignes spécifiques, un ensemble de lignes ou toutes les lignes du tableau.

La syntaxe est donnée ci-dessous

Tableau :C'est le nom de la table qui doit être mis à jour
colonne  :c'est la colonne unique ou la colonne multiple du tableau qui doit être mise à jour
valeur :C'est la valeur de la colonne à mettre à jour. nous pouvons également utiliser une sous-requête pour obtenir cette valeur
Condition :C'est la condition where qui décide de ce que toutes les lignes seront mises à jour. Il peut être composé de noms de colonnes, de sous-requêtes d'expression et d'opérateurs de comparaison

Point important
1) L'instruction de mise à jour après l'achèvement indique le nombre de lignes mises à jour, sauf si vous avez émis des commentaires désactivés
2) Si aucune ligne n'est mise à jour, elle affichera 0 lignes mises à jour
3) Les modifications apportées sont visible dans votre session et il n'est pas visible pour une autre session dans la base de données oracle
4) Vous devez exécuter "commit ;" déclaration pour rendre les modifications permanentes dans la base de données ou "rollback ;" pour annuler les modifications effectuées
5) il est bon d'exécuter d'abord la même condition where avec select pour connaître le nombre de lignes et de lignes qui vont être mises à jour avant d'émettre l'instruction de mise à jour
6) Si vous ciblent des lignes uniques, utilisez la clé primaire dans oracle si possible

SQL> select * from emp where EMPNO=7844;

EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------------- ---------- ----------
DEPTNO
----------
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0
30

SQL> update emp set SAL=15000 where EMPNO=7844;

1 row updated.

SQL> select * from emp where EMPNO=7844;

EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------------- ---------- ----------
DEPTNO
----------
7844 TURNER SALESMAN 7698 08-SEP-81 15000 0
30

SQL> commit;

Commit complete.

Mettre à jour l'instruction à l'aide d'une sous-requête

Nous pouvons également utiliser une sous-requête dans l'instruction de mise à jour.

SQL> select * from emp;

EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------------- ---------- ----------
DEPTNO
----------
7902 FORD ANALYST 7566 03-DEC-81 3000
20

7934 MILLER CLERK 7782 23-JAN-82 1300
10

2 rows selected.

SQL> update emp set sal=(select sal from emp where empno=7934) where EMPNO=7902;

1 row updated.

SQL> select * from emp;

EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------------- ---------- ----------
DEPTNO
----------
7902 FORD ANALYST 7566 03-DEC-81 1300
20

7934 MILLER CLERK 7782 23-JAN-82 1300
10

2 rows selected.

SQL> commit;

Commit complete.

Déclaration de mise à jour sans clause where

Vous pouvez mettre à jour toutes les lignes de la table en ne spécifiant aucune clause where dans l'instruction de mise à jour

Update FND_USER set end_date='1-JUN-2018'  ;

L'instruction ci-dessus mettrait à jour toutes les lignes de la table FND_USER

Déclaration de mise à jour avec plusieurs colonnes

Vous pouvez spécifier plusieurs colonnes dans la même instruction de mise à jour

Update FND_USER set end_date='1-JUN-2018' , password='' ;

L'instruction ci-dessus mettrait à jour toutes les lignes de la table FND_USER avec la date de fin spécifiée et null tous les mots de passe

Articles connexes

Instruction INSERT dans Oracle
Instruction Supprimer de la table dans Oracle
exemple oracle create table
Alter Table dans Oracle
alter table add column oracle
Documentation Oracle sur la mise à jour