Oracle中对表的修改(update ....set...)

本文详细介绍了在Oracle数据库中如何正确地使用UPDATE语句来修改表中的数据,特别强调了WHERE子句的重要性,避免误更新所有行。通过实例展示了正确与错误的UPDATE语句使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于Oracle的表修改,没有很多操作,注意一点,要记得控制行

update 表名 set 字段名1=字段名1,字段名2=字段名2…where …

如果没有where控制行,那么表中的所有字段名都会被修改
例如:

SQL> update emp set ename = 'x' ,job ='y';

已更新14行。

SQL> select * from emp;

     EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------
      7369 x                    y                        7902 17-12-80            800                    20
      7499 x                    y                        7698 20-2-81           1600        300         30
      7521 x                    y                        7698 22-2-81           1250        500         30
      7566 x                    y                        7839 02-4-81           2975                    20
      7654 x                    y                        7698 28-9-81           1250       1400         30
      7698 x                    y                        7839 01-5-81           2850                    30
      7782 x                    y                        7839 09-6-81           2450                    10
      7788 x                    y                        7566 19-4-87           3000                    20
      7839 x                    y                             17-11-81           5000                    10
      7844 x                    y                        7698 08-9-81           1500          0         30
      7876 x                    y                        7788 23-5-87           1100                    20

     EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------
      7900 x                    y                        7698 03-12-81            950                    30
      7902 x                    y                        7566 03-12-81           3000                    20
      7934 x                    y                        7782 23-1-82           1300                    10

正常修改:

SQL> update emp set ename='x',job='CLERK' where sal>=3000;

已更新3行。

SQL> select * from emp;

     EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------
      7369 SMITH                CLERK                    7902 17-12-80            800                    20
      7499 ALLEN                SALESMAN                 7698 20-2-81           1600        300         30
      7521 WARD                 SALESMAN                 7698 22-2-81           1250        500         30
      7566 JONES                MANAGER                  7839 02-4-81           2975                    20
      7654 MARTIN               SALESMAN                 7698 28-9-81           1250       1400         30
      7698 BLAKE                MANAGER                  7839 01-5-81           2850                    30
      7782 CLARK                MANAGER                  7839 09-6-81           2450                    10
      7788 x                    CLERK                    7566 19-4-87           3000                    20
      7839 x                    CLERK                         17-11-81           5000                    10
      7844 TURNER               SALESMAN                 7698 08-9-81           1500          0         30
      7876 ADAMS                CLERK                    7788 23-5-87           1100                    20

     EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------
      7900 JAMES                CLERK                    7698 03-12-81            950                    30
      7902 x                    CLERK                    7566 03-12-81           3000                    20
      7934 MILLER               CLERK                    7782 23-1-82           1300                    10

已选择14行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值