设为首页 收藏本站
查看: 890|回复: 0

[经验分享] oracle alter table详解

[复制链接]

尚未签到

发表于 2016-7-19 05:19:01 | 显示全部楼层 |阅读模式
  //建测试表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 keyalter table employee_info add constraint pk_emp_info primary key(empno);//1.2 foreign keyalter table employee_info add constraint fk_emp_info foreign key(deptno)references dept(deptno);//1.3 checkalter table employee_info add constraint ck_emp_info check(sex in ('F','M'));//1.4 not nullalter table employee_info modify phone constraint not_null_emp_info not null;//1.5 uniquealter table employee_info add constraint uq_emp_info unique(phone);//1.6 defaultalter 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,deferredfrom user_constraintswhere table_name='EMPLOYEE_INFO';--CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS   DEFERRABLE     DEFERRED------------------------------ --------------- -------- -------------- ---------PK_EMP_INFO                    P               ENABLED  NOT DEFERRABLE IMMEDIATEFK_EMP_INFO                    R               ENABLED  DEFERRABLE     DEFERREDNOT_NULL_EMP_INFO              C               ENABLED  NOT DEFERRABLE IMMEDIATESYS_C005373                    C               ENABLED  NOT DEFERRABLE IMMEDIATEUQ_EMP_INFO                    U               ENABLED  NOT DEFERRABLE IMMEDIATECK_EMP_INFO                    C               ENABLED  NOT DEFERRABLE IMMEDIATE//我们可以通过user_cons_columns视图查看有关列的约束信息;select owner,constraint_name,table_name,column_namefrom user_cons_columnswhere table_name='EMPLOYEE_INFO';--OWNER                          CONSTRAINT_NAME                TABLE_NAME                     COLUMN_NAME------------------------------ ------------------------------ ------------------------------ ---------------YEEXUN                         PK_EMP_INFO                    EMPLOYEE_INFO                  EMPNOYEEXUN                         CK_EMP_INFO                    EMPLOYEE_INFO                  SEXYEEXUN                         NOT_NULL_EMP_INFO              EMPLOYEE_INFO                  PHONEYEEXUN                         SYS_C005373                    EMPLOYEE_INFO                  HIREDATEYEEXUN                         UQ_EMP_INFO                    EMPLOYEE_INFO                  PHONEYEEXUN                         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.statusfrom user_constraints uc,user_cons_columns uccwhere uc.table_name=ucc.table_name anduc.constraint_name=ucc.constraint_name anducc.table_name='EMPLOYEE_INFO';--COLUMN_NAME     CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS--------------- ------------------------------ --------------- --------EMPNO           PK_EMP_INFO                    P               ENABLEDDEPTNO          FK_EMP_INFO                    R               ENABLEDPHONE           NOT_NULL_EMP_INFO              C               ENABLEDHIREDATE        SYS_C005373                    C               ENABLEDPHONE           UQ_EMP_INFO                    U               ENABLEDSEX             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_commentswhere table_name='EMPLOYEE_INFO';TABLE_NAME                     TABLE_TYPE  COMMENTS------------------------------ ----------- --------------------------EMPLOYEE_INFO                  TABLE       information of employees--//我们还可以通过user_col_comments视图获得对表列的注释:select * from  user_col_commentswhere table_name='EMPLOYEE_INFO';--TABLE_NAME                     COLUMN_NAME                    COMMENTS------------------------------ ------------------------------ ---------------------------EMPLOYEE_INFO                  EMPNO                          EMPLOYEE_INFO                  DEPTNO                         EMPLOYEE_INFO                  ENAME                          the name of employeesEMPLOYEE_INFO                  SEX                            EMPLOYEE_INFO                  PHONE                          EMPLOYEE_INFO                  ADDRESS                        EMPLOYEE_INFO                  ID                             EMPLOYEE_INFO                  HIREDATE --select * from user_col_commentswhere table_name='EMPLOYEE_INFO' andcomments 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--

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-245983-1-1.html 上篇帖子: oracle 更新相同表问题 下篇帖子: oracle procedure 小实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表