Oracle笔记--修改表结构

本文详细介绍了Oracle数据库中的DDL操作,包括如何添加或修改列、添加或删除约束、关闭或打开约束、删除表结构等,并提供了丰富的实例进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DDL
  添加或修改列
  添加、删除、开启、关闭约束
  删除表结构
  移出表结构中所有行记录,值保留表结构
一、添加列  ALTER TABLE
       1、语法
  在Oracle8i之前,列是不能单独删除的
  在Oracle8i之后,列可以单独删除的,如下:
ALTER  TABLE  表名
DROP  COLUMN  列名
  添加的新列可以定义默认值
ALTER  TABLE 表名
ADD  (第1列 类型 约束 【,第n列 类型 约束】…);
2、举个例子先:给s_region表,新增名为comments的一列
ALTER  TABLE  s_region
ADD   (comments VARCHAR2(255));
 
二、修改列  ALTER TABLE
       1、语法
  此命令可以用来修改的类型。大小。默认值和NOT NULL约束
ALTER  TABLE  表名
MODIFY  (第1列 类型 约束 【,第n列 类型 约束】…);
  可用来修改number类型列的长度或精度
  用来给列添加非空约束
  做以上修改时不能违反已存在的约束
2、举个例子先:修改员工表中职称的类型长度为50
       alter  table  s_emp
       MODIFY         (title  VARCHAR2(50));
 
三、添加约束 ALTER TABLE
       1、语法
ALTER  TABLE  表名
ADD 【CONSTRAINT constraint_name】   可以省略别名 
约束条件(列名)         给那一列添加什么样的约束   
  约束只能添加或删除,不能修改
  当然也可以开启或关闭约束
  NOT NULL 约束只能通过ALTER TABLE  modify 子句来添加
       2、举个例子:给员工表中的manager_id列添加外键约束
              alter TABLE  s_emp
                     ADD  FOREIGN  KEY(manager_id)
                     references  s_emp(id)
 
四、删除约束  ALTER TABLE
        1、根据约束名来删除表中的指定约束
              ALTER  TABLE  s_emp
              DROP  CONSTRAINT   s_emp_manager_id_fk;
         2、在删除主键的过程中,通过CASCADE关键字级联删除引用此主键的外键约束
               ALTER  TABLE  s_dept
               DROP   PRIMARY  KEY  CASCADE;
 
五、关闭约束 和打开约束   ALTER TABLE
       1、不想删除约束但又不想他现在其作用,这时,我们可以采用disable来完成此工作
           我们还可以采用CASCADE关键字来把相互引用的约束一起级联关闭
           ALTER  TABLE  s_emp
           DISABLE  CONSTRAINT  s_emp_id_pk  CASCADE;
       2、可以通过ENABLE关键点来开启约束,使得约束有效
              ALTER  TABLE  s_emp
              ENABLE CONSTRAINT  s_emp_id_pk
 
六、DROP  TABLE 语法   删除一个表
       DROP  TABLE  table  [CASCADE  constraints];
l  将表和数据一起删除
l  会自动提交事务
l  所有相关的索引会被删除
l  如果使用CSCADE  CONSTRAINTS 选项,会把相互依靠的约束也会删除
l  此命令不能回滚
 
七、修改数据库对象的名称
       使用rename  to命令可以来修改表、视图、序列、同义词的名字
       RENAME  TO  s_ord  TO  s_order
       不过改名的话你必须有权限
 
八、TRUNCATE 命令
l  此命令可以删除表中的所有的行记录
l  释放曾经占用的空间
l  他是一个DDL命令
TRUNCATE  TABLE  s_item
注意:使用TRUNCATE命令删除表数据后,不能回滚,当然,建议我们使用DELETE命令来删除行记录,因为此方式是可以回滚的
 
九、给表加点描述信息  COMMNET  ON
       1、给表添加描述
       COMMENT  ON  TABLE  s_emp
              IS  ‘这个表是一个员工表’
       2、给列添加描述
       COMMENT  ON  COLUMN  s_emp.last_name  IS  ‘这个是员工的名字’
       如果要清楚描述信息,则可以添加空字符串到描述
       当然,可以通过如下数据字典来查看描述信息:
       USER_TAB_COMMENTS  记录了表的注释
       USER_COL_COMMENTS  记录了列的注释
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值