3. 表中删除一个列
(1)、语法
SQL> alter table 表名 drop column 列名;
(2)、注意事项
一次只能删除一列;
所删除的列不是表中的唯一列;
删除列将无法回滚,所以删除前请确认无误再进行操作。
(3)、实验演示
SQL> select * from emp1; --查询表中的数据,计划将列eva lUATETIME、CITY、WORKSCORE删除掉 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO eva lUATETIME CITY WORKSCORE ----- ---------- --------- ----- ----------- --------- --------- ------ ------------ ---------- --------- 7369 SMITH CLERK 7902 1980/12/17 800.00 20 7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30 7566 JONES MANAGER 7839 1981/4/2 2975.00 20 7654 MARTIN SALESMAN 7698 1981/9/28 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981/5/1 2850.00 30 7782 CLARK MANAGER 7839 1981/6/9 2450.00 10 7788 SCOTT ANALYST 7566 1987/4/19 3000.00 20 7839 KING PRESIDENT 1981/11/17 5000.00 10 7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30 7876 ADAMS SALESMAN 7788 1987/5/23 1100.00 20 7900 JAMES CLERK 7698 1981/12/3 950.00 30 7902 FORD ANALYST 7566 1981/12/3 3000.00 20 7934 MILLER CLERK 7782 1982/1/23 1300.00 10 8000 HYL DBA 7839 5000.00 10 2014/10/3 19 beijing 90 8001 HF DBA 2014/10/3 1 2014/10/3 19 16 rows selected SQL> alter table emp1 drop column eva lUATETIME,CITY; --尝试一次删除两个列,报错了 alter table emp1 drop column eva lUATETIME,CITY ORA-00933: SQL command not properly ended SQL> alter table emp1 drop column eva lUATETIME; --删除eva lUATETIME列 Table altered SQL> alter table emp1 drop column CITY; --删除CITY列 Table altered SQL> alter table emp1 drop column WORKSCORE; --删除WORKSCORE列 Table altered SQL> select * from emp1; --再次查询,删除的三个列已经被成功删除了 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ---------- --------- ----- ----------- --------- --------- ------ 7369 SMITH CLERK 7902 1980/12/17 800.00 20 7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30 7566 JONES MANAGER 7839 1981/4/2 2975.00 20 7654 MARTIN SALESMAN 7698 1981/9/28 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981/5/1 2850.00 30 7782 CLARK MANAGER 7839 1981/6/9 2450.00 10 7788 SCOTT ANALYST 7566 1987/4/19 3000.00 20 7839 KING PRESIDENT 1981/11/17 5000.00 10 7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30 7876 ADAMS SALESMAN 7788 1987/5/23 1100.00 20 7900 JAMES CLERK 7698 1981/12/3 950.00 30 7902 FORD ANALYST 7566 1981/12/3 3000.00 20 7934 MILLER CLERK 7782 1982/1/23 1300.00 10 8000 HYL DBA 7839 5000.00 10 8001 HF DBA 2014/10/3 1 16 rows selected
4. 把表的列设置成无用(UNUSED)
(1)、语法
SQL> alter table 表名 set unused(列名);
或
SQL> alter table 表名 set unused column 列名;
SQL> drop table 表名 drop unused columns;
(2)、注意事项
把表的列设置成unused是为了解决在业务高峰期的删除操作任务。因为在业务高峰期对数据量较大的某列执行删除操作的话,将影响系统的运行效率。此时我们就可以使用设置unused的方法临时性迂回的完成删除任务。待过