表结构的修改

表结构的修改

当一张数据表已经正常建立完成了,后来发现,某些表少列,某些表列设计不合理…

所以提供有对象的修改操作,但是从开发来讲,不提倡数据表的修改操作。

在实际开发之中,为了方便数据库的使用,往往设计人员会给出一个数据库的脚本。这个脚本的后缀一般是“*.sql”。开发人员可以利用脚本对数据库进行快速的恢复。所以这个脚本一般会包含有如下几个内容:

  • 删除原有的数据表;

  • 重新创建新的数据表;

  • 创建测试数据;

  • 进行事务提交。

    --删除数据表
    DROP TABLE member PURGE;
    --清空回收站
    PURGE RECYCLEBIN;
    --创建数据表
    CREATE TABLE member(
    	mid  NUMBER,
    	name VARCHAR2(20)
    );
    --测试数据
    INSERT INTO member(mid,name) values (1,'韩信');
    INSERT INTO member(mid,name) values (2,'李白');
    --提交事务
    COMMIT;
    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nl2XGNgF-1580705488461)(C:\Users\016322605\Desktop\csdn\Oracle\捕获216.PNG)]

下面基于这个脚本实现数据表的修改操作。

1.修改已有列

name 字段上没有默认值,每当增加新数据不指定name的时候内容就是null,希望提供默认值。

范例:修改member表中的name列定义

ALTER TABLE member modify (name VARCHAR2(30) DAFAULT '无名氏');

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eizzVDE2-1580705488462)(C:\Users\016322605\Desktop\csdn\Oracle\捕获217.PNG)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kvuAFhzn-1580705488463)(C:\Users\016322605\Desktop\csdn\Oracle\捕获218.PNG)]

2.为表增加列

如果发现表中列的功能不足,那么就需要为其增加新的功能列。语法如下:

ALTER TABLE 表名称 ADD(字段  数据类型 ....);

范例:增加一个address列,这个列上不设置默认值

ALTER TABLE member ADD(address VARCHAR2(30));

​ ​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ej1mL74K-1580705488464)(C:\Users\016322605\Desktop\csdn\Oracle\捕获219.PNG)]

范例:增加SEX列,设置默认值

ALTER TABLE member add(sex varchar2(10) default '男');

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z4fNgUwH-1580705488464)(C:\Users\016322605\Desktop\csdn\Oracle\捕获220.PNG)]

发现一旦有默认值,每一行中的sex内容都会出现,相当于更新了所有行。

3、删除表中的列

语法:

ALTER TABLE 表名称 DROP COLUMN 列名称;

范例:删除sex列

ALTER TABLE member DROP COLUMN sex;

​ ​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WmhCoMIQ-1580705488465)(C:\Users\016322605\Desktop\csdn\Oracle\捕获221.PNG)]

总结:

1.常用的四种数据类型: VARCHAR2、NUMBER、DATE、CLOB;

2.DDL对象的操作语法:

  • 创建对象:CREATE 对象类型 对象名称 ()…;
  • 删除对象:DROP 对象类型 对象名称 …;
    R、DATE、CLOB;

2.DDL对象的操作语法:

  • 创建对象:CREATE 对象类型 对象名称 ()…;
  • 删除对象:DROP 对象类型 对象名称 …;
  • 修改对象:ALTER 对象类型 对象名称 …;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值