Oracle实验数据库对象的使用
实验7Oracle基本数据库对象管理实验2

实验7 Oracle基本数据库对象管理实验2 班级姓名学号得分一、实验目的目的和要求(1)了解索引的概念和作用(2)了解序列的概念和作用(3)学习使用SQL语句创建索引(4)学习使用SQL语句创建序列实验准备(1)了解索引时对数据库表中一个或多个列的值进行排列的结构。
可以利用索引快速访问数据库表中上网特定信息。
(2)了解序列号时一个Oracle整数,最多可有38个数字。
序列的作用是自动生成整形数值,作为表中标识字段的值,有许多表在创建时定义了一个标识字段,此字段的值需要有系统自动生成,每当插入一条新纪录时,此字段的值自动加1.在Oracle中,这个功能由序列来实现。
(3)了解使用CREA TE INDEX语句创建序列索引的方法。
(4)了解使用CREA TE SEQUENCE语句创建序列的方法。
二、实验要求实验内容本实验主要包含以下内容。
(1)练习使用SQL语句创建索引。
(2)练习使用SQL语句创建序列。
1.使用SQL语句创建索引使用CREA TE INDEX语句在Users表的UserName字段创建索引,代码如下:CREA TE INDEX index_usernameON Users(UserName)TABLESPACE Users;2.创建表的同时创建索引在使用CREA TE INDEX语句在Users表的UserName字段上创建索引。
创建表Employees,在字段EmpName上创建索引。
表Employees的结构如表T1.5所示。
表Employees的结构表T1.5编号字段名称数据结构说明1 EmpId NUMBER 编号2 EmpName V ARCHAR2(50)姓名3 Sex CHAR(2)性别4 UserId NUMBER 用户编号代码如下:CREA TE TABLE Employees(EmpId NUMBER PRIMARY KEY,EmpName V ARCHAR2(50)UNIQUE,Sex CHAR(2),UserId NUMBER);3.使用SQL语句创建序列使用CREA TE SEQUENCE 语句创建序列。
Oracle数据库对象

