常用数据库模式对象的管理方法

一、 实验目的

1.掌握常用数据库模式对象的管理方法

二、 实验内容

  1. 按下列表结构利用SQL语句创建表student。

Table name: student

列名数据类型约束备注
SNONUMBER(4)主键学号
SNAMEVARCHAR(10)唯一姓名
SAGENUMBER年龄
SEXCHAR(2)性别
CNONUMBER(2)班号
  1. 为student表的SAGE列添加一个检查约束,保证该列取值在0~100之间,并测试该约束的有效性。
  2. 利用子查询分别创建一个事务级别的临时表,其结构与student表的结构相同,并测试该表的有效性。
  3. 创建一个student_range表(列、类型与student表的列、类型相同),按学生年龄分为三个区,低于20岁的学生信息放入part1区,存储在EXAMPLE表空间;20岁到30岁的学生信息放在part2区;存放在ORCLTBS1表空间中;其他数据放在part3区,存放在ORCLTBS2中。
  4. 创建一个起始值为10000的序列,步长为2,最大值为100000,不可循环,并测试该序列的有效性。
  5. 为SCOTT模式下的emp表创建一个公共同义词,名称为employee,并测试该同义词的有效性。

三、 实验步骤

  1. 按下列表结构利用SQL语句创建表student。
    Table name: student
列名数据类型约束备注
SNONUMBER(4)主键学号
SNAMEVARCHAR(10)唯一姓名
SAGENUMBER年龄
SEXCHAR(2)性别
CNONUMBER(2)班号

指令:创建学生表

create table student(
      SNO NUMBER(4) primakey key,
SNAME VARCHAR(10) UNIQUE,
SAGE NUMBER,
SEX CHAR(2),
CON NUMBER(2)
);

备注:

COMMENT ON COLUMN student.SNO is ‘学号’;
COMMENT ON COLUMN student.SNAME is ‘姓名’;
COMMENT ON COLUMN student.SAGE is ‘年龄’;
COMMENT ON COLUMN student.SEX is ‘性别’;
COMMENT ON COLUMN student.CNO is ‘班号’;

实验结果:

在这里插入图片描述2. 为student表的SAGE列添加一个检查约束,保证该列取值在0~100之间,并测试该约束的有效性。
a) 约束指令:alert table student add constraints sage_ck (SAGE between 0 and 100);
b) 测试:insert into student (SNO,SNAME,SAGE,SEX,CNO) values(12,’Bob’,101,’女’,1);
c) 测试 :insert into student (SNO,SNAME,SAGE,SEX,CNO) values(12,’Bob’,66,’女’,1)
d) 实验结果:
在这里插入图片描述
在这里插入图片描述
3. 利用子查询分别创建一个事务级别的临时表,其结构与student表的结构相同,并测试该表的有效性。
a) 创建

create global temporary table std_temp on commit delete ro
as
select * from student;
b) 测试:select * from std_temp;
c) 实验结果:
在这里插入图片描述在这里插入图片描述

在这里插入图片描述4. 创建一个student_range表(列、类型与student表的列、类型相同),按学生年龄分为三个区,低于20岁的学生信息放入part1区,存储在EXAMPLE表空间;20岁到30岁的学生信息放在part2区;存放在ORCLTBS1表空间中;其他数据放在part3区,存放在ORCLTBS2中。
a) 创建表空间:
Create tablespase ORCLTBS1 datafile’D:\ORCLTBS1_1.dbf’
Size 20m autoextend on next 5m;
Create tablespace ORCLTBS2 datafile ‘D:\ORCLRBS2_2.dbf’
Size 20m autoextend on next 5m;

b) 创建一个student_range表:
create table student_range(
SNO NUMBER(4) primakey key,
SNAME VARCHAR(10) UNIQUE,
SAGE NUMBER,
SEX CHAR(2),
CON NUMBER(2)
);
c) 创建范围分区
Partition by range(SAGE)(
Partition part1 values less than(‘20’) tablespace EXAMPLE,
Partition part2 values less than(‘30’) tablespace ORCLTBS1,
Partition part3 values less than(maxvalue) tablespace ORCLTBS2
);
在这里插入图片描述
在这里插入图片描述

  1. 创建一个起始值为10000的序列,步长为2,最大值为100000,不可循环,并测试该序列的有效性。
    a) 创建:create sequence std_sequence increment by 2 start with 1000 maxvalue 1000000;
    b) 测试:
    先测:nextval
    Select std_sequence.nextval from dual;
    后测:curval
    Select std_sequence.curval from dual;
    c) 运行结果:

在这里插入图片描述

  1. 为SCOTT模式下的emp表创建一个公共同义词,名称为employee,并测试该同义词的有效性。
    a) 创建:
    Create public synonym employee for scott.emp;
    b) 测试:
    Select * from employee;
    c) 运行结果:
    在这里插入图片描述

在这里插入图片描述四、 实验总结

  1. .掌握常用数据库模式对象的管理方法
  2. 在Oracle中,数据库对象是以模式为单位进行组织和管理的。
  3. 模式是指一系列逻辑数据结构或对象的集合,模式与用户相对应,一个模式只对应一个用户,并且模式名称与用户名称相同。不同模式的数据库对象可以同名。
  4. 表的管理主要包括表的创建、表约束、表参数设置、修改和删除等
  5. 临时表分为事务级别的临时表和会话级别的临时表:
    事务级别的临时表,在事务提交是系统自动删除表中的所有记录(ON COMMIT DELETE ROWS)
  6. 修改表:列的添加、删除、修改;表参数修改;表结构重组(MOVE);表重命名(RENAME);为表和列添加注释 (COMMENT ON)
  7. 创建分区表:范围分区、列表分区、散列分区、复合分区
    范围分区:按分区列值的范围划分
  8. 创建一个序列时,查询测试,需要向查询nextval,后查询curval
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值