Oracle是一个强大的关系型数据库管理系统,本章节将深入探讨其基础操作中的关键知识点,包括创建、修改、拷贝表以及清空表的操作。
### 创建表
在Oracle中,创建表遵循特定的命名规则:
1. **命名规则**:表名必须以字母开始,长度限制在1到30个字符,只允许使用A-Z、a-z、0-9、_、$和#字符。避免与系统保留字或用户已定义的对象名称冲突,且Oracle默认使用大写字母表示表名。
2. **创建示例**:创建一个员工表`t1`,包含员工号`id`(整数类型)和姓名`name`(最大长度为20的字符串)。用SQL语句表示为:
```
createtable t1 (id number, name varchar2(20));
```
### 修改表
- **添加列**:可以向现有表中增加新列,如添加`email`列(长度40的字符串):
```
alter table t1 add email varchar(40);
```
- **修改列名和类型**:可以修改列名或改变列的数据类型,例如将`email`列名改为`qq`并将其类型改为`varchar(50)`:
```
alter table t1 rename column email to qq;
alter table t1 modify qq varchar(50);
```
- **删除列**:要删除列时,可以使用`drop column`语句,但未给出具体例子。
- **修改表名**:通过`rename`语句可以更改表名,如将`t1`改名为`t2`:
```
rename t1 to t2;
```
### 拷贝表
- **复制数据**:可以使用`AS SELECT`子句创建新表,例如创建`emp2`表与`emp`表数据相同:
```
createtable emp2 as select * from emp;
```
- **复制结构**:有两种方法创建只有结构无数据的表:
- 方法一:先创建结构,然后清空数据(非推荐,因为后续可能丢失数据)
```
createtable emp3 as select * from emp;
delete from emp3;
```
- 方法二:创建结构并指定无效查询(确保表为空)
```
createtable emp3 as select * from emp where 1=2;
```
### 清空表
- **删除与清零数据**:
- `DELETE`语句逐行删除表中的记录,适用于保留部分历史数据的情况,执行速度快但可能导致部分数据丢失。
- `TRUNCATE`语句则是物理删除,表的所有数据被立即删除,空间被回收,速度比`DELETE`快,且不会生成事务日志,适合全表清空。
总结来说,Oracle数据库操作涉及到创建表的命名规则、添加和修改表结构、以及数据的复制和清除。理解这些基本操作对于日常数据库管理至关重要,能够帮助用户高效地维护和管理数据。