文档库 最新最全的文档下载
当前位置:文档库 › Oracle 数据库表空间操作实验与答案

Oracle 数据库表空间操作实验与答案

表空间操作实验答案

一、目的和要求:

1.掌握创建永久表空间和临时表空间的方法。

2.掌握修改永久表空间的方法。

3.掌握查询永久表空间和临时表空间的方法。

4.掌握删除永久表空间和临时表空间的方法。

5.掌握为用户指定永久表空间和临时表空间的方法。

二、实验内容:

1.创建一个永久表空间tbsp_soft134,指定数据文件及其路径,数据文件名是datafile_soft134.dbf;

SQL> create tablespace tbsp_soft134

2 logging

3 datafile 'D:\app\tablespace\datafile_soft134.dbf' size 2M

4 autoextend on

5 next 2M maxsize 10M

6 extent management local;

2.创建一个临时表空间temptbsp134, 指定数据文件及其路径,数据文件名是temp_datafile134.dbf;

SQL> create temporary tablespace temptbsp134

2 tempfile 'D:\app\tablespace\temptbsp134' size 2M

3 autoextend on

4 next 2M maxsize 4M

5 extent management local;

3.创建新用户user134,并为其分配永久表空间和临时表空间;

SQL> create user user134 identified by 123

2 default tablespace tbsp_soft134

3 temporary tablespace temptbsp134;

4.以sys用户连接,为新用户user134授予连接、创建表的权限;

grant connect, resource to user134;

grant create any table to user134;

5.查询数据库中所有表空间的信息;有表空间的名称,状态,内容等信息,查询dba_tablespaces;表;

以sys用户查询

select tablespace_name,status,contents from dba_tablespaces;

6.查询所有用户默认表空间和临时表空间,查询dba_users表;

select username, DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users;

7.查询表空间数据文件的基本信息,包括数据文件名称,位置,大小以及其所属的表空间,查询dba_data_files;表

select FILE_NAME,TABLESPACE_NAME,BLOCKS from dba_data_files;

8.查询表空间空闲空间的大小,查询dba_free_space表;

.统计表空间空闲空间的信息,查询dba_free_space表;

SQL> select tablespace_name, sum(bytes)空闲空间大小from

2 dba_free_space group by tablespace_name;

TABLESPACE_NAME 空闲空间大小

------------------------------ ------------

SYSAUX 42663936

UNDOTBS1 86638592

USERS 458752

TEST_SPACE_1 1507328

SYSTEM 4718592

EXAMPLE 22282240

USETABLESPACE01 5177344

TBSP_SOFT134 1048576

10.以user134 连接数据库,并创建student表,字段有,学号,姓名,电话,年龄,性别,生日,专业名称,籍贯等;

CREATE TABLE student (

stuid NUMBER(6) ,

stuname V ARCHAR2(12),

telephone V ARCHAR2(12),

age NUMBER(2),

sex V ARCHAR2(3),

birthday DATE,

specialty V ARCHAR2(15),

homeplace V ARCHAR2(15),

constraint PK_STUDENT PRIMARY KEY (stuid) ); --主键stuid

11. 向student表中写入数据10条记录;

为主键创建序列

SQL> CREATE SEQUENCE STUDENT_SEQU

2 increment by 1 start with 130001

3 MAXV ALUE 130999

4 NOCYCLE NOCACHE;

查询序列号

SQL> select STUDENT_SEQU.nextval from dual;

NEXTV AL

----------

130001

写入数据

SQL> insert into student values(STUDENT_SEQU.nextval,'罗江','180********',20,'男',TO_DATE('19951028','YYYYMMDD'),'软件技术','广元剑阁');

SQL> insert into student values(STUDENT_SEQU.nextval,'泽婷','138********',20,'女',TO_DATE('19930918','YYYYMMDD'),'网络技术','雅安汉源');

12. 统计tbsp_soft134表空间中空闲空间的大小;

SQL> select tablespace_name, sum(bytes)空闲空间大小from dba_free_space

2 where tablespace_name='TBSP_SOFT134'

3 group by tablespace_name;

13. 统计tbsp_soft134表空间中数据文件的大小,在dba_data_files表中查询;

14. 修改表空间tbsp_soft134,将表空间的数据文件datafile_soft134.dbf的大小增加到20M。

SQL> alter database datafile

2 'd:\app\tablespace\datafile_soft134.dbf' resize 20M;

15. 查询表空间tbsp_soft134中数据文件的名称,位置,大小以及其所属表空间,查询dba_data_files表,看空间大小是否有变化;以文件名为条件查询,要加上文件的路径;

SQL> select file_name,tablespace_name,blocks,bytes from dba_data_files where ta blespace_name = 'TBSP_SOFT134';

16. 删除临时表空间和永久表空间;

drop tablespace TBSP_SOFT134 including contents and datafiles;

drop tablespace temptbsp134 including contents and datafiles;

思考题:删除表空间和数据文件之后,用户user134 是否还存在,该用户使用哪个表空间。

答:删除表空间和数据文件之后,用户user134还存在,但是,该用户创建的数据表不存在,创建的序列还存在了,此时不能在user134用户下创建数据表,因为无表空间和数据文件,必须给user134用户变更表空间,然后,才能创建数据表。

操作如下:

1. conn sys/123 as sysdba;

2.给user34变更表空间——以sys用户

alter user user134 default tablespace users;

alter user user134 temporary tablespace temp;

3. 以user34创建student表

4、写入数据

insert into student values(STUDENT_SEQU.nextval,'罗江','180********',20,'男', TO_DATE('19951028','YYYYMMDD'),'软件技术','广元剑阁');

insert into student values(STUDENT_SEQU.nextval,'安娜','181********',20,'女', TO_DATE('19981128','YYYYMMDD'),'软件技术','广元青川');

查询

相关文档
相关文档 最新文档