设为首页 加入收藏

TOP

SQL_修改表结构(一)
2015-07-24 12:15:31 来源: 作者: 【 】 浏览:235
Tags:SQL_ 修改 结构

***********************************************声明***********************************************************************

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。

深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39758393

****************************************************************************************************************************

SQL_修改表结构

说明

实验环境:利用scott用户数据,简单举例修改表结构范例
SQL> create table emp1 as select * from emp;
Table created
--创建实验表

1. 表中添加新列

(1)、语法
SQL> alter table 表名 add (列名 数据类型 [,列名 数据类型] ...);

(2)、注意事项
新添加的列会按顺序续接原表的列进行排列。

(3)、实验演示

SQL> alter table emp1 add (eva luatetime DATE);
Table altered
--添加分析时间列
SQL> select * from emp1;
--查看表数据内容
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO eva lUATETIME
----- ---------- --------- ----- ----------- --------- --------- ------ ------------
 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      CLERK      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 
14 rows selected

SQL> desc emp1;
--查看表结构
Name         Type         Nullable Default Comments 
------------ ------------ -------- ------- -------- 
EMPNO        NUMBER(4)    Y                         
ENAME        VARCHAR2(10) Y                         
JOB          VARCHAR2(9)  Y                         
MGR          NUMBER(4)    Y                         
HIREDATE     DATE         Y                         
SAL          NUMBER(7,2)  Y                         
COMM         NUMBER(7,2)  Y                         
DEPTNO       NUMBER(2)    Y                         
eva lUATETIME DATE         Y  
 
SQL> alter table emp1 add (city varchar2(10) , workscore number(4));
Table altered
--添加城市列、工作得分列
SQL> select * from emp1;
--查看现在数据的内容,内容没有变化,但看以发现表结构已经发生变化,多了两个列
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      CLERK      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                         
14 rows selected
SQL> desc emp1;
--查看表结构
Name         Type         Nullable Default Comments 
------------ ------------ -------- ------- -------- 
EMPNO        NUMBER(4)    Y                         
ENAME        VARCHAR2(10) Y                         
JOB          VARCHAR2(9)  Y                         
MGR          NUMBER(4)    Y                         
HIREDATE     DATE         Y                         
SAL          NUMBER(7,2)  Y                         
COMM         NUMBER(7,2)  Y                         
DEPTNO       NUMBER(2)    Y                         
eva lUATETIME DATE         Y                         
CITY         VARCHAR2(10) Y                         
WORKSCORE    NUMBER(4)    Y    

2. 修改表中存在的列

(1)、语法
SQL> alter table 表名 modify (列名 数据类型 [,列名 数据类型] ...);

(2)、注意事项
可以增加字符类型的列宽度;
可以增加数字类型的列的宽度、精度;
减少列的宽度,需要该列的值为空;
改变某一列数据类型,需要该列的值为空;
如果改变某列的默认值,只会影响以后的操作。

(3)、实验演示

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

评论

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