设为首页 加入收藏

TOP

SQL_修改表结构(三)
2015-07-24 12:15:31 来源: 作者: 【 】 浏览:238
Tags:SQL_ 修改 结构
- --------- 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

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的方法临时性迂回的完成删除任务。待过

首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇PostgreSQL操作-psql基本命令 下一篇[Oracle]-性能优化工具(2)-ASH

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: