• Oracle(修改表结构和约束)


    目标:

    1.添加和修改列

    2.添加,enabledisable,或者remove约束

    3.删除表

    4.删除表中所有数据并回到表定义的初始状态(截断表)

    5.修改对象的名字

    6.给对象添加注释,从数据字典中查看注释

    用到的命令:

    1.Alter table

    1.添加和修改列

    2.添加和删除约束

    3.enabledisable约束

    2.drop table命令移除表中所有行和表结构

    3.renametruncatecomment

    4.当执行以上DDL语句时,事务自动提交

    功能:

    1.增加列

       语法:

    alter table tb_name

    add column datatype [default val] constraint .....

    note:

    1.如果添加not null(primary key约束要求值也不能为null)约束,需要保证当前表中没有数据存在。

    2.新添加的列,相当于表定义中最后一个定义的列。

        例如:

    alter table test add name varchar2(10) default 'test' not null ;

    alter table s_stu add (sname varchar2(20),sage number);

    alter table husband add sage number constraint husband_sage_check check(sage<=100);

    2.删除列:

    语法:alter table tableName drop column column_name;

    例如:alter table test drop column name;

    3.修改列属性:(数据类型和约束)

    语法:ALTER TABLE table

      MODIFY (column datatype [DEFAULT expr][NOT NULL]

    [, column datatype]...);

    note

    修改列的规则:

    1.可以增加字段的宽度或者精度

    2.如果列的值为null或者表中没有数据,可以降低宽度和精度

    3.给当前列,后续添加的数据指定默认值。

    4.当且仅当当前列中没有null值时,可以定义当前列为not null.

    5.当前列中的值为null时,可以修改列的数据类型

    6.如果需要给某个字段添加not null约束,只能使用modify

    例如:

    alter table test modify id number constraint test_pk_id primary key;

    alter table test modify id char(20);

    4.增加约束

    语法:alter table tb_name add 约束的完整定义

    note

    1.只能增加能够使用表级约束的约束

    2.不能修改约束

    例如:

    alter table test add constraint test_pk_id primary key(id);

    alter table test add check(gender in ('F','M'));

    5.删除约束:

    语法:alter table tb_name drop 约束名。

    例如:

    alter table test drop constraint test_pk_id;

    删除组件约束时,同时删除和他依赖的外键约束

     alter table test drop constraint test_pk_id cascade;

    6.使一个约束失效:

        语法:alter table tb_name disable constraint constraint_name [cascade];

    note:添加cascade表明要让所有的依赖约束都失效。

    7.是一个约束生效:

        语法:alter table tb_name enable constraint constraint_name;

    note

    1.当启用uniqueprimary key约束时,会自动创建索引。

    例如:alter table test enable constraint test_id_pk;

    8.删除表:

       drop table tb_name [cascade constraint];

       note

    1.删除表中所有数据

    2.所有的索引被删除

    3.使用cascade constraint,级联删除所有的依赖完整性约束

       例如:

    drop table test cascade constraint;

    删除之后,可以通过:

    select column_name,constraint_name

    from user_cons_columns

    查看是否约束还在。

    9.重命名:rename

    重命名表:

    rename old_tb_name to new_tb_name;

    重命名列:

    alter table tb_name rename column old_col_name to new_col_name;

    note:

    1.重命名可以用来修改tableviewsequencesynonym

    2.只有是这个对象的拥有者,才能重命名。

    例如:

    rename emp to emp2;  将表名重n名为emp2

     alter table emp rename column id to eid;

    10.截断表:truncate

    语法:truncate table tb_name

    note:

    1.清空表记录

    2.释放当前表所占用的表空间。返回建表初始状态

    3.是一个DDL命令。

    4.一旦删除,事务不能回滚。

    例如:truncate table emp;

    deletetruncate的比较:

    delete:可以指定删除某些列,也可以清空表,但是不释放表空间,在事务没有提交之前可以回滚。

    truncate:只能清空表,释放表空间,不能回滚。

    11.给表加注释:comments

    语法:

    comment on table talbe_name is '注释内容'

    comment on column table_name.column_name is '注释内容';

    note:

    1.添加的注释可以在如下数据字典中查看

    ALL_COL_COMMENTS

    USER_COL_COMMENTS

    ALL_TAB_COMMENTS

    USER_TAB_COMMENTS

    例如:

    comment on table emp is '测试';

    comment on column emp.eid  is 'haha';

  • 相关阅读:
    Maven setting配置镜像仓库
    MyBatis配置Mapping,JavaType和JDBCType的对应关系,#与$区别
    Git常用命令
    Js JSON.stringify()与JSON.parse()与eval()详解及使用案例
    例:判断是不是自有属性hasOwnProperty方法
    JS中原型链中的prototype与_proto_的个人理解与详细总结
    原型理解:prototype
    JS中attribute和property的区别
    面试题术语
    函数语法
  • 原文地址:https://www.cnblogs.com/yzqm666/p/5886894.html
Copyright © 2020-2023  润新知