实验7_Oracle基本数据库对象管理
- 格式:doc
- 大小:2.70 MB
- 文档页数:23
实验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数据库实用教程实验项目:数据库对象的使用姓名:专业:计算机科学与技术班级:学号:计算机科学与技术学院年月日哈尔滨理工大学计算机科学与技术学院实验报告实验项目名称:数据库对象的使用一、实验目的掌握表、视图、索引、序列、数据库链路、实体化视图的使用方法二、实验内容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@ooooCREATE 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。
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进行数据库管理数据库管理是现代信息技术领域中的重要环节,其在各种软件系统中起到了至关重要的作用。
而Oracle作为关系数据库管理系统(RDBMS)中的佼佼者,其功能和性能优势备受业界认可。
本文将介绍学习使用Oracle进行数据库管理的方法和技巧。
第一章:数据库管理基础知识数据库管理是指对数据库进行规划、设计、建立、部署、维护和优化等一系列管理活动。
在学习使用Oracle进行数据库管理之前,首先需要掌握数据库管理的基础知识。
包括数据库模型、数据定义语言(DDL)、数据操作语言(DML)等概念和相关技术。
第二章:Oracle数据库的安装与配置学习使用Oracle进行数据库管理的第一步是正确地安装和配置Oracle数据库。
这包括选择合适的版本、下载安装文件、设置安装环境、运行安装程序等一系列步骤。
同时,还需要了解Oracle数据库的配置参数和选项,以便根据实际需求进行适当的配置。
第三章:Oracle数据库的创建与管理在安装和配置好Oracle数据库之后,接下来需要学习创建和管理数据库的方法。
包括创建数据库实例、创建表空间、创建用户和角色、分配权限等操作。
同时,还需要了解如何备份和恢复数据库,以及如何监控数据库的运行状态和性能。
第四章:数据的导入与导出在实际的数据库管理工作中,经常需要将数据从一个数据库导入到另一个数据库,或者将数据导出为一个文件进行备份和共享。
因此,学习使用Oracle进行数据的导入和导出是非常重要的。
这包括了解导入和导出的方法、参数和选项,以及如何处理导入导出过程中可能出现的问题。
第五章:数据库优化与调优数据库优化和调优是数据库管理的重要任务之一。
优化数据库可以提高系统性能,提升用户体验。
而调优则是在遇到性能问题时对数据库进行诊断、分析和调整,以解决问题并优化系统。
学习使用Oracle进行数据库优化和调优需要了解相关的技术和工具,如索引优化、查询优化、性能监视器等。
oracle数据库对象管理笔记Oracle数据库对象:表、索引、存储过程、函数Schema:某个用户下面对象的集合Schema的名称与用户名相同,但是schema与用户不是一回事,如果用户下面没有任何对象,那么这个用户就不存在schema,用户下面有对象了,那么schema 就存在了 Oracle数据库里面最重要的对象就是表和索引表用来存储数据索引用来加快查询速度表表名+字段名+字段类型每个表都会对应一个segment,表物理上存在segment里面表的作用在于方便我们更新对应segment里的数据,以及将segment里的数据格式化成我们容易理解的形式,并展现出来Oracle里面表的分类1、普通表一个表对应一个segment2、分区表一个表被分成多个分区,每个分区对应一个segment,每个segment可以位于不同的表空间里,对于数据量非常大的表,我们可以采用这种方式。
3、索引组织表IOTIOT必须有一个主键索引,同时所有的数据与主键列一起存放在主键索引的叶子节点里,IOT在存储上属于索引,因此通过索引来对应segment 4、簇表cluster table应用场合比较明显主表和明细表,经常两个表进行关连查询,例如订单主表、订单明细表通过建立簇表,一个数据块里面存放了两个表的数据,加快了关联查询速度普通表也叫堆组织表,记录是无序的有主键就有索引,就有消耗,主键必须有有索引,保证主键没有重复,索引主键消耗了资源索引组织表是一个真实的表索引的优点是数据量小于表,常驻在内存中,读索引是在内存中读取的, IOT 的主键列是有序的,将整个表生成树,缺点是占用内存,有点也是数据放在内存中,不需要跳来跳去,适用于批量读取数据例如取一个范围内的数据 IOT的致命的地方是占用内存空间大,但如果放在硬盘中反而会很慢。
IOT是有序排列的,但如果需要插入数据时,则整个表都需要移动,增删改操作会十分缓慢 IOT适合数据仓库,不适于实时生产环境中簇表适合于数据仓库中普通表Oracle为列提供了很多的类型char(n):字符长度为n,不足部分以空格补齐varchar2(n):变化长度的字符串,根据实际占用分配空间number(n,m):n表示数据的总长度,m表示小数位数date:日期类型,包含日期和时分秒等等,上面是常用的这个表对与DML语句是否启用日志表的初始extent的大小,默认值就是表所在的表空间上所设定的extent大小数据块在剩余空间>10%的时候,可以继续insert,当小于10%的时候,不能继续insert,剩余空间留给update因为表空间启用了ASSM,因此没有参数表属于哪个buffer pctusedcache Pctused表示当数据块的剩余。
Oracle数据库基础教程实验报告专业计算机科学与技术姓名李文成学号 2010指导老师肖卓宇实验一创建数据库和表目的与要求(1)了解oracle数据库的逻辑结构和物理结构。
(2)了解Oracle Enterprise Manager的使用情况。
(3)学习关闭和启动数据库实例的方法。
(4)学会使用SQL语句创建数据库的方法。
(5)学会使用SQL语句删除数据库的方法。
实验准备首先要了解Oracle数据库的逻辑结构,包括方案对象,数据块、区间、段、和表空间等。
数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间则由数据块组成。
Oracle数据库的物理结构由构成数据库的操作系统文件所决定。
每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。
这些数据库文件为数据库信息提供真正的物理存储。
Enterprise Manager 10g是Oracle 10g提供的新的管理工具,简称EM。
使用它可以完成启动、关闭数据库,创建、删除数据库等功能。
只有系统管理员或拥有CREATE DATABASE权限的用户才能创建数据库。
可以在Enterprise Manager 中通过图形界面创建数据库,也可以使用CREATE DATABASE语句创建数据库。
实验内容oracle 服务器端的安装先解压10201_client_win32.zip压缩包,双击setup.exe。
如下图:稍等之后进入欢迎界面,如下图:点击下一步选择“管理员”安装类型,点击下一步:选择安装的详细目录后点击下一步。
点击安装:选择执行典型配置:点击下一步:完成。
创建数据库使用OEM创建表图1-1创建Employees表图1-2成功创建Employees表图1-3成功删除Employees表图1-4创建Departments表图1-5成功创建Departments表图1-6 成功删除Departments表图1-7创建Salary表图1-8成功创建Salary表图1-9成功删除Salary表在PL/SQL语句创建表1.创建Employees表create table Employee(EmployeeID char(6) NOT NULL PRIMARY KEY,Name char(10) NOT NULL,Bithday date N OT NULL,Sex number(1) NOT NULL,Address char(20) NULL,Zip char(6) NULL,PhoneNumber char(12) NULL,DepartmentID char(3) NOT NULL REFERENCES Departments(DepartmentID))tablespace users;图1-10 使用SQL语句创建Employees表2.创建Departments表create table Departments(DepartmentID char(3) NOT NULL PRIMARY KEY, Departmentname char(20) NOT NULL,Note varchar2(100) NULL)tablespace users;图1-11 使用SQL语句创建Departments表3.创建Salary表create table Salary(EmployeeID char(6) NOT NULL PRIMARY KEY,InCome number(8,2) NOT NULL,OutCome number(8,2) NOT NULL)tablespace users;图1-11 使用SQL语句创建Salary表实验二角色和用户管理目的与要求(1)了解Oracle数据库用户和角色的概念。
实验7 Oracle基本数据库对象管理实验班级计算机11-1 姓名臧夏骅学号 27 得分一、实验目的目的和要求(1)了解Oracle表和视图的概念。
(2)学习使用SQL语句创建。
(3)学习使用SELECT语句查询数据。
(4)学习使用SQL语句创建表。
二、实验要求3.练习使用SQL语句修改表中的数据使用UPDATE语句可以修改表Users中的数据。
参照下面的步骤练习使用将表Users中Admin用户的密码修改为AdmimPassword。
(1)以SYSTEM用户登入到iSQL*Plus。
(2)使用UPDATE语句将表Users中Admin用户的密码修改为AdminPassword,代码如下:UPDATE ers SET UserP wd=’ AdminPassword’ WHEREUserName=’Admin’(3) 使用SELECT语句查看用户Admin的密码,代码如下:SELECT UserP wd FROM ers WHERE UserName=’Admin’4练习使用SQL语句删除表中的数据使用DELETE可以删除表Users中的数据。
参照下面的步骤练习使用将表Users中Wangfan 用户的密码修改为AdminPassword.(1)以SYSTEM用户登录到iSQL*Plus。
(2)使用DELETE语句将表Users中的Wangfan用户删除,代码如下:DELETE FROM er WHERE UserName=’Wangfan’(3)使用SELECT语句查看表Users中的数据,确认用户Wangfan是否被删除,代码如下:SELECT * FROM ers5.练习使用SELECT语句查询数据练习使用SELECT语句查询数据库中的用户数据,分别按以下方式查询数据库。
(1) 查询表User中的所有数据。
以SYSTEM用户登录到 iSQL*plus,然后执行如下代码:SELECT*FROM ers*代表ers中的所有字段。
(2) 在返回结果中使用自定义标题。
以SYSTEM用户登录到 iSQL*plus,然后执行如下代码:SELECT UserName AS 用户名,UserPwd AS 密码FROM ers(3) 设计查询条件。
查询所有普通用户的信息。
以SYSTEM用户登录到 iSQL*plus,然后执行如下代码:SELECT*FROM ers WHERE UserType=2查询用户Admin的密码信息。
以SYSTEM用户登录到 iSQL*plus,然后执行如下代码:SELECT UserPwd FROM ers WHERE UserName=’Admin’(4) 对查询结果进行排序。
查询所有普通用户的信息,并按用户名的降序排列结果集。
以SYSTEM用户登录到iSQL*Plus,然后执行如下代码:SELECT * FROM ers ORDER BY UserName DESC(5) 对记录进行统计。
统计表Users中共有多少个用户记录。
以SYSTEM用户登录到iSQL*Plus,然后执行如下代码:SELECT COUNT(*) FROM ers(6) 实现连接查询。
查看每个用户的登记记录。
以SYSTEM用户登录到iSQL*Plus,然后执行如下代码:SELECT erName,l.LoginTimeFrom Users u INNER JOIN LoginInfo 1ON erId=erId在上面的SELECT语句中涉及两个表:表User1和表LoginInfo1。
在FROM子句中,为每个表指定一个别名,表Users1的别名为u,表LoginInfo11的别名为1。
6.练习使用SQL语句创建视图使用CREATE VIEW语句创建用户登录信息表UserLogin,代码如下:CREATE VIEW UserLoginAsselect erName,l.LoginTime from users u inner join LoginInfo l on erId=erId;select * from UserLogin;三、实验学时安排课堂内3学时完成二中所列1、2、3、4、5、6四项内容,其余各项内容均在课外自行上机练习完成。
四、实验内容与步骤(2)使用CREATE TABLE语句创建表Users1,代码如下CREATE TABLE Users1( UserId Number primary Key,UserName Varchar2(40) NOT NULL,UserType Number(1),UserPwd Varchar2(40));使用CREATE TABLE语句创建用户登录信息表LoginInfo,结构如表T1.2所示。
表T1.2 表Logininfo的结构编号字段名称数据结构说明1 UserId NUMBER 用户编号2 LoginTime CHAR(20) 用户名参照下面的步骤练习使用CREATE TABLE 语句创建表Login Info.(1)以实验2中创建的用户jsj111_27登录到Isql*Plus.(2)使用CREATE CREATE语句创建表Logi nInfo1,代码如下:CREATE TABLE Logi nInfo1( UserId Number primary Key,LoginTime CHAR(20));(4)使用INSERT语句向表Users中插入数据,代码如下:insert into users1 (userid,username,usertype,userpwd)values(1,'admin',1,'admin'); insert into users1 (userid,username,usertype,userpwd)values(2,'user',2,'users'); insert into users1 (userid,username,usertype,userpwd)values(3,'liuli',2,' liuli ');insert into users1 (userid,username,usertype,userpwd)values(4,'wangfan',2,' wangfan');commit;select * from users1;使用INSERT语句向表LoginInfo1中查入数据,内容如表T1.4所示。
表T1.4表LoginInfo1中的数据UserID LoginTime12008-03-27 10:33:0212008-03-28 08:34:1312008-03-29 09:13:1122008-03-27 07:35:0222008-03-28 08:11:5422008-03-29 09:13:1132008-03-27 08:33:0232008-03-28 09:34:1332008-03-29 10:13:1142008-03-27 11:33:0242008-03-28 13:34:1342008-03-29 15:13:11按照下面的步骤练习使用INSERT语句向表LoginIfo中插入数据。
(1)以实验2中创建的用户jsj111_27登录到Isql*Plus.(2)使用CREATE CREATE语句创建表LoginInfo,代码如下:INSERT INTO jsj111_27.LoginInfo VALUES(1,’2008-03-27 10:33:02’); INSERT INTO jsj111_27.LoginInfo VALUES(1,’2008-03-28 08:34:13’); INSERT INTO jsj111_27.LoginInfo VALUES(1,’2008-03-29 09:13:11’); INSERT INTO jsj111_27.LoginInfo VALUES(2,’2008-03-27 07:35:02’); INSERT INTO jsj111_27.LoginInfo VALUES(2,’2008-03-28 08:11:54’); INSERT INTO jsj111_27.LoginInfo VALUES(2,’2008-03-29 09:13:11’); INSERT INTO jsj111_27.LoginInfo VALUES(3,’2008-03-27 08:33:02’); INSERT INTO jsj111_27.LoginInfo VALUES(3,’2008-03-28 09:34:13’); INSERT INTO jsj111_27.LoginInfo VALUES(3,’2008-03-29 10:13:11’); INSERT INTO jsj111_27.LoginInfo VALUES(4,’2008-03-27 11:33:02’); INSERT INTO jsj111_27.LoginInfo VALUES(4,’2008-03-28 13:34:13’); INSERT INTO jsj111_27.LoginInfo VALUES(4,’2008-03-29 15:13:11’);COMMIT;3.练习使用SQL语句修改表中的数据使用UPDATE语句可以修改表Users1中的数据。
参照下面的步骤练习使用将表Users1中Admin用户的密码修改为AdmimPassword。
(1)以SYSTEM用户登入到iSQL*Plus。
(2)使用UPDATE语句将表Users1中Admin用户的密码修改为AdminPassword,代码如下:update jsj111_ers1set userpwd='adminpassword'where username ='admin';(3) 使用SELECT语句查看用户Admin的密码,代码如下:SELECT UserPwd FROM JSJ111_ers1 WHERE UserName=’Admin’4练习使用SQL语句删除表中的数据使用DELETE可以删除表Users1中的数据。
参照下面的步骤练习使用将表Users1中Wangfan用户的密码修改为AdminPassword.(4)以SYSTEM用户登录到iSQL*Plus。
(5)使用DELETE语句将表Users1中的Wangfan用户删除,代码如下:delete from jsj111_ers1 where username='wangfan';commitwork;(6)使用SELECT语句查看表Users1中的数据,确认用户Wangfan是否被删除,代码如下:SELECT * FROM JSJ111_ERS15.练习使用SELECT语句查询数据练习使用SELECT语句查询数据库中的用户数据,分别按以下方式查询数据库。