"这是一套Oracle数据库相关的笔试题目和答案,涵盖了创建表空间、扩展表空间、创建用户、分配权限以及定义数据表结构等核心概念。"
在这套Oracle笔试题中,主要涉及了以下几个关键知识点:
1. 创建表空间:
创建表空间是管理Oracle数据库存储的重要环节。在描述中,创建了一个名为`neuspace`的表空间,数据文件`neudata.dbf`位于`d:\data`目录下,初始大小为200MB,设定自动增长,每次增长5MB,最大可达500MB。对应的SQL语句如下:
```sql
CREATE TABLESPACE neuspace
DATAFILE 'd:\data\neudata.dbf' SIZE 200M AUTOEXTEND ON NEXT 5M MAXSIZE 500M;
```
这条命令创建了一个新的表空间,并指定数据文件的位置、初始大小、自动扩展方式以及最大限制。
2. 扩展表空间:
当表空间空间不足时,可以添加新的数据文件。题目要求在`neuspace`表空间中增加一个不自动增长的数据文件`appneudata.dbf`,大小为500MB,存储在`e:\appdata`目录下。相应的SQL语句如下:
```sql
ALTER TABLESPACE neuspace
ADD DATAFILE 'e:\appdata\appneudata.dbf' SIZE 500M;
```
这条命令将数据文件添加到现有表空间中,但未开启自动扩展。
3. 创建用户并分配权限:
创建用户并为其分配权限是数据库管理的关键任务。题目要求创建用户`tom`,设置其默认表空间为`neuspace`,并赋予`connect`和`resource`系统角色,同时授予对`scott.emp`表的`SELECT`权限和`SALARY`、`MGR`列的`UPDATE`权限。对应的SQL语句如下:
```sql
CREATE USER tom IDENTIFIED BY jack DEFAULT TABLESPACE neuspace;
GRANT connect, resource TO tom;
GRANT SELECT, UPDATE (salary, mgr) ON scott.emp TO tom;
```
这里创建了一个新用户,并设置了登录密码,同时赋予了连接数据库和使用资源的权限,以及对特定表的特定列的操作权限。
4. 创建数据表:
题目中给出了创建`class`和`student`两个表的详细要求。创建这些表需要定义每个字段的类型、长度、默认值、约束等。例如,创建`class`表的SQL语句可能如下:
```sql
CREATE TABLE class (
CLASSNO NUMBER(2) PRIMARY KEY,
CNAME VARCHAR2(10) NOT NULL
);
```
同样,创建`student`表的SQL语句可能如下:
```sql
CREATE TABLE student (
STUNO NUMBER(8) PRIMARY KEY,
SNAME VARCHAR2(12) NOT NULL,
SEX CHAR(2),
BIRTHDAY DATE,
EMAIL VARCHAR2(20) UNIQUE,
SCORE NUMBER(5, 2),
CLASSNO NUMBER(2),
FOREIGN KEY (CLASSNO) REFERENCES class(CLASSNO)
);
```
在`student`表中,`CLASSNO`字段被定义为外键,引用`class`表的`CLASSNO`字段,确保数据的完整性。
通过这套试题,我们可以深入理解Oracle数据库在实际操作中的各种功能,包括表空间管理、用户权限控制以及表结构设计等核心概念。掌握这些知识对于Oracle数据库的日常管理和开发工作至关重要。