Oracle数据库对象1,用户(user)在建立其它对象的之前,首先需要建立一个用户对象,它是其它对象的宿主。
a, 用户的导出运行/cmd/exp输入要导出的用户名称和密码输入导出文件的路径及文件名.dmp(*.dmp)b, 用户的删除和创建运行/sqlplus登录管理员用户(system/admin)删除要删除的用户(scott)scottcascade;userdrop创建新的scott用户(为导入做准备,因为之前导出的是scott用户) create user scott identified by tiger;创建用户:scott,密码:tiger为scott用户授予connect(连接)、resource权限grant connect,resource to scott;grant connect,resource to mytest identified by admin;创建用户:mytest,密码:admin,权限:connect,resourcec, 用户的导入运行/cmd/imp输入要导入的用户名称和密码(如果之前没有为新建的用户授予connect权限,这里将不能成功登录) 输入导入文件路径及文件名.dmp(*.dmp)再次输入导入用户的用户名称(如果之前没有为新建的用户授予resource权限,这里将不能成功导入)d, 测试用户(包括数据)是否导入成功登录导入的用户scott/tiger;connect查询用户下的表select * from scott;e,对用户加锁alter user scott account lock;对scott用户加锁f,对用户解锁alter user scott account unlock;对scott用户解锁g,授予用户权限select viewresourceconnect连接建立视图scotttograntconnect授予scott用户连接的权限grant create view to scott;授予scott用户建立视图的权限grant select on scott.emp to scott;授予scott用户的emp表的select权限h,收回用户权限revoke resource from scott;撤销scott用户的resource权限2,表(table)对表的操作可分为以下三个方面导入表/导出表--创建表/修改表/删除表----对表中数据的增/删/改a,导出表(exp)打开PL/SQL Developer工具连接想导出表所在的用户 tools / Export Tables在弹出的对话框中选择导出的表(可以选择一个或多个表)表下面还可以选择Oracle Export、SQL Inserts、PL/SQL Developer 选择相应的路径和文件名单击Export按钮即可b ,导入表(imp)打开PL/SQL Developer 工具 连接用户 tools / Import Tables按照导入文件类型选择相应导入标签 选择文件 单击Import 按钮即可c ,删除表drop table emp;删除emp 表d ,新建表create table userinfo(id number(4),name varchar2(20),birthday date)e,修改表①添加字段alter table userinfo add (telephone varchar2(9));为userinfo表添加telephone字段,类型为varchar2,长度为9②修改字段alter table userinfo modify (telephone varchar2(15));将userinfo表的telephont字段的长度改为15③删除字段alter table userinfo drop column telephone;删除userinfo表的telephone字段f,修改表名rename userinfo to users;修改表userinfo的名称为usersg,查看表结构userinfodesc查看表userinfo的结构h,添加数据insert into userinfo(id,name,birthday) values(1,'zhao',to_date('1987-05-26','yyyymmdd')); commit;insert into userinfo(id,name,birthday) values(2, 'zhao',to_date('19870526','yyyy-mm-dd')); commit;i,修改数据update userinfo set name = 'ZhaoPJ' where id = 1;commit;j,删除数据delete from userinfo where id = 2;commit;注:在对表进行增删改的时候,执行完语句后,必须执行commit(提交数据)语句3,约束(constraint)Oracle中用户所有表的所有约束信息都存放在该用户的user_constraints表中user_constraints表结构查询emp表中的所有约束(通过表名称查询约束信息)select * from user_constraints where table_name = 'EMP';注:这里的表名必须全大写查询特定约束信息(通过约束名称查询约束信息)select * from user_constraints where constraint_name = 'CONSTRAINT_NAME';a,添加主键约束alter table student add [constraint] stu_p_sid primary key (sid);student的sid字段设为主键主键名:stu_p_sidconstraint(约束) 可以省略b,添加外键约束alter table student add [constraint] stu_f_cid foreign key (cid) references class (cid);student的cid字段设为外键对应class的cid字段外键名:stu_f_cidc,添加联合主键约束alter table grade add [constraint] gra_p_sid_couid primary key (sid,couid);grade的sid和couid字段设为联合主键联合主键名:gra_p_sid_couid (课程表的学生编号和课程编号)d,添加唯一性约束alter table student add [constraint] stu_u_sname unique (sname);student的sname字段唯一约束(不能重复)e,添加检查约束alter table student add [constraint] stu_c_sage check (sage between 1 and 100);student的sage字段受检查年龄必须在1--100之间约束名:stu_c_sage f,添加非空约束alter table student modify sname not null;student的sname字段非空(必填项(不能为空))alter table student modify sname null;取消非空设置(即可以为空值)g,默认值alter table student modify saddress default 'Xian';student的saddress字段默认值:Xianalter table student modify saddress default null;取消默认值设置h,删除约束删除的前提是:必须知道约束名和约束所在表名alter table student drop constraint stu_p_sid [cascade];删除约束student的stu_p_sid约束4,序列(sequence)Oracle使用sequence来实现字段的自增长特性,类似SQLServer数据库中的identity属性a,建立序列create sequence seq1;建立序列seq1 从1开始每次增加1create sequence seq2 start with 100;建立序列srq2 从101开始每次增加1create sequence seq3 start with 1000 increment by 2;建立序列seq3 从1000开始每次增加2b,删除序列drop sequence seq1;删除序列seq1c,示例insert into class (cid) values ('C'||ltrim(to_char(seq1.nextval, '00')));calss表cid字段加值值:C01,C02,C03 ……insert into student (sid) values ('s'||ltrim(to_char(seq2.nextval, '00000')));student表sid字段加值值:S00101,S00102,S00103 ……insert into student (sid) values ('S'||ltrim(to_char(seq3.nextval)));student表sid字段加值值:S1000,S10002,S1004 ……5,视图(view)视图用于存放查询语句,视图中不存放数据,但视图中的数据和基表中的数据是同步的a,授予建立视图的权限用户建立视图前应该先给该用户授予建立视图的权限grant create view to scott;授予scott用户建立视图的权限b,建立视图create or replace view v_scott_emp as select * from emp where mgr = 7839;建立视图select * from emp where mgr = 7839 视图名称:v_scott_empc,使用视图select * from v_scott_emp;查询视图v_scott_emp的所有信息d,删除视图v_scott_empdropview删除视图v_scott_empe,说明①,视图可以简化查询语句,当需要使用复杂的子查询的时候,可以先为子查询建立视图,然后在基于该视图进行查询。
Oracle数据库的使用

