在Oracle数据库中,创建表是数据管理的基础操作。本文将详细介绍如何在Oracle中创建表以及使用的一些常用命令,包括无约束、有主键约束、有外键约束的表的创建,以及表的删除、数据插入、唯一和条件约束的设置、表的复制以及字段的修改等。
1. 主键和外键
主键是数据库中用于唯一标识一条记录的属性组,它可以是一个或多个字段。在Oracle中,每张表只能有一个主键,且主键的值不能为空。外键则是一个或多个字段,它们的值与另一张表的主键相对应,用于建立表之间的关联。外键可以有多个,且允许为空值。
2. 表的创建与删除
- 无约束创建表:例如,创建一个名为Items的表,包含两个字段ItemNO和ItemName,命令如下:
```sql
create table Items(ItemNO number(2), ItemName varchar2(20));
```
- 删除表:如果要删除Items表,使用如下命令:
```sql
drop table Items;
```
- 有主键约束创建表:例如,创建Items表并设置ItemNO为主键,不允许为空:
```sql
create table Items(ItemNO number(2) constraint PK_Items primary key, ItemName varchar2(20) not null);
```
- 有外键约束创建表:创建Business表,其中ItemNO为外键,参照Items表的ItemNO字段:
```sql
create table Business(
BusiNo number(2) constraint PK_Business primary key,
BusiName varchar2(32) not null,
ItemNO number(2),
constraint FK_Business foreign key(ItemNO) references Items(ItemNO),
StartTime date
);
```
3. 数据插入与时间转换
使用`to_date`函数将字符串转换为日期类型,例如:
```sql
insert into Business(BusiNo, BusiName, ItemNO, StartTime)
values(4, 'SuperMarket', 2, to_date('2008-08-08', 'YYYY-MM-DD'));
```
4. 唯一和条件约束
创建带有唯一约束和条件约束的表,例如:
```sql
create table Computers(
CompNo number(4) constraint PK_Comp primary key,
CompModel varchar2(64) unique,
BuyTime date,
Price number(7,2) constraint ch_price check(price > 0 and price <= 30000),
Owner varchar2(32)
);
```
5. 表的复制
可以通过`create table ... as select ...`创建新表并复制数据,但不复制约束,例如:
```sql
create table business_copy as select * from business;
```
6. 导入备份数据
将备份表business_copy的数据导入新表business:
```sql
insert into business(busino, businame, itemno, starttime)
select * from business_copy;
```
7. 常见字段数据类型
- `Number(p,s)`: 用于存储数字,p是总位数,s是小数位数。
- `Date`: 存储日期和时间信息。
- `Char(size)`: 定长字符串,节省存储空间。
- `Varchar2(size)`: 可变长字符串,更灵活但占用更多空间。
- `Blob`: 用于存储二进制大对象,如图片、文档。
- `Clob`: 用于存储大文本数据,如简历。
- `Bfile`: 用于存储大文件对象,如电影胶片。
8. 修改表结构
要向已有的表中添加字段,可以使用`ALTER TABLE`命令,例如,向Business表中添加新字段Address:
```sql
alter table Business add Address varchar2(50);
```
这些是Oracle数据库中创建表、管理约束、操作数据的基本方法。理解并熟练掌握这些命令对于日常的数据库管理和开发工作至关重要。在实际应用中,还需要结合业务需求灵活运用,确保数据的完整性和一致性。