Oracle Database --Create table
oralce 经典习题系列
数据库表创建
The problem
1.创建数据表customers,customers表结构如表3-5所示,按要求进行操作。表3-5 customers表结构
字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
---|---|---|---|---|---|---|
c_num | number(10) | ture | false | not null | true | true |
c_name | varchar(50) | false | false | not null | false | false |
c_contact | varchar(50) | false | false | not null | false | false |
c_city | varchar(50) | false | false | not null | false | false |
c_brithday | date | false | false | not null | false | false |
1.1 创建数据表customers,在c_num字段上添加主键约束和自增约束,在c_birth字段上添加非空约束。(2)将c_name字段数据类型改为VARCHAR2(70)。(3)将c_contact字段改名为c_phone。(4)增加c_gender字段,数据类型为VARCHAR2(1)。(5)将表名修改为customers_info。(6)删除c_city 字段
2.创建数据表orders,orders表结构如表3-6所示,按要求进行操作
字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
---|---|---|---|---|---|---|
o_num | nuber(11) | true | false | not null | true | true |
o_date | date | false | false | false | false | false |
c_id | varchar(20) | false | true | false | false | false |
1)创建数据表orders,在o_num字段上添加自增约束,在c_id字段上添加外键约束,关联customers_info表中的主键c_num。(2)删除orders表的外键约束,然后删除表customers_info。
The answer
1.1 基本语句格式create table customers( c_num number(10) GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, c_name varchar(50) not null, c_contact varchar(50) not null, c_city varchar(50) not null, c_brithday date );
get: 自增:oracle 12c 的 自增字段通过为表主键添加GENERATED BY DEFAULT AS IDENTITY关键字来实现,实际还是产生一个序列squence,通过序列的 序列.nexval取值是实现,只是由系统来创建这个序列。
1.2 实现代码alter table customers modify c_brithday not null;
非空约束和其他约束后期修改语句不同,通过alter table tbname modify colname not null;
1.3 修改字段名 alter table customers rename columu c_contact to c_phone;
如果是改表明 alter table tbname rename tbname to tbname2 ,不要 column 关键字。
1.4 增加字段 alter table customers add c_gender varchar(1);
1.5 更改表名alter table customers rename to customers_info;
1.6 删除c_city 字段alter table customers_info drop column c_city;
2.1 自增约束通过建立表的时候生成create table orders ( o_id number(11) GENERATED BY DEFAULT AS IDENTITY primary key , o_date date, c_id varchar(20) );
2.2 外键约束可以后期加上,这里面的外键约束,首先要保证外键的数据类型和主表字段数据类型一样
将orders 表 c_id字段修改城和 customers_info 的c_num一致。
alter table orders modify c_id number(10)
alter table orders add constraint fk_cid foreign key(c_id) references
custormers_info(c_num) on delete cascade;
2.3 实现代码alter table orders drop constraint fk_cid;
drop table customers_info;
因为有外键约束,主表customers_info 不能直接删除。所以要先删除从表orders 的约束,再删除主表。
- 原文作者:Chenser
- 原文链接:https://chenser.neocities.org/post/oralce-database-create/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。