`

oracle,alter table

 
阅读更多
文章来源
http://blog.csdn.net/BOBO12082119/article/details/6323727

//建测试表   
create table dept(  
       deptno number(3) primary key,  
       dname varchar2(10),  
       loc varchar2(13)   
       );  
create table employee_info(  
       empno number(3),  
       deptno number(3),  
       ename varchar2(10),  
       sex char(1),  
       phone number(11),  
       address varchar2(50),  
       introduce varchar2(100)  
       );  
--  
//0.重命名   
  //0.1 表:rename dept to dt;   
           rename dt to dept;  
  //0.2 列:alter table dept rename column loc to location;   
           alter table dept rename column location to loc;  
//1.添加约束   
  //1.1 primary key   
      alter table employee_info add constraint pk_emp_info primary key(empno);  
  //1.2 foreign key   
      alter table employee_info add constraint fk_emp_info foreign key(deptno)  
      references dept(deptno);  
  //1.3 check   
      alter table employee_info add constraint ck_emp_info check  
      (sex in ('F','M'));  
  //1.4 not null   
      alter table employee_info modify phone constraint not_null_emp_info not null;  
  //1.5 unique   
      alter table employee_info add constraint uq_emp_info unique(phone);  
  //1.6 default   
      alter table employee_info modify sex char(2) default 'M';  
//2.添加列   
   alter table employee_info add id varchar2(18);  
   alter table employee_info add hiredate date default sysdate not null;  
//3.删除列   
   alter table employee_info drop column introduce;  
//3.修改列   
  //3.1 修改列的长度   
      alter table dept modify loc varchar2(50);  
  //3.2 修改列的精度   
      alter table employee_info modify empno number(2);  
  //3.3 修改列的数据类型   
      alter table employee_info modify sex char(2);  
  //3.4 修改默认值   
      alter table employee_info modify hiredate default sysdate+1;  
//4.禁用约束   
  alter table employee_info disable constraint uq_emp_info;  
//5.启用约束   
  alter table employee_info enable constraint uq_emp_info;  
//6.延迟约束   
  alter table employee_info drop constraint fk_emp_info;  
  alter table employee_info add constraint fk_emp_info foreign key(deptno)  
        references dept(deptno)  
  deferrable initially deferred;  
//7.向表中添加注释   
  comment on table employee_info is 'information of employees';  
//8.向列添加注释   
  comment on column employee_info.ename is 'the name of employees';  
  comment on column dept.dname is 'the name of department';  
//9.清除表中所有数据   
  truncate table employee_info;  
//10.删除表   
  drop table employee_info;  
--  
//下面来看看刚刚才我们对表dept和表employee_info所做的更改   
//user_constraints视图里面包含了刚刚才我们创建的所有约束,以及其他信息,   
//你可以用desc user_constraints命令查看其详细说明   
select constraint_name,constraint_type,status,deferrable,deferred  
from user_constraints  
where table_name='EMPLOYEE_INFO';  
--  
CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS   DEFERRABLE     DEFERRED  
------------------------------ --------------- -------- -------------- ---------  
PK_EMP_INFO                    P               ENABLED  NOT DEFERRABLE IMMEDIATE  
FK_EMP_INFO                    R               ENABLED  DEFERRABLE     DEFERRED  
NOT_NULL_EMP_INFO              C               ENABLED  NOT DEFERRABLE IMMEDIATE  
SYS_C005373                    C               ENABLED  NOT DEFERRABLE IMMEDIATE  
UQ_EMP_INFO                    U               ENABLED  NOT DEFERRABLE IMMEDIATE  
CK_EMP_INFO                    C               ENABLED  NOT DEFERRABLE IMMEDIATE  
//我们可以通过user_cons_columns视图查看有关列的约束信息;   
select owner,constraint_name,table_name,column_name  
from user_cons_columns  
where table_name='EMPLOYEE_INFO';  
--  
OWNER                          CONSTRAINT_NAME                TABLE_NAME                     COLUMN_NAME  
------------------------------ ------------------------------ ------------------------------ ---------------  
YEEXUN                         PK_EMP_INFO                    EMPLOYEE_INFO                  EMPNO  
YEEXUN                         CK_EMP_INFO                    EMPLOYEE_INFO                  SEX  
YEEXUN                         NOT_NULL_EMP_INFO              EMPLOYEE_INFO                  PHONE  
YEEXUN                         SYS_C005373                    EMPLOYEE_INFO                  HIREDATE  
YEEXUN                         UQ_EMP_INFO                    EMPLOYEE_INFO                  PHONE  
YEEXUN                         FK_EMP_INFO                    EMPLOYEE_INFO                  DEPTNO  
//我们将user_constraints视图与user_cons_columns视图连接起来   
//查看约束都指向哪些列   
column column_name format a15;  
select ucc.column_name,ucc.constraint_name,uc.constraint_type,uc.status  
from user_constraints uc,user_cons_columns ucc  
where uc.table_name=ucc.table_name and  
      uc.constraint_name=ucc.constraint_name and  
      ucc.table_name='EMPLOYEE_INFO';  
--  
COLUMN_NAME     CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS  
--------------- ------------------------------ --------------- --------  
EMPNO           PK_EMP_INFO                    P               ENABLED  
DEPTNO          FK_EMP_INFO                    R               ENABLED  
PHONE           NOT_NULL_EMP_INFO              C               ENABLED  
HIREDATE        SYS_C005373                    C               ENABLED  
PHONE           UQ_EMP_INFO                    U               ENABLED  
SEX             CK_EMP_INFO                    C               ENABLED  
--  
//这里有个constraint_type,他具体指下面几种类型:   
//C:check,not null   
//P:primary key   
//R:foreign key   
//U:unique   
//V:check option   
//O:read only   
--  
//我们可以通过user_tab_comments视图获得对表的注释   
select * from user_tab_comments  
where table_name='EMPLOYEE_INFO';  
TABLE_NAME                     TABLE_TYPE  COMMENTS  
------------------------------ ----------- --------------------------  
EMPLOYEE_INFO                  TABLE       information of employees  
--  
//我们还可以通过user_col_comments视图获得对表列的注释:   
select * from  user_col_comments  
where table_name='EMPLOYEE_INFO';  
--  
TABLE_NAME                     COLUMN_NAME                    COMMENTS  
------------------------------ ------------------------------ ---------------------------  
EMPLOYEE_INFO                  EMPNO                            
EMPLOYEE_INFO                  DEPTNO                           
EMPLOYEE_INFO                  ENAME                          the name of employees  
EMPLOYEE_INFO                  SEX                              
EMPLOYEE_INFO                  PHONE                            
EMPLOYEE_INFO                  ADDRESS                          
EMPLOYEE_INFO                  ID                               
EMPLOYEE_INFO                  HIREDATE   
--  
select * from user_col_comments  
where table_name='EMPLOYEE_INFO' and  
      comments is not null;  
--  
TABLE_NAME                     COLUMN_NAME                    COMMENTS  
------------------------------ ------------------------------ ------------------------  
EMPLOYEE_INFO                  ENAME                          the name of employees  
--  
//最后我们来查看一下修改后的表:   
desc employee_info;  
Name     Type         Nullable Default   Comments                
-------- ------------ -------- --------- ---------------------   
EMPNO    NUMBER(2)                                               
DEPTNO   NUMBER(3)    Y                                          
ENAME    VARCHAR2(10) Y                  the name of employees   
SEX      CHAR(2)      Y        'M'                               
PHONE    NUMBER(11)                                              
ADDRESS  VARCHAR2(50) Y                                          
ID       VARCHAR2(18) Y                                          
HIREDATE DATE                  sysdate+1  
--  
desc dept;  
Name   Type         Nullable Default Comments                 
------ ------------ -------- ------- ----------------------   
DEPTNO NUMBER(3)                                              
DNAME  VARCHAR2(10) Y                the name of department   
LOC    VARCHAR2(50) Y  
--  
分享到:
评论

相关推荐

    ALTER TABLE table_name

    一个字段: ALTER TABLE table_name MODIFY(字段类型 数据类型)); 添加一个字段: ALTER TABLE table_name ADD(字段类型 数据类型);

    Oracle对字段的增删改方法分享

    Oracle是目前最流行的数据库之一,功能强大,性能卓越,相对的学习的难度还是不小。本文就是将自己的一些经验总结分享给大家,做个积累,方便自己和其他的学习者。...alter table table_name rename column

    oracle数据备份

    Alter table table_name add (new_colum_name datatype [default value] [not null]) 修改列类型 Alter table…modify Alter table table_name modify column_name new_datatype 修改列名 Alter table…rename Alter...

    Oracle 10gR2压缩(Compress)技术

    4.5 alter table … move partition … compress 8 5、分区表的压缩测试 8 5.1 分区表创建 8 5.2 分区表压缩属性查看 8 5.3 分区表压缩属性修改 9 5.4 分区索引压缩属性修改 10 5.5 分区表空间数据压缩 12 5.6 分区...

    oracle数据库安装

    Alter table table_name add (new_colum_name datatype [default value] [not null]) 修改列类型 Alter table…modify Alter table table_name modify column_name new_datatype 修改列名 Alter table…rename Alter...

    详细oracle笔记1

    alter table table_name add constraint key_name primary key (table_column); 指定表空间 alter table table_name add constraint key_name primary key (table_column) using index tablespace table_space_...

    oracle权限全集

    囊括了oracle所有权限管理的命令 oracle权限全集 alter any cluster 修改任意簇的权限 ...alter any table 修改任意表的权限 alter any trigger 修改任意触发器的权限 alter cluster 修改拥有簇的权限 ... ... ...

    MySQL 添加、修改、删除表的列及约束等表的定义

    ALTER TABLE:添加,修改,删除表的列,约束等表的定义。 查看列:desc 表名; 修改表名:alter table t_book rename to bbb; 添加列:alter table 表名 add column 列名 varchar(30)... 修改列名Oracle:lter table bbb

    Oracle碎片整理

    解决Oracle 碎片整理 问题。比较Oracle中的alter table t move和alter table t shrink space。Oracle 10g Shrink Table 详解。

    Oracle常用的命令如何查看表的结构

    Alter table 表名 modify(字段名 类型 约束); 1 alter table test modify (addd varchar2(10) null); alter table 表名 add(字段名 类型 约束); 2 alter table test add(age varchar2(5)); 1.登陆系统用户 在...

    Oracle数据库学习笔记

    向你介绍我的Oracle数据库学习笔记 1.SQL命令: SQL 支持4大类型命令: 数据定义语言(DDL): Create(创建...alter table person modify(age varchar(6),weight varchar(6));//修改多个属性列 删除(drop):

    oracle11g密码敏感取消

    select 'alter table '||owner||'.'||table_name||' allocate extent;' from dba_tables where num_rows=0 ; --数据库实例用户密码期限取消:无限期 select * from dba_profiles where profile='DEFAULT' and ...

    ORACLE常用DBA操作语法

    ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD')); 注意:以上添加的分区界限应该高于最后一个分区界限。 以下代码给SALES表的P3分区添加了一个P3SUB1子分区 ALTER ...

    oracle权限角色

     alter any table 修改任意表的权限  alter any trigger 修改任意触发器的权限  alter cluster 修改拥有簇的权限  alter database 修改数据库的权限  alter procedure 修改拥有的存储过程权限  alter ...

    oracle笔记.doc

    ALTER TABLE 学生信息 ALTER COLUMN 姓名varchar(20) NOT NULL 3)添加列: ALTER TABLE 学生信息 ADD 家庭住址nvarchar(20) NULL 4)删除列: ALTER TABLE 学生信息 DROP COLUMN 家庭住址CASCADE

    oracle学习笔记(三)

    create table 表名(column datatype [default expr][,column …]) default 约束 说明略 2、利用子查询创建表 create table 表名 as select * from u表 二、修改表 1、添加一个新列 oracle:alter table table_name ...

    Oracle练习.txt

    alter table old_table_name rename to new_table_name; 14.如何搜索出前N条记录? (desc降序) SELECT * FROM Tablename WHERE ROWNUM ORDER BY column; 15. 如何在给现有的日期加上2年? select add_months...

    oracle删除主键查看主键约束及创建联合主键

    ALTER TABLE TABLENAME DROP PRIMARY_KEY 执行上面的SQL可以删除主键;如果不成功可以用 ALTER TABLE TABLENAME DROP CONSTRAINTS COLUMN CASCADE; --删除约束 ALTER TABLE TABLENAME DISABLE PRIMARY_COLUMN ; --...

    oracle游标

    ALTER TABLE 学生信息 ALTER COLUMN 姓名varchar(20) NOT NULL 3)添加列: ALTER TABLE 学生信息 ADD 家庭住址nvarchar(20) NULL 4)删除列: ALTER TABLE 学生信息 DROP COLUMN 家庭住址CASCADE

Global site tag (gtag.js) - Google Analytics