实验一数据库系统的使用1.实验目的●熟悉和掌握数据操作语言和数据查询语言;●使用对象-关系SQL进行建模和查询●掌握用户、权限和角色的创建和管理,以及数据库审计2.实验要求●独立完成实验内容;●实验报告;(简单要求如下)1)实验的整个过程(包括用户身份,SQL执行语句,SQL执行结果(截屏))2)回答实验中提出的问题3)结果分析。
[注] 标有可选的实验可以不做。
3.实验内容3.1 创建用户、角色由系统管理员(admin)创建以下数据表:课程信息表CourseInfo,排课信息表ClassInfo,部门代码表DepartmentInfo,教师信息表TeacherInfo,学生信息表StudentInfo,选课信息表SelectiveInfo,保存在系统管理员的schema中。
请按照文档lab1_DataModel.doc的表结构创建表。
实验步骤:1)建立角色;2)为角色分配权限;3)建立密码管理和资源限制Profile文件;4)建立用户;5)为用户分配角色;6)用户登录,执行相应的SQL操作。
3.2 权限管理及安全信息查询1)系统管理员admin登录选课系统数据库,登录三次失败,第四次输入正确的密码进行登录,会出现什么情况?为什么?2)使teacher1具有创建数据表系统权限,以用户teacher1登录,创建一个部门代码表DepartmentInfo作为系统管理员创建的选课信息表的备份;3)用户teacher1登录,分配学生用户(你的名字)查看teacher1. DepartmentInfo记录的权限;学生用户登录,查看teacher1. DepartmentInfo中的记录;〔可选〕4)从数据字典中查看teacher1和学生用户的信息;5)从数据字典查看teacher1可使用的数据表空间的空间大小信息。
〔可选〕6)取消用户teacher1创建数据表权限;取消学生用户查看teacher1. DepartmentInfo记录的权限;7)从数据库中删除用户teacher1。
oracledata数据库对象创建与使用

5.1 数据库对象概述
Oracle数据库的基本对象
表(table) 索引(index) 过 程 ( procedure ) 函数(function) 快照(snapshot) 快照日志(snapshot log) JAVA类 JAVA源
视图(view)
序 列 ( sequence )
5.3.4 外部表(External Table)
定义: 外部表就是以数据库内部表的形式定义,且其数据并不 在数据库内部存储的一种表。该表与数据库外部某个扁 平文件相对应。
在原来已有表的基础上建立一个新表
命令格式: SQL>Create table <table_name> as select <selected_column_name> from old_table [where condition];
常见的表管理命令
使一个表上的约束失效
将一个表更名
alter table emp_infor disable constraint fk_emp_deptno;
5.3.2 全局临时表(Global Temporary Table)
它总是在用户的临时表空间中创建。全 局临时表或者是包含特定的会话数据, 或者是包含特定的事务数据。
临时表与常规表之间的区别
(1)临时表在创建后并不象其他常规表一样分配段 (segment)。 (2)不同的会话使用相同的GTT会得到不同的临时表空间。 (3)当会话或事务结束时,临时段自动被清除。临时表也 会随着数据库的关闭从临时段中消失。 (4)包含特定事务数据的临时表仅在事务打开或活动时可
触 发 器 ( trigger )
包(package) 包 体 ( package body)
Oracle对象管理及使用实验报告

