oracle实验报告

合集下载

oracle数据库实验报告

oracle数据库实验报告

oracle数据库实验报告《Oracle数据库实验报告》在当今信息化时代,数据库管理系统扮演着至关重要的角色。

Oracle数据库作为全球领先的企业级数据库管理系统,在各行各业都有着广泛的应用。

本次实验旨在通过对Oracle数据库的实验操作,深入了解其基本功能和特点,并探讨其在实际应用中的优势和局限性。

实验一:数据库的创建与连接在实验中,我们首先学习了如何使用SQL命令创建一个新的数据库,并通过用户名和密码连接到该数据库。

通过这一步骤,我们了解了Oracle数据库的基本操作流程,包括数据库的创建、用户的授权和连接等。

实验二:数据表的创建与管理在本次实验中,我们学习了如何使用SQL命令创建数据表,并进行数据的插入、查询、更新和删除操作。

通过这些操作,我们深入了解了Oracle数据库的数据管理功能,包括数据表的设计和维护等。

实验三:索引的创建与优化索引是数据库中非常重要的组成部分,能够提高数据的检索效率。

在本次实验中,我们学习了如何使用SQL命令创建索引,并通过优化查询语句来提高数据库的性能。

这些操作让我们更加深入地了解了Oracle数据库的优化功能,以及如何通过索引来提高数据库的性能。

实验四:备份与恢复数据库的备份与恢复是数据库管理中至关重要的一环。

在本次实验中,我们学习了如何使用Oracle数据库提供的工具进行数据库的备份和恢复操作。

这些操作让我们了解了数据库的灾难恢复功能,以及如何保障数据的安全性。

通过本次实验,我们深入了解了Oracle数据库的基本操作和功能,包括数据库的创建与连接、数据表的管理、索引的优化以及备份与恢复等。

同时,我们也发现了Oracle数据库在实际应用中的优势,如稳定性、安全性和性能优化等方面。

然而,我们也意识到Oracle数据库在一些特定场景下存在一定的局限性,如高昂的成本、复杂的配置和维护等。

总的来说,本次实验让我们更加深入地了解了Oracle数据库的特点和功能,对我们今后的数据库管理工作有着重要的指导意义。

oracle实习报告

oracle实习报告

实验四数据更新与视图一、实验目的1、掌握数据更新语句的使用;2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。

二、实验内容及其对应的SQL语句1.在实验二创建的表中使用SQL语句完成以下操作:(1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:供应零件P5给工程J7数量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库。

insertinto s(sno,sname,city)values('s9','英特尔','西安');insertinto spj(sno,pno,jno,qty)values('s9','p5','j7',600);insertinto spj(sno,pno,jno,qty)values('s9','p4','j4',500);commit;(2)请将北京供应商的供应数量加20update spjset qty=qty+20where sno in(select snofrom swhere city='北京');commit;(3)零件P3已经停产,请将P3的相关信息从数据库中删除。

deletefrom spjwhere pno='p3';deletefrom pwhere pno='p3';commit;(4)创建零件名为螺丝刀的供应情况的视图P_ls,包括供应商名(Sname),零件名(Pname),零件重量(Weight),工程项目代码(Jno),供应数量(QTY). create view P_1sasselect sname,pname,weight,jno,qtyfrom s,p,spjwhere pname='螺丝刀';(5)在视图P_ls中查询供应数量为500的供应商姓名。

Oracle报告

Oracle报告

实验报告实验项目名称:角色和用户管理, 表和视图管理20011年3月20日一、实验目的1)了解Oracle数据库用户和角色的概念2)学习使用SQL语句创建Oracle用户3)学习使用SQL语句创建Oracle角色4)学习使用SQL语句指定用户的角色5)了解Oracle表和视图的概念6)学习使用SQL语句创建表7)学习使用SELECT语句查询数据8)学习使用SQL语句创建视图二、实验内容1)练习使用SQL语句创建数据库角色。

