### SQL语法教程:Oracle数据库操作详解
#### 一、创建数据库
在Oracle环境中,创建数据库是数据管理的基础步骤之一。虽然示例中的SQL语句针对的是Microsoft SQL Server环境,但基本概念仍然适用于Oracle。
##### 创建单文件数据库
```sql
CREATE DATABASE dodo
ON
(
NAME = dod,
FILENAME = 'D:\microsoftsqlserver\MSSQL\Data\do.mdf',
SIZE = 10, -- 分配初始大小(MB)
MAXSIZE = 50, -- 最大大小(MB)
FILEGROWTH = 5 -- 每次增长大小(MB)
)
LOG ON
(
NAME = 'dodo_log',
FILENAME = 'D:\microsoftsqlserver\MSSQL\Data\do.ldf',
SIZE = 5 MB, -- 日志文件初始大小(MB)
MAXSIZE = 25 MB, -- 日志文件最大大小(MB)
FILEGROWTH = 5 MB -- 日志文件每次增长大小(MB)
)
GO
```
**解析**
- `CREATE DATABASE`: 创建新数据库。
- `ON`: 定义数据文件。
- `NAME`: 数据文件的逻辑名称。
- `FILENAME`: 数据文件的实际路径。
- `SIZE`: 数据文件的初始大小。
- `MAXSIZE`: 数据文件可以增长的最大大小。
- `FILEGROWTH`: 数据文件每次自动增长的大小。
- `LOG ON`: 定义日志文件。
- `GO`: 执行当前批处理。
##### 创建多文件数据库
```sql
CREATE DATABASE dodo
ON
PRIMARY
(
NAME = arch1,
FILENAME = 'd:\microsoftsqlserver\mssql\data\dodo1.mdf',
SIZE = 2, -- 主数据文件初始大小(MB)
MAXSIZE = 2, -- 主数据文件最大大小(MB)
FILEGROWTH = 1 -- 主数据文件每次增长大小(MB)
),
(
NAME = arch2,
FILENAME = 'D:\MICROSOFTSQLSERVER\MSSQL\DATA\DODO2.NDF',
SIZE = 2, -- 辅助数据文件初始大小(MB)
MAXSIZE = 2, -- 辅助数据文件最大大小(MB)
FILEGROWTH = 1 -- 辅助数据文件每次增长大小(MB)
),
(
NAME = ARCH3,
FILENAME = 'D:\MICROSOFTSQLSERVER\MSSQL\DATA\DODO3.NDF',
SIZE = 2, -- 辅助数据文件初始大小(MB)
MAXSIZE = 2, -- 辅助数据文件最大大小(MB)
FILEGROWTH = 1 -- 辅助数据文件每次增长大小(MB)
)
LOG ON
(
NAME = ARCHLOG1,
FILENAME = 'D:\MICROSOFTSQLSERVER\MSSQL\DATA\DODOLOG1.LDF',
SIZE = 1, -- 日志文件初始大小(MB)
MAXSIZE = 1, -- 日志文件最大大小(MB)
FILEGROWTH = 1 -- 日志文件每次增长大小(MB)
),
(
NAME = ARCHLOG2,
FILENAME = 'D:\MICROSOFTSQLSERVER\MSSQL\DATA\DODOLOG2.LDF',
SIZE = 1, -- 日志文件初始大小(MB)
MAXSIZE = 1, -- 日志文件最大大小(MB)
FILEGROWTH = 1 -- 日志文件每次增长大小(MB)
)
GO
```
**解析**
- `PRIMARY`: 指定主数据文件。
- `NDF`: 辅助数据文件扩展名。
- `LDF`: 日志文件扩展名。
#### 二、删除数据库
```sql
DROP DATABASE dodo
```
**解析**
- `DROP DATABASE`: 删除指定的数据库。
#### 三、创建表
```sql
USE dodo
CREATE TABLE USER22
(
USERID INT IDENTITY(2007, 10) PRIMARY KEY, -- 自增ID
USERNAME VARCHAR(10), -- 用户名
USERPASS VARCHAR(10) NOT NULL, -- 密码 (不能为空)
QQ VARCHAR(9), -- QQ号
SEX VARCHAR(4) DEFAULT 'boy' CHECK (SEX IN ('boy', 'girl')), -- 性别 (默认为'boy')
GETTIME DATETIME DEFAULT GETDATE() -- 获取当前时间作为默认值
)
INSERT INTO USER22 (username, userpass, qq) VALUES ('dodo', 'dodo', '25184288');
SELECT * FROM USER22;
```
**解析**
- `CREATE TABLE`: 创建表。
- `INT IDENTITY`: 自动递增的整型字段。
- `VARCHAR`: 变长字符串类型。
- `NOT NULL`: 字段不可为空。
- `DEFAULT`: 设置字段默认值。
- `CHECK`: 约束条件。
- `INSERT INTO`: 插入数据。
- `SELECT * FROM`: 查询所有数据。
#### 四、修改表结构
##### 添加列
```sql
ALTER TABLE USER22 ADD GETTIME DATETIME DEFAULT GETDATE();
```
**解析**
- `ALTER TABLE`: 修改表结构。
- `ADD`: 增加新的列。
##### 删除列
```sql
ALTER TABLE USER22 DROP COLUMN GETTIME;
```
**解析**
- `DROP COLUMN`: 删除指定的列。
#### 五、删除表
```sql
DROP TABLE USER22;
```
**解析**
- `DROP TABLE`: 删除指定的表。
### 小结
以上介绍了SQL语言中关于Oracle数据库的基本操作,包括创建数据库、创建表、修改表结构等核心内容。掌握这些基本操作对于数据库管理员和开发人员来说至关重要。需要注意的是,虽然示例中使用的是SQL Server的语法,但大部分概念和命令在Oracle数据库中同样适用。对于具体的不同之处,建议查阅Oracle官方文档或相关资料进行学习。