Oracle对象管理及使用实验报告Oracle对象管理及使用实验报告班级:10网工三班学生姓名:谢昊天学号:1215134046实验目的和要求:掌握Oracle的常用对象的操作方法。
会使用常用对象解决一些实际问题。
实验内容:(1)表结构的建立、修改、查看、删除操作。
(2) 索引的建立、修改、查看、删除操作。
(3) 视图的建立、查询、修改、删除操作。
(4) 同义词的建立、查询、修改、删除操作,比较对同义词的操作与对原数据库对象的操作是否一致。
(5) 掌握序列的建立、查询、修改、删除操作,利用序列向数据库表中插入数据。
实验步骤与调试过程:1.创建表结构,利用命令行方式将下列各表建立到员工医疗保险系统数据库中。
表结构如附录员工医疗保险系统,查看表结构,修改表结构,删除表结构。
索引、视图、同义词及序列操作2.创建索引(1) 利用企业管理器为医院表的医院名称创建索引,并以降序排列,索引名为“hospital_name_index”。
(2) 利用SQL*Plus或iSQL*Plus为员工表的员工姓名、员工性别、出生年月排序,以员工姓名升序、员工性别降序、出生年月降序排列,索引名为“staff_info_index”。
3.查看索引(1) 利用企业管理器查看“ygbx_user”方案下有几个隶属于该方案的索引,有几个系统创建的索引,有几个用户创建的索引。
(2) 利用SQL*Plus或iSQL*Plus从DBA_INDEXES数据字典中查看员工医疗保险系统所有索引的信息。
(3) 利用SQL*Plus或iSQL*Plus从DBA_INDEXES数据字典中查看“staff_info_index”索引的信息,并查看该索引列的顺序及状态。
4.删除索引(1) 利用企业管理器删除“hospital_name_index”索引。
(2) 利用SQL*Plus或iSQL*Plus 将“staff_info_index”索引删除。
5.查看视图6.视图数据的更新。
第四章Oracle数据库对象