2)练习使用SQL语句为数据库角色授予权限。

3)练习使用SQL语句指定用户角色。

4)练习使用SQL语句创建数据库用户。

5)练习使用SQL语句创建表。

6)练习使用SQL语句向表中插入数据。

7)练习使用SQL语句修改表中数据。

8)练习使用SQL语句删除表中数据。

9)练习使用SELECT语句查询数据。

10)练习使用SQL语句创建视图。

三、使用仪器、材料Oracle Database 10g四、实验步骤和实验记录1、使用SQL语句创建数据库角色1)以SYSTEM用户登录到iSQL*Plus。

2)使用CREATE ROLE语句创建数据库角色UserManRole,密码为myrollpwd,代码如下:2、使用SQL语句为数据库角色授权1)以SYSTEM用户登录到iSQL*Plus。

2)使用GRANT语句将角色UserManRole授予CONNECT、RESOURSE和UNLIMITED TABLESPACCE权限,代码如下:3、使用SQL语句创建数据库用户1)以SYSTEM用户登录到iSQL*Plus。

2)使用CREATE USER语句创建用户UserManAdmin,密码为UserPwd,使用GRANT语句对用户UserManAdmin授予系统权限UNLIMITED TABLESPACE,代码如下:4、使用SQL语句指定用户角色参照下面的步骤将用户UserMan指定为角色UserManRole。

oracle数据库数据库设计与实现实验报告

oracle数据库数据库设计与实现实验报告

oracle数据库数据库设计与实现实验报告Oracle数据库设计与实现实验报告一、实验目的本次实验旨在通过使用Oracle数据库,掌握数据库的设计和实现方法,学习如何创建表、插入数据、查询数据以及对数据进行更新和删除等操作。

二、实验环境本次实验使用的是Oracle 11g Express Edition,操作系统为Windows 10。

三、实验步骤1. 创建表格在Oracle中创建表格需要使用CREATE TABLE语句。

下面是一个例子:CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR2(50),last_name VARCHAR2(50),email VARCHAR2(100),phone_number VARCHAR2(20));这个例子创建了一个名为“employees”的表格,其中包含了五个列:employee_id、first_name、last_name、email和phone_number。

其中employee_id被指定为主键。

2. 插入数据在Oracle中插入数据需要使用INSERT INTO语句。

下面是一个例子:INSERT INTO employees (employee_id, first_name, last_name, email, phone_number)VALUES(1,'John','Doe','********************','555-1234');这个例子向“employees”表格中插入了一条记录,包含了五个值:employee_id为1,first_name为“John”,last_name为“Doe”,email为“********************”,phone_number为“555-1234”。

Oracle实训报告

Oracle实训报告

ORACLE数据库开发实践报告要求1.实践名称:Oracle数据库开发2.实践题目:(1)Oracle数据库的操作(2)小型数据库系统的设计与开发3.实践目的:初步掌握Oracle关系数据库语言;掌握 Oracle的操作与使用;数据库的建立与管理、数据表的建立与操作等;PL/SQL语言的使用与编程。

4.实践内容与结果:4.1 Oracle数据库的操作4.1.1实践操作11、熟悉Oracle运行环境,理解存储管理器、方案管理器和安全管理器的作用及操作过程。

要求:(1).登录到存储管理器中,查看表空间和回滚段中的情况。

(2).登录到方案管理器中,查看SYS方案下的ACCESS$表。

(3).在SQL Plus环境下,键入下面内容,执行并观察结果。

