sql >> Databáze >  >> RDS >> Oracle

Jak aktualizovat tabulku v oracle

Tento kurz SQL poskytuje vysvětlení a příklady příkazu Update v oracle

Příkaz Update v oracle se používá k aktualizaci existujících řádků v tabulce. Je to prohlášení DML. DML představuje jazyk pro manipulaci s daty. Tento příkaz můžeme použít k aktualizaci konkrétních řádků, sady řádků nebo všech řádků v tabulce.

Syntaxe je uvedena níže

Tabulka :Je to název tabulky, který je třeba aktualizovat
sloupec :je to jeden nebo více sloupců v tabulce, které je třeba aktualizovat
hodnota :Je to hodnota sloupce, který má být aktualizován. k získání této hodnoty můžeme použít také poddotaz
Podmínka :Je to podmínka where, která rozhoduje o tom, které všechny řádky budou aktualizovány. Může se skládat z názvů sloupců, poddotazů výrazů a operátorů porovnání

Důležitý bod
1) Příkaz aktualizace po dokončení zobrazí, kolik řádků bylo aktualizováno, pokud jste nevydali zpětnou vazbu.
2) Pokud nebyly aktualizovány žádné řádky, zobrazí se 0 aktualizovaných řádků
3) Provedené změny jsou viditelný ve vaší relaci a není viditelný pro ostatní relaci v databázi Oracle
4) Musíte provést „commit;“ prohlášení, které provede změny v databázi natrvalo nebo „rollback“; pro vrácení provedených změn
5) je dobré nejprve provést stejnou podmínku where s selectem, abyste zjistili počet řádků a řádků, které se budou aktualizovat před vydáním příkazu aktualizace
6) Pokud cílí na jednotlivé řádky, pokud je to možné, použijte primární klíč v oracle

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.

Aktualizujte příkaz pomocí dílčího dotazu

Můžeme také použít poddotaz uvnitř příkazu aktualizace.

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.

Aktualizujte prohlášení pomocí klauzule out where

Všechny řádky v tabulce můžete aktualizovat tak, že neuvedete žádnou klauzuli where v příkazu aktualizace

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

Výše uvedený příkaz aktualizuje všechny řádky v tabulce FND_USER

Aktualizovat výpis s více sloupci

Ve stejném příkazu aktualizace můžete zadat více sloupců

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

Výše uvedený příkaz aktualizuje všechny řádky v tabulce FND_USER se zadaným datem konce a vynuluje všechna hesla

Související články

Příkaz INSERT v Oracle
Odstranit z příkazu tabulky v Oracle
oracle vytvořit příklad tabulky
Změnit tabulku v Oracle
změnit tabulku přidat sloupec oracle
Dokumentace Oracle k aktualizaci


  1. postgresql COUNT(DISTINCT ...) velmi pomalé

  2. funkce to_date se sysdate

  3. MySQL - Výběr dat z více tabulek se stejnou strukturou, ale s různými daty

  4. Jak vytvořit uživatele pouze pro čtení v PostgreSQL