购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.5 修改数据表

修改数据表指的是修改数据库中已经存在的数据表的结构。Oracle使用ALTER TABLE语句修改数据表。常用的修改数据表的操作有:修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。本节将对与修改表有关的操作进行讲解。

3.5.1 修改表名

Oracle是通过ALTER TABLE语句来实现表名的修改的,具体的语法规则如下:

     ALTER TABLE <旧表名> RENAME  TO <新表名>;

【例3.23】将数据表tb_dept3改名为tb_deptment3。

执行修改表名操作之前,查看数据表tb_dept3。

若要使用ALTER TABLE将数据表tb_dept3改名为tb_deptment3,可执行如下的SQL语句:

     ALTER TABLE tb_dept3 RENAME TO tb_deptment3;

上述语句执行成功之后,检验表tb_dept3是否改名成功。

使用DESC查看数据表tb_dept3是否还存在,结果如下:

     SQL> DESC tb_dept3;
     ERROR:
     ORA-04043: 对象tb_dept3 不存在

使用DESC查看数据表tb_deptment3,结果如下:

经过比较可以看到,tb_dept3表已经改名为tb_deptment3。

3.5.2 修改字段的数据类型

修改字段的数据类型就是把字段的数据类型转换成另一种数据类型。在Oracle中修改字段数据类型的语法规则如下:

     ALTER TABLE <表名> MODIFY <字段名>  <数据类型>

其中“表名”指要修改数据类型的字段所在数据表的名称,“字段名”指需要修改的字段,“数据类型”指修改后字段的新数据类型。

【例3.24】将数据表tb_dept1中name字段的数据类型由VARCHAR2(22)修改成VARCHAR2(30)。

执行修改字段数据类型操作之前,使用DESC查看tb_dept1的表结构,结果如下:

可以看到现在name字段的数据类型为VARCHAR2(22),下面修改其类型,执行如下的SQL语句:

     ALTER TABLE tb_dept1 MODIFY name VARCHAR2(30);

再次使用DESC查看数据表,结果如下:

上述语句执行完成后,就会发现数据表tb_dept1中name字段的数据类型已经修改成了VARCHAR2(30)。

3.5.3 修改字段名

Oracle中修改数据表中字段名的语法规则如下:

     ALTER TABLE <表名> RENAME COLUMN  <旧字段名> TO<新字段名> ;

其中,“旧字段名”指修改前的字段名,“新字段名”指修改后的字段名。

【例3.25】若要将数据表tb_dept1中的location字段名改为loc,数据类型保持不变,可执行如下的SQL语句:

     ALTER TABLE tb_dept1 RENAME COLUMN location TO loc ;

使用DESC查看表tb_dept1,会发现字段的名称已经修改成功,结果如下:

提 示

由于不同类型的数据在机器中存储的方式及长度并不相同,修改数据类型可能会影响数据表中已有的数据记录,因此,当数据库表中已经有数据时,不要轻易修改数据类型。

3.5.4 添加字段

随着业务需求的变化,可能需要在已经存在的表中添加新的字段。一个完整字段包括字段名、数据类型、完整性约束。添加字段的语法格式如下:

     ALTER TABLE <表名> ADD <新字段名> <数据类型>

新字段名为需要添加的字段的名称。

1.添加无完整性约束条件的字段

【例3.26】若要在数据表tb_dept1中添加一个没有完整性约束的NUMBER类型的字段managerId(部门经理编号),可执行如下的SQL语句:

     ALTER TABLE tb_dept1 ADD managerId NUMBER(10);

使用DESC查看表tb_dept1,会发现在表的最后添加了一个名为managerId的NUMBER类型的字段,结果如下:

2.添加有完整性约束条件的字段

【例3.27】若要在数据表tb_dept1中添加一个不能为空的VARCHAR2(12)类型的字段column1,可执行如下的SQL语句:

     ALTER TABLE tb_dept1 ADD column1 VARCHAR2(12) not null;

使用DESC查看表tb_dept1,会发现在该表的最后添加了一个名为column1的VARCHAR2(12)类型且不为空的字段,结果如下:

3.5.5 删除字段

删除字段是将某个字段从数据表中移除,语法格式如下:

     ALTER TABLE <表名> DROP COLUMN <字段名>;

“字段名”是指需要从数据表中删除的字段的名称。

【例3.28】删除数据表tb_dept1中的column1字段。

首先,执行删除字段之前,使用DESC查看tb_dept1的表结构,结果如下:

若要删除column1字段,可执行如下的SQL语句:

     ALTER TABLE tb_dept1 DROP COLUMN column1;

再次使用DESC查看表tb_dept1,结果如下:

可以看到,表tb_dept1中已经不存在名称为column1的字段,删除字段成功。

提 示

在删除表中字段时,常常在字段后添加CASCADE CIBSTRAINTS,目的是将与该字段相关的约束一并删除。 elJnfxwhz+agNzT1+m/tLGRYLViYvwiP20g/9QUn3/SULzL4ISOztoCthZb/hUBQ

点击中间区域
呼出菜单
上一章
目录
下一章
×