•SQL>SET SERVEROUTPUT ON;•SQL>DECLARE• 2 n1 NUMBER:=18;• 3 n2 NUMBER:=6;• 4 BEGIN• 5 IF n2<=10 THEN• 6 n1:=n1+n2;•7 DBMs_Output.Put_Line(To_Char(n1));•8 END IF;•9 END;•10 /•4.1.2实践操作21、建立数据库(熟悉DBCA工具的使用)2、利用OEM创建新用户SOL语句:CREATE USER "MENG072" PROFILE "DEFAULT"IDENTIFIED BY "m" DEFAULT TABLESPACE "USERS"ACCOUNT UNLOCK;GRANT UNLIMITED TABLESPACE TO "MENG072" GRANT "CONNECT" TO "MENG072";GRANT "DBA" TO "MENG072";3、利用OEM创建Departments表(1)设置一般信息(2)设置约束条件SQL语句:CREATE TABLE "MENG072"."DEPARTMENTS" ("DEPARTMENTID" CHAR(3) NOTNULL, "DEPARTMENGTNAME" CHAR(20) NOT NULL, "NOTE"V ARCHAR2(100) NOT NULL, PRIMARY KEY("DEPARTMENTID")) 4、创建Employees表SOL语句:CREATE TABLE "MENG072"."EMPLOYEES" ("EMPLOYEEID" CHAR(6) NOT NULL, "NAME" CHAR(10) NOT NULL, "BIRTHDAY" DATE NOT NULL, "SEX"NUMBER(1) NOT NULL, "ADDRESS" CHAR(20) NOT NULL, "ZIP"CHAR(6) NOT NULL, "PHONENUMBER" CHAR(12) NOT NULL, "DEPARTMENTID"CHAR(3) NOT NULL, PRIMARY KEY("EMPLOYEEID"))5、创建Salary表SOL语句:CREATE TABLE "MENG072"."SALARY" ("EMPLOYEEID" CHAR(6) NOT NULL, "INCOME"NUMBER(8, 2) NOT NULL, "OUTCOME" NUMBER(8, 2) NOT NULL,PRIMARY KEY("EMPLOYEEID"))6、用PL/SQL语句创建表Departments、表Employees、表Salary:4.1.3实践操作31、用OEM向表Employ、表Departments、表Salary中各插入记录:(1)表Departments插入记录SOL语句:INSERT INTO "DEPARTMENTS" V ALUES ('1' ,'财务部' ,'1' ); INSERT INTO "DEPARTMENTS" V ALUES ('2' ,'人力资源部' ,'2' ); INSERT INTO "DEPARTMENTS" V ALUES ('3' ,'经理办公室' ,'3' ); INSERT INTO "DEPARTMENTS" V ALUES ('4' ,'研发部' ,'4' ); INSERT INTO "DEPARTMENTS" V ALUES ('5' ,'市场部' ,'5' ); (2)表Employ插入记录SOL语句:INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('000001' ,'王林' ,TO_DA TE('23-1月-1966', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'中山路32-1-508' ,'210003' ,'83355668' ,'2' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('010008' ,'伍荣华' ,TO_DA TE('28-3月-1976', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'北京东路100-2' ,'210001' ,'83321321' ,'4' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('020010' ,'王向荣' ,TO_DATE('09-12月-1982', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'四牌楼10-0-108' ,'210006' ,'83792361' ,'1' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('020018' ,'李莉' ,TO_DA TE('30-7月-1976', 'dd-Mon-yyyy HH:MI:SS AM') ,0 ,'中山东路102-2' ,'210002' ,'83413301' ,'1' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('102201' ,'刘明' ,TO_DA TE('02-9月-1965', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'虎踞路100-2' ,'210013' ,'83606608' ,'5' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('102208' ,'朱俊' ,TO_DA TE('10-8月-1979', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'牌楼巷5-3-106' ,'210004' ,'84708817' ,'5' )INSERT INTO "MENG072"."EMPLOYEES" ("EMPLOYEEID" ,"NAME" ,"BIRTHDAY" ,"SEX" ,"ADDRESS" ,"ZIP" ,"PHONENUMBER" , "DEPARTMENTID" ) V ALUES ('108991' ,'忠民' ,TO_DA TE('01-10月-1974', 'dd-Mon-yyyy HH:MI:SS AM') ,1 ,'中山路10-3-105' ,'210003' ,'83346722' ,'3' )(3)表Salary中插入记录SOL语句:INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('000001' ,2100.8 ,123.09 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('010008' ,1582.62 ,88.03 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('102201' ,2569.88 ,185.65 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('108991' ,3259.98 ,281.52 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('020010' ,2860.0 ,198.0 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('020018' ,2347.68 ,180.0 )INSERT INTO "MENG072"."SALARY" ("EMPLOYEEID" ,"INCOME" ,"OUTCOME" ) V ALUES ('102208' ,1980.0 ,100.0 )2、用PL/SOL语句向表Employ、表Departments、表Salary中插入记录:4.1.4实践操作41、建立索引:2、实现域完整性:注:该同学此题完成有误,下面给出另一同学的正确解答为数据库中的employees表的phonenumber列建立check约束:3、实现实体完整性:(1)为表Departments设置主键DepartmentID:(2)为表Departments的DepartmentName建立唯一性索引:4实现参照完整性:4.1.5实践操作51、SELECT语句的基本使用:(1)查询每个雇员的所有数据:(2)查询每个雇员的地址和电话:(3)查询EmployeeID为000000的雇员的地址和电话:(4)查询Employees表中女雇员的地址和电话;(5)计算每个雇员的实际收入:(6)找出所有姓王的雇员的部门号:(7)找出所有收入在2000~5000元之间的雇员号码:2 子查询的使用(1)查找在财务部工作的雇员的情况:(2)查找财务部年龄不低于研发部雇员年龄的雇员的姓名:(3)查找比所有财务部的雇员收入都高的雇员的姓名:3.连接查询的使用(1)查询每个雇员的情况及其薪水的情况:(2)查找财务部收入在2200元以上的雇员姓名及其薪水情况:4.数据汇总(1)求财务部雇员的平均水平:(2)求财务部雇员的平均实际收入:(3)求财务部雇员的总人数:5.GROUP BY、ORDER BY 子句的使用(1)求各部门的雇员数:(2)将各雇员的情况按收入由低到高排列:6.视图(1)创建视图——限制查看雇员的某些情况:各部门经理只能查找本部门雇员的薪水情况:(2)使用视图查询财务部雇员的信息:查询财务部雇员薪水情况:向表EMPLOYEES中插入一条记录:从经理办公室转到市场部:从表EMPLOYEES中删除:4.1.6实践操作61.条件结构的使用例5.52.循环结构的使用例5.92.选择和跳转语句例5.134.自定义函数的使用例5.27例5.284.1.7实践操作71.创建触发器(1)修改DEPARTMENTS表中的DEPARTMENTID字段值(2)删除DEPARTMENTS表中一条记录的同时删除该记录DEPARTMENTID字段在EMPLOYEES表中对应的记录2.创建存储过程(1)添加职员记录的存储过程:(2)修改职员记录的存储过程;(3)删除职员记录的存储过程:3.调用存储过程4.1.8实践操作8 1.创建用户2.创建角色3.创建概要文件5.实践小结:在实训之前,我对Oracle一无所知,后来经过老师课上耐心细致的讲解,我对Oracle 渐渐有了较为清晰的认识。

oracle专周实验报告

oracle专周实验报告

实验报告课程名称oracle数据库计算机工程学院目录一、目的 (3)二、设计要求说明 (3)三、专周时间 (4)四、运行环境 (4)4.1 硬件环境 (4)4.2软件环境 (4)五、实验内容 (4)5.1.数据库及数据,表的定义 (4)5.2.钱夹及加密的实现 (7)5.3.总公司的查询统计............................................................ 错误!未定义书签。

5.4推送信息实现 (10)5.5.财务数据的导出 (10)5.6.数据文件丢失恢复实现 (11)5.7.重做日志文件的恢复实现 (15)5.8.闪回技术的实现 (18)5.9.数据库的备份实现 (22)六、专周总结 (26)一、目的1.了解oracle数据库的实际相关运用2.进一步掌握oracle的功能3.实现oracle发生数据错误事的数据恢复以及数据库的恢复4.掌握闪回技术,提高对数据的管理5.提高数据的性能二、设计要求说明需求:某北京公司因业务及公司扩张需要,现需在成都成立技术部,在上海成立销售部,北京为公司总部,各分公司均有数据服务器一、数据表与相关访问权限1、各子公司均有独立的财务部门进行子公司的财务运行,但北京总公司要随时查询与统计,财务数据要求加密;2、各子公司没有人事招聘权,需由北京总公司统一招聘,数据统一放在总公司,各子公司均可查询3、成都子公司的相关技术数据只能由成都子公司与北京总公司访问与查询(成都子公司可修改,北京总公司不能修改,上海子公司不能查询、修改),只是成都子公司对于最新技术的发展要同时推送到总公司,而且能被上海子公司直接查询(不用推送);上海子公司的相关销售数据只能由上海子公司与北京总公司访问与查询(成都子公司不能查询,上海子公司可修改,北京总公司不能修改,)以上具体数据表由各组自由定义,不用过多二、安全操作1、考虑到数据安全,各公司数据文件、控制文件、重做日志文件数量均要求大于3,临时文件要建组,并要求数据文件分布在不同的磁盘,所有公司的控制文件均要在总公司的服务器上做副本镜像。

Oracle实验报告

Oracle实验报告

Oracle 数据库课程上机实验报告学院名称:专业班级:姓名:学号:实验成绩:任课教师:目录实验一 (3)实验三 ORACLE数据库结构与网络配置 (3)实验四 (8)实验五数据表及其操作 (10)实验六 SQL命令操作 (14)实验七创建索引 (21)实验一实验三 ORACLE数据库结构与网络配置实验内容与数据库结构相关的数据字典查询实验1、查看表空间的名称及大小2、查看表空间物理文件的名称及大小3、查看回滚段名称及大小4、查看控制文件5、查看日志文件6、查看表空间的使用情况7、查看数据库库对象8、查看数据库的版本9、查看数据库的创建日期和归档方式10、查看临时数据库文件常用数据库信息查看命令(1)oracle中怎样查看总共有哪些用户(2)查看oracle当前连接数(3)列出当前数据库建立的会话情况3.2 表空间操作●创建表空间●修改表空间的相关操作1)增加表空间中的数据文件2)删除表空间中的数据文件3)修改表空间文件的数据文件大小4)修改表空间数据文件的自动增长属性。

实验四实验五数据表及其操作实验内容5.1创建基本表以system用户登录sqlplus创建表空间创建Testpace表空间5.2修改表清空表中的数据5.3 删除表5.4聚集表(1)创建聚集(聚集表的创建与操作)引用参照完整性三表定义了suppliers,products,order details三表间的三个级联关系实验六 SQL命令操作实验内容6.1数据查询select创建student,sc,course三表,并且插入数据查询1:查询2:查询3:查询4;实验七创建索引实验内容7.1在emp表中的sal字段上创建一个名为index_sal的b树索引,按字段值的蒋序排序7.2 在dept表的dname字段上创建一个具有唯一性的b树索引,索引值为字母序排序。

7.3在emp表的ename和deptno字段上创建一个复合索引7.10将参数设置为跟踪状态,执行对emp表的查询命令,查看索引应用的跟踪结果。

oracle总实验报告

oracle总实验报告

实验一Oracle数据库创建及SqlPlus的启动与退出一、实验目的1、掌握使用DBCA建立、删除和管理数据库模板;2、掌握sqlplus工具的启动和退出;二、实验内容1、用DBCA建立数据库;2、用DBCA删除数据库;3、用SQL Plus测试数据库正确;4、用DBCA管理数据库模板;5、基于DOC方式启动和退出sqlplus(1)单击“开始”菜单,选择运行选项,在运行对话框中输入cmd,进入Dos控制台以后在提示符下键入sqlplus-?比如:sqlplus scott/tiger@sa(2)在sql提示符下使用输入查询语句“select * from scott.emp”。

(3)执行完成后,输入quit或exit命令返回Dos控制台。

6、基于Windows方式启动与关闭sqlplus(1)单击“开始”按钮,在程序组中选择\Oracle-orahome92\application development\sql plus 选项。

在打开的对话框中输入用户名、密码和服务器名进行登陆。

(2)当成功连接后,可以来验证:比如输入查询语句:select * from scott.emp。

(3)使用Disconnect命令中断与数据库的会话连接;如果再次连接可以使用Connect命令。

比如输入connect system/manager@sa。

(4)如果想更改口令,可以使用Password命令。

(5)如果想从SQL*PLUS中退出,在SQL提示下输入Quit或Exit返回到Windows界面。

三、实验过程与步骤:1、用DBCA建立数据库;(1) 启动DBCA后,出现欢迎画面后,选择创建数据库,单击下一步。

(2) 选择数据库类型(3) 输入全局数据库名称和SID(4)设置数据库选项(5)创建数据库过程2、用DBCA删除数据库;过程同建立数据库相同,在选择时,要选择删除数据库。

3、用SQL Plus测试数据库正确;(使用Connect命令)4、用DBCA管理数据库模板;过程:开始——所有程序——DBCA——管理模板——下一步……5、基于DOC方式启动和退出sqlplus(1)单击“开始”菜单,选择运行选项,在运行对话框中输入cmd,进入Dos控制台以后在提示符下键入sqlplus-?比如:sqlplus scott/tiger@sa(2)在sql提示符下使用输入查询语句“select * from scott.emp”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四川师范大学计算机学院oracle实验报告册院系名称:计算机科学学院课程名称:oracle数据库运用与开发实验学期2012 年至2013 年第 1 学期专业班级:电子商务2010级5班姓名:苏瑶学号:2010110338指导教师:俞晓老师实验最终成绩:实验一了解ORACLE环境,使用ORACLE数据库实用工具(验证性实验 4学时)1.目的要求:了解ORACLE数据库的各个常用工具软件2.实验内容:在ORACEL数据库下使用SQL*PLUS ,SQL*PLUS Worksheet,PL/SQL Developer工具,企业管理器等实用工具与Oracle交互。

并在企业管理器中观察ORACLE的底层存储原理。

在PL/SQL Developer中书写简单的SQL语言。

3.主要仪器设备及软件1)PC2)ORACLE数据库--创建用户create user user1 identified by user1;--赋给用户建表、连接等权限grant connect to user1;grant create any table to user1;grant resource ,dba to u1;--连接用户Conn user1/user1;--收回权限(dba )revoke dba from u1;-------------------------------------------------------------------------实验二熟悉SQL语言(验证性实验 4学时)1.目的要求在SQL*PLUS或PL/SQL Developer工具中编写SQL语句2.实验内容在ORACLE 数据库中定义用户,给用户赋权限,创建,修改和删除表格,视图等数据库对象,并向表格中插入,修改和删除数据。

体会SQL语言中ORACLE的“方言”。

对自己建立的表做查询:包括单表查询,多表查询,嵌套查询,分组查询,相关查询3.主要仪器设备及软件1)PC2)ORACLE数据库--修改数据:update student set sAge=19where sage=18;--删除数据:delete from student where sname='吴芳';--输出成绩大于60小于80的学生的名字select sname from student,sc where grade >60and grade <80and student.sno=sc.sno;--输出学生表中的总人数select count(*)from student;/*表属性职员表:Emp(eid:integer;ename:string,salary:real)部门表:Dept(did:integer,dname:string,managerid:integer,floornum:integer)职员与部分的关系表:Works(eid:integer,did:integer);*/-- 查询“电视”部门的职工人数Select count(*)from dept,works where dept.did=works.did anddept.dname=’电视’;-- 输出每个部门的名字和平均工资select dname ,avg(salary)from dept,works,emp where dept.did=works.did and works.eid =emp.eid grop by dname;-- 查询每个部门的部门编号,及其拥有的雇员的人数Select did,count(eid)from dept,emp,works where dept.did=works.did and works.eid =emp.eid group by dept.did;-- 查询在第10层工作,同时薪水少于¥50000的所有雇员的名字Select ename distinct from dept,emp,works dept.did=works.did and works.eid =emp.eid and floornum=10and salary <50000;-- 查询工资最高的雇员的名字Select ename from emp where salary=(select max(salary)from emp );-- 查询工资最低的雇员的名字及其所在部门的编号和名字Select ename ,did,dname from emp,dept,works where dept.did=works.did and works.eid =emp.eid and salary=(select min(salary)from emp);--找出薪水在20 000以上,并且在电视部门或者玩具部门工作的雇员的名字select ename from emp where salary>=20000and eid in(select eidfrom works where did in(select did from dept where dname='电视'or dname='玩具'));create user u1 identified by u1;grant connect to u1;grant create table,resource to u1;--建立学生表create table Student( Sno char(11)primary key,Sname char(20),Ssex char(2),Sage int,Sdept char(20));--插入数据insert into student values('2','张立文','女',20,'化学');insert into student values('3','王敏','男',20,'数学');insert into student values('4','张山','男','19','化学');--导入表@E:\biao.sql;--添加列:alter table student add address char(40);--修改列定义:alter table student alter column sage char(3);--删除列:alter table student drop column address;--为Student(10行以上),Course(8行以上),SC(25行以上)表添加记录--为Student表添加列“班级号”alter table student add classno varchar(10);--为学生填写班级号(数字);update student set classno=round (dbms_random.value(1,2),0);--将每个同学的班级号前面加上“T”update student set classno='T'||trim(classno);--删除班级号前面的“T”update student set classno=substr(classno,2,10);--删除班级号为空的学生delete from student where classno is null;--删除成绩低于50分的学生的选课信息delete from sc where grade<=50;--查询选修‘c05’课程,并且年龄不大于26岁的学生的学号和成绩,并按成绩降序排列。

(只选出第3个学生?)select s.sno,grade from student s,sc where s.sno=sc.sno and sage <=26and cno='c05'order by grade desc;select*from(select rownum rn ,a.*from(select s.sno,grade from student s,sc where s.sno=sc.sno and sage <=26and cno='c05'order by grade desc)a)wherern=3;--查询MA系的女同学select*from student where sdept='MA';--查询CS系姓李的学生选修的课程,列出学号,课程号和成绩select sc.sno,cno,grade from student s,sc wheres.no=sc.sno and sname='李%'and sdept='CS';--查询选修了数据库课程的学生的学号,成绩,按成绩降序排列select sno,grade from sc,course c where o=oand cname='数据库'order by grade desc;--找出学分为4分以上的课程的选修情况,列出学号,课程名,成绩select sno,o,grade from sc,course c whereo=o and ccredit >=4;--检索数据库的成绩在90分以上的学生的学号和姓名select s.sno,sname from sc,course c,student s wheres.sno=sc.sno and cname='数据库'and grade >=90;--练习(使用嵌套查询)--查询和数据库相同学分的课程。

select cno,cname,ccredit from course where ccredit=(select ccredit from course where cname='数据库');--查询选修了数据库课程的学生的学号。

select sc.sno from sc,course c where o=o ando=(select cno from course where cname='数据库');--查询成绩最高的学生的姓名。

select sname from sc,student s where sc.sno=s.sno andgrade=(select max(grade)from sc);--查询CS系成绩最高的学生的学号、姓名以及成绩。

相关文档
最新文档