本章课时要求:6课时本章内容提纲:表(2课时)表的概念、基本数据类型表的种类:基本表,索引表(IOT),聚簇表等创建表、修改表、删除表、表信息簇索引簇:概念、创建索引簇、创建聚簇表、建立簇索引、维护索引簇散列簇:概念、创建散列簇、维护散列簇索引(2课时)索引概念、索引分类、建立索引修改索引、删除索引、索引信息视图视图概念、建立视图、维护视图、视图信息序列(2课时)序列概念、创建序列、使用序列、修改序列、删除序列、序列信息数据库链接概念、建立、删除、信息同义词同义词概念、作用、分类、建立、删除、信息快照概念、实例4第04章数据库对象表、索引、簇、视图、序列、同义词、链接、快照是Oracle重要的数据库对象。
本章具体介绍各种数据库对象的建立、维护等操作。
每个数据库对象都为某个用户所有。
用户拥有的全部对象称为模式(schema),模式对象用模式对象名”用户名.对象名”表示。
同一用户的对象名必须唯一,不同用户可有相同的对象名。
例如:scott用户和system用户都创建了temp表,它们完整的模式对象名是scott.temp 和system.temp;如果scott访问system的temp表,须使用完整的模式对象名system.temp;如果使用自己的对象,既可以使用完整名scott.temp,也可以使用对象名temp。
4.1表4.1.1表的概念表(TABLE)是数据库的基本数据存储单元,用于存储用户数据。
表是由行(row)、列(column)构成,其中行称为记录(record),列称为字段(field);每个列包括列名、数据类型(有的需要指定数据宽度,如果是数值类型,还有精度和刻度)、约束、默认值等。
所有列组成表结构(或表定义)。
表的形式如下:表4.1.2基本数据类型在定义表的每一列时,要给定列名(column),在定义列名时,一般采用英文或汉语拼音的缩写,避免直接使用汉字。
在一个系统中,列名的命名要遵守一致的规范,以便相互理解列的含义和作用。
oracle模式对象实验
《Oracle数据库》实验报告姓名学号日期实验室指导教师设备编号实验题目实验单元二表空间、模式对象一、实验目的1)熟悉表空间的创建与分配,会不同方法扩充表空间;2)正确理解数据库模式对象——索引、视图、序列、同义词的定义和作用;二、实验内容1.在命令提示符界面下,以sys账户连接到orcl数据库;创建表空间sample,数据文件放到D盘,大小50M,自动扩展;查看以下表空间中是否有sample;2.把用户SCOTT的默认表空间改为sample;3.为表空间sample增加数据文件,数据文件放在E盘,初始大小10M,自动增长,每次增长大小为5M,最大到50M;4.修改表空间sample中在D盘的数据文件大小,改为80M;5.查看所有表空间的名称,数据文件地址,空间大小(把字节转成MB);6.以SCOTT账户登录到SQLPLUS,创建表myemp和emp表具有相同的结构和记录;7.为myemp表的empno创建主键约束;8.为myemp表添加一列备注列remark,查看表结构是否增加成功;9.创建一个序列seq_test,开始值为1,增量值为1,最大值到9999,达到最大值之后可以重复,使用10个序列预分配;10.创建一个表test,字段有id,name,day,日期默认系统日期,做insert操作,要求使用序列seq_test;11.为DEPT表创建一个同义词syn_dept,查看所有DEPT的信息;12.在DEPT表的LOC字段创建基于LOWER函数的索引;查询地址是dallas的部门信息;13.创建视图v1_emp,只包含emp表中的empno 和ename属性;14.创建视图v2_emp,视图包含emp表中的empno 和ename属性和DEPT表中的dname 属性,对这两个视图插入数据观察有什么不同;三、实验要求1)报告中列出以上操作中的主要的操作步骤,对于重要的运行界面和结果窗口,可以用Alt+PrintScreen来截取当前窗口,并粘贴到实验报告中。
Oracle数据库技术实验指导书
绥化学院计算机学院2010年—2011学年冬学期专业:计算机科学与技术指导教师:管绍贤实验一ORACLE的安装与配置一、实验目的1、安装并配置oracle服务器,并创建数据库实例SHXY;2、启动和关闭oracle的相关服务,了解每个服务的作用;3、了解熟悉OEM。
二、实验内容1、安装过程(1)启动操作系统,以管理员身份登录,关闭其他应用程序,准备安装。
(在这之前要在FTP上下载安装软件包,并解压);(2)启动安装,选择高级安装;(3)下一步,选择企业版(E);(4)下一步,选择安装路径;(5)下一步,将“正在检查网络配置需求”的状态打勾,出现“用户已验证”;(6)通过验证,下一步,选中“创建数据库”;(7)下一步,选“一般用途”;(8)下一步,分别输入“全局数据库名”和“SID”;(9)下一步,选择“使用Database Control 管理数据库”;(10)下一步,选择“文件系统”,填入“指定数据库文件位置”;(11)下一步,“不启用自动备份”;(12)下一步,为各个用户名输入不同的口令,或者统一设定口令;(13)下一步,显现安装的相关设置、要求及接下来所要安装的组件;(14)开始安装;(15)安装结束,开始配置;(15)下一步,如有需要,进行口令管理,否则“确定”,安装成功,退出。
2、启动oracle服务在Microsoft 环境下安装的Oracle RDBMS 一般会将某些服务设置为“自动”,为避免与其他软件冲突,可将Oracle实例的启动方式设置为“手动”。
3、打开oracle OEM用户界面,以DBA身份登录,熟悉oracle OEM的各个部件。
实验二SQL*Plus常用命令一、实验目的1、掌握SQL*Plus常用命令的使用。
2、使用SQL命令执行简单查询。
二、实验内容Oracle公司提供的附加语句(命令),可以满足程序人员和管理员的一些特殊操作要求。
比如,在显示上百行记录信息时,为便于查看显示结果,可采用每屏“暂停”方式实现。
Oracle10g的数据库、数据库对象及数据库安全性管理
实验三Oracle10g的数据库、数据库对象及数据库安全性管理实验目的1.掌握用户(以学号为用户名)的建立、删除、角色的授权以及用户密码的修改。
2.掌握连接数据库以及断开连接的方法。
3.建立基本的数据库表,表结构的修改、显示与删除。
4.学习提交与回滚的方法5.学习对表中数据进行插入,删除,修改及查询操作实验内容1.SQL*Plus的启动2.以sys用户登陆教师机stud773.创建表空间、4.以自己的名字首字母加学号(zs0001)建立用户5.给创建的用户授权(create session和dba)6.利用数据字典查看用户对所建表的对象权限7.创建emp表(表结构同scott用户的emp表),并指明表所在的表空间8.为emp表插入数据9.用数据字典查看emp表所在的表空间10.使用user_segments数据字典查询emp表占用空间11.从emp表中抽取EMPNO,ENAME,JOB,SAL字段生成新表EMP_PART12.用truncate table 命名删除EMP_PART中的数据13.用drop删除新表EMP_PART14.给emp表增加一个出生日期字段,要求为日期类型15.修改emp表的ename字段长度为1216.查看emp表的约束17.修改该表,给ename字段创建unique约束18.删除上面创建的约束19.创建会话临时表查找出Job为clerk的记录20.用数据字典查看本用户可以使用的表21.用pl/sql语句中的游标累加统计上面临时表中的薪水sal汇总,并输出22.给emp表中的empno和ename建立复合索引23.备份数据库24.删除数据库25.还原数据库26.断开与数据库的连接27.退出sql*plus主要仪器设备及其配套数1、装有oracle 10g的计算机且操作系统为Windows xp。
2、一人一机实验室名称计算机实验室实验报告1、实验各项内容实现的过程。
2、实验结果分析。
实验1 数据库对象创建和结构管理(20181014)oracle
(2)查看当前数据库的数据文件: select * from dba_data_files;
(3)查看当前数据库的重做日志组: select group#, sequence#, members, status from v$log;
(4)查看当前数据库的日志文件: select group#, member, status from v$logfile;
姓名
学号
实验日期
2018.10.15院系Leabharlann 计算机与互联网学院班级
实验出勤、操作得分
实验报告得分
实验总分
实验名称
数据库对象创建和结构管理
实验条件
实验器材
计算机
一、实验目的及要求
1、掌握创建数据对象的步骤和方法。
2、掌握SQL*Plus的使用方法。
3、掌握表空间和数据文件的创建、修改和删除方法操作。
要求记录实验过程中的基本步骤和用到的命令。
(4)【确定】按钮后,在SQL Developer左侧的“连接”窗口中,展开该用户下的表文件夹,可以看到新建的MEMBER表。用鼠标单击该表名,在SQL Developer右侧会看到已经创建的表结构信息。
2、查看数据库信息
(1)查看当前数据库的控制文件: select * from v$controlfile;
3、创建表空间stu_tbs
(1)create tablespace stu_tbs datafile 'c:\ora_data\stu\stu001.dbf' size 10m reuse
autoextend on next 128k maxsize 100m,'c:\ ora_data\stu \stu002.dbf' size 5k ;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:Oracle数据库实用教程
实验项目:数据库对象的使用
姓名:
专业:计算机科学与技术
班级:
学号:
计算机科学与技术学院
年月日
哈尔滨理工大学计算机科学与技术学院实验报告
实验项目名称:数据库对象的使用
一、实验目的
掌握表、视图、索引、序列、数据库链路、实体化视图的使用方法
二、实验内容
1、熟悉数据类型
2、创建和删除表、索引、视图、序列、数据库链路、实体化视图等对象
3、在相关数据字典中查看定义的数据库对象
4、维护表上的约束、索引,更改表、索引的表空间
5、对简单视图、复杂视图执行插入、删除、修改数据操作
6、将序列值用于INSERT、UPDATE语句
7、创建数据库链路并测试数据表的复制
三、实验截图与部分代码
1、
1>、字符数据类型:包括CHAR,VARCHAR2,LONG。
2>、数值数据类型只有NUMBER型,但是NUMBER功能不小,它可以存储正数,负数,零,定点数和精度为30位的浮点数。
3>、日期时间数据类型:有DATE数据类型,TIMESTAMP数据类型。
4>、RAW和LONG RAW 数据类型
此种数据类型主要用于存储二进制数据。
5>、LOB数据类型
LOB又称为“大对象”数据类型:主要有CLOB,BLOB,BFILE,三种子类型。
2、创建学生相关表,在列之外定义约束。
CONN scott/wawawa@oooo
CREATE TABLE student(
sno VARCHAR2(10),
name VARCHAR2(20) NOT NULL,
sex VARCHAR2(2),
age NUMBER(2),
class VARCHAR2(7) NOT NULL,
CONSTRAINT stu_pk_sno PRIMARY KEY (sno),
CONSTRAINT stu_unique_name UNIQUE(name),
CONSTRAINT stu_check_sex CHECK (sex IN('男','女')),
CONSTRAINT stu_check_age CHECK (age BETWEEN 16 AND 20));
CREATE TABLE course(
cno VARCHAR2(4),
cname VARCHAR2(16) NOT NULL,
remark VARCHAR2(200) DEFAULT '专业课',
CONSTRAINT course_pk_sno PRIMARY KEY (cno));
CREATE TABLE score
( sno VARCHAR2(5),
cno VARCHAR2(4),
score NUMBER(5,2),
CONSTRAINT score_fk_sno FOREIGN KEY(sno)
REFERENCES student(sno) ON DELETE CASCADE, CONSTRAINT score_fk_cno FOREIGN KEY(cno)
REFERENCES course(cno) ON DELETE CASCADE,
CONSTRAINT score_pk_sno_cno PRIMARY KEY(sno,cno)); INSERT INTO student VALUES('01080', '张三', '男',19, '01-01'); INSERT INTO course(cno,cname) VALUES('1E23', 'Oracle数据库'); INSERT INTO score VALUES('01080', '1E23',89);
COMMIT;
3、为雇员表emp建立以ename为索引列的索引,索引名为emp_ename_index,索引存放到表空间my_index。
CONN system/wawawa@oooo AS SYSDBA
CREATE TABLESPACE my_index
DATAFILE '%ORACLE_HOME%\database\my_index.dbf' SIZE 1M REUSE;
CONN scott/wawawa@oooo
CREATE INDEX emp_ename_index
ON emp(ename DESC)
TABLESPACE my_index;
COL TABLE_NAME FORMAT A15
COL INDEX_NAME FORMAT A18
COL COLUMN_NAME FORMAT A15
SELECT ix.table_name, ic.index_name, ic.column_name,
ic.column_position col_pos, ix.uniqueness
FROM user_indexes ix , user_ind_columns ic
WHERE ic.index_name = ix.index_name
ORDER BY ix.table_name;
4、重建PK_EMP索引并指定新的数据块空间使用参数
CONN /@oooo AS SYSDBA
COL index_name FORMAT A15
SELECT index_name,pct_free,
pct_increase,initial_extent,next_extent
FROM dba_indexes
WHERE owner='SCOTT' AND index_name='PK_EMP';
ALTER INDEX scott.pk_emp REBUILD
PCTFREE 30;
SELECT index_name,pct_free,
pct_increase,initial_extent,next_extent
FROM dba_indexes
WHERE owner='SCOTT' AND index_name='PK_EMP';
5、为表emp建立视图v_emp_d20,只显示20号部门的雇员和他们的年收入。
conn scott/wawawa@oooo
CREATE OR REPLACE VIEW v_emp_d20
AS SELECT ename, (sal+nvl(comm,0))*12 annual_income
FROM emp WHERE deptno=20;
SELECT * FROM v_emp_d20;
6、某电子商务网站估计每月产生近千万条订单记录。
该网站采用年YYYY+月MM+当月流水号nnnnnnnn的形式标识和区分每一份订单。
当有用户提交一份订单时,系统自动生成该订单的编号并告知用户这个唯一的订单号。
创建一序列,用于生成每月的订单流水号。
CONN scott/wawawa@oooo
CREATE SEQUENCE order_seq
INCREMENT BY 1
START WITH 10000000
CACHE 500
NOCYCLE;
COL sequence_name FORMAT A13
SELECT sequence_name, min_value, max_value, increment_by, last_number
FROM user_sequences;
SELECT order_seq.CURRVAL FROM DUAL;
SELECT order_seq.NEXTVAL FROM DUAL;
SELECT order_seq.CURRVAL FROM DUAL;
SELECT order_seq.NEXTVAL FROM DUAL;
SELECT order_seq.CURRVAL FROM DUAL;
7、序列值的使用。
CONN scott/wawawa@oooo
CREATE TABLE order_header (
order_id VARCHAR2(14),
customer_id VARCHAR2(12),
order_value NUMBER(10,2),
submit_time TIMESTAMP);
INSERT INTO order_header VALUES(
to_char(SYSDATE,'yyyymm')||order_seq.nextval,
'1000',3750,SYSTIMESTAMP);
COMMIT;
COL submit_time FORMAT A33
COL order_value FORMAT L0999
SELECT * FROM order_header;
四、实验心得
通过实验课程加深了我对理论课程的理解、掌握、和运用,具体掌握了掌握表、视图、索引、序列、数据库链路、实体化视图的使用方法。