工程学院oracle实验一_第1页
工程学院oracle实验一_第2页
工程学院oracle实验一_第3页
工程学院oracle实验一_第4页
工程学院oracle实验一_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告根据以上实验内容的要求认真填写实验报告,记录所有的实现方法和运行结果,并记录实验过程中遇到的困难和解决问题的方法。(实验报告中不要求写加*题目的实验过程和内容)数据库开发技术实验_1_报告实验题目:认识Oracle常用管理工具和DDL、DML实践日期2013年9月9日2013年9月24日班级计科姓名刘振萍实验环境:装有Oracle和SQL Developter的windows系统实验内容与完成情况(记录所有的实验过程):一、实验目的1 认识并熟悉Oracle常用的管理工具:SQL Plus、iSQL Plus、SQL Developter和EM。2 掌握Oracle表的数据定义(DDL

2、)语言,实现表的定义、删除与修改。3 掌握创建Oracle表各种约束的方式和方法。4 掌握利用数据字典视图查看各种有用信息的方法。5 掌握插入、删除和更新表中数据的方法。6 掌握控制事务的方法。7 掌握WHERE子句中条件表达式的使用方法。8 掌握访问替换变量的方法。9 学会创建并执行一个脚本文件。10 掌握CASE 结构的使用方法。一、 实验内容和要求1. 登录到SQL Plus、iSQL Plus、SQL Developter和EM,认识并运用这些常用的Oracle管理工具。2. DDL实践(1) Oracle表的DDL实践。设有如下关系表S_班名座号(如:s_wg100103): s_w

3、g100103 (SNO, SNAME, SSEX, SAGE, SDEPT),主关键字是SNO。其中SNO为学号,NUMBER(5),学号不能为空,值是惟一的;SNAME为姓名,VARCHAR2(20);SSEX为性别,char(2);SAGE为年龄,NUMBER(2); SDEPT为所在系名,VARCHAR2(10)。写出实现下列功能的SQL语句。脚本:create table s_wg100103(SNO NUMBER(5)primary key,SNAME varchar2(20),SSEX char(2),SAGE NUMBER(2),SDEPT varchar2(20);1) 创建

4、此表并插入数据;INSERT INTO S VALUES(95001,'李明勇','男',20,'CS');INSERT INTO S VALUES(95002,'刘晨','女',19,'IS');INSERT INTO S VALUES(95003,'王名','女',18,'MA');INSERT INTO S VALUES(95004,'张立','男',19,'CS');INSERT INTO S V

5、ALUES(95005,'张军','男',21,'MA');INSERT INTO S VALUES(95006,'王张凤','女',19,'FL');INSERT INTO S VALUES(95011,'王敬','女',18,'IS');INSERT INTO S VALUES(95021,'张名惠','男',19,'FL');脚本:INSERT INTO s_wg100103 VALUES(9500

6、1,'李明勇','男',20,'CS');INSERT INTO s_wg100103 VALUES(95002,'刘晨','女',19,'IS');INSERT INTO s_wg100103 VALUES(95003,'王名','女',18,'MA');INSERT INTO s_wg100103 VALUES(95004,'张立','男',19,'CS');INSERT INTO s_wg10010

7、3 VALUES(95005,'张军','男',21,'MA');INSERT INTO s_wg100103 VALUES(95006,'王张凤','女',19,'FL');INSERT INTO s_wg100103 VALUES(95011,'王敬','女',18,'IS');INSERT INTO s_wg100103 VALUES(95021,'张名惠','男',19,'FL');2) 查看此表

8、的数据结构和数据;脚本:DESCRIBE s_wg100103;脚本:SELECT * FROM s_wg1001033) 根据此表再复制创建一个只有IS系学生组成的新表S_IS_班名座号; 脚本:create table S_IS_班名座号 as select * from s_wg100103 where SDEPT='IS'SELECT * FROM S_IS_班名座号4) 向S表添加“入学时间(comedate)”列,其数据类型为日期型(date);脚本:ALTER TABLE s_wg100103 ADD COMEDATE DATE5) 将年龄的数据类型改为NUMBE

9、R(3)且默认值为19,并查看这些修改后的表结构;脚本:ALTER TABLE s_wg100103 MODIFY SAGE NUMBER(3) default(19)DESCRIBE s_wg1001036) 删除新添加的列,查看更改情况;脚本:ALTER TABLE s_wg100103 DROP COLUMN COMEDATE DESCRIBE s_wg1001037) 将表s改名为student;脚本:rename S_WG100103 to student8) 为表s添加注释'学生信息表'脚本:comment on table student is '学生信息

10、表'9) 截断s表;脚本:TRUNCATE TABLE STUDENT10) 删除生成的新表S_IS_班名座号;脚本:DROP TABLE S_IS_班名座号(2) 创建约束要求按普遍采用的约定为这些约束命名,约束创建后要进行约束测试。(参见所附的表结构和数据,表名要加上班名座号)1) 为COURSE表添加一个主键约束;脚本:ALTER TABLE COURSE ADD CONSTRAINT COURSE_CNO_PK PRIMARY KEY(CNO)2) 创建SC表的主键约束和外键约束(一个列级和一个表级),表级的外键约束要求允许使用级联删除选项;脚本:ALTER TABLE SC

11、ADD CONSTRAINT SC_SNO_PK PRIMARY KEY(SNO)ALTER TABLE SC ADD CONSTRAINT SC_CNO_fk FOREIGN KEY (CNO)REFERENCES COURSE(CNO);3) 为S表的SSEX创建CHECK约束;脚本:ALTER TABLE STUDENT ADD CONSTRAINT SSEX_CK CHECK(SSEX in('男','女')4)为S表创建一个合适的Not null和unique惟一性约束;脚本:ALTER TABLE STUDENT ADD CONSTRAINT SNA

12、ME_UN UNIQUE (SDEPT)脚本:ALTER TABLE STUDENT MODIFY (SNAME NOT NULL)5)在上题基础上,删除其中一个约束,启用/禁用其中一个约束,并测试之。启用:alter table course enable constraint 约束名禁用:alter table course disable constraint 约束名。删除:ALTER TABLE COURESE DROP CONSTRAINT 约束名脚本:ALTER TABLE STUDENT drop CONSTRAINT SSEX_CKALTER TABLE STUDENT ENA

13、BLE CONSTRAINT SDEPT_UNALTER TABLE STUDENT DISABLE CONSTRAINT SNAME_NN(3) 使用数据字典视图利用任意3种数据字典视图查看数据库对象的信息,如查看表、表空间信息和约束信息等。脚本:select * from dictionary脚本:select table_name from user_tables脚本:select * from user_tables脚本:desc user_tables;脚本:desc all_tablesselect * from user_constraints t where t.table_n

14、ame = 'STUDENT'3. DML实践(1) Oracle表的DML操作。1) 7369号雇员加薪10%。脚本:UPDATE EMPSET SAL=(SELECT SAL*1.1 FROM EMP WHERE EMPNO=7369)WHERE EMPNO=73692) *从部门表(DEPT)中删除部门30,如果删除不成功,那么写出你自己的建议,说明应该怎么做。先删除相关约束。3) 向EMP表中插入一个新雇员。脚本:INSERT INTO EMP(EMPNO,ENAME,JOB,MGR,SAL,COMM,DEPTINO) VALUES(7748,'AMY'

15、,'ACCOUNT',7902,2800,200,20)(2) 数据检索。1) *显示EMP表中月薪$2850的雇员的姓名和薪资。脚本:SELECT ENAME,SAL FROM EMP WHERE SAL>28502) *显示雇员号为7566的员工的姓名和部门号。脚本:SELECT ENAME,DEPTNO FROM EMP WHERE EMPNO=75663) 显示受雇日期在20-2月-1981与1-5月-1981之间的员工的姓名、工种和受雇日期,要求以受雇日期升序排列。方法一脚本:SELECT ENAME,JOB,HIREDATE FROM EMP WHERE HI

16、REDATE BETWEEN '20-2月-1981' and '1-5月-1981' ORDER BY HIREDATE方法二脚本:SELECT ENAME,JOB,HIREDATE FROM EMP WHERE HIREDATE BETWEEN TO_DATE('1981-02-20','YYYY-MM-DD') and TO_DATE('1981-05-01','YYYY-MM-DD') ORDER BY HIREDATE4) *显示部门号为10、30的员工的姓名和部门号,要求以姓名序排列。脚

17、本:SELECT ENAME,DEPTNO FROM EMP WHERE DEPTNO IN(10,30) ORDER BY ENAME5) 显示EMP表中所有岗位(job)的类型。脚本:SELECT DISTINCT JOB FROM EMP6) 显示没有上司员工的姓名和工种。脚本:SELECT ENAME,JOB FROM EMP WHERE MGR IS NULL7) 显示部门号为10、30且月薪$1500的所有员工的姓名和月薪,要求显示列名为 “Employee”和“Monthly Salary”。 脚本:SELECT ENAME Employee,SAL "Monthly

18、Salary" FROM EMP WHERE DEPTNO IN(10,30) AND SAL>15008) 显示哪些姓名中含有字母”A”并且部门号为30的员工或者上司号为7782的员工姓名。脚本:SELECT ENAME FROM EMP WHERE ENAME LIKE '%A%' AND (DEPTNO=30 OR MGR=7782)9) *在查询EMP表中使用连接操作符和原义字符串。查询结果类同以下:雇员和职务表-SMITH is a CLERKALLEN is a SALESMANWARD is a SALESMANJONES is a MANAGER

19、MARTIN is a SALESMAN.脚本:SELECT (ENAME|'is a'|JOB) AS "雇员和职务表" FROM EMP10) *显示哪些挣了佣金(comm)的员工的姓名、月薪和佣金,要求显示结果按月薪降序,月薪相同再按佣金降序。脚本:SELECT ENAME,SAL,COMM FROM EMP WHERE COMM IS NOT NULL ORDER BY SAL DESC,COMM DESC(3) 事务控制、替代变量、CASE 结构1) 显示符合任意条件的雇员的编号以及其它任意的列脚本(运用到替代变量的知识):SET VERIFY O

20、NSELECT* FROMEMP WHEREEMPNO = &EMPLOYEE_NUM; 2) 将CASE结构用于UPDATE语句。基于雇员的job值来更新job值。 MANAGER更新为'管理人员','PRESIDENT'更新为'总经理',其余的更新为'普通人员'。 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO- - - - - - - - 7369 SMITH 普通人员 7902 17-12月-80 800 20 7499 ALLEN 普通人员 7698 20-2月 -81

21、1600 300 30 7521 WARD 普通人员 7698 22-2月 -81 1250 500 30 7566 JONES 管理人员 7839 02-4月 -81 2975 20 7654 MARTIN 普通人员 7698 28-9月 -81 1250 1400 30 7698 BLAKE 管理人员 7839 01-5月 -81 2850 30 7782 CLARK 管理人员 7839 09-6月 -81 2450 10 7788 SCOTT 普通人员 7566 13-7月 -87 3000 20 7839 KING 总经理 17-11月-81 5000 10 已选择14行。方法一脚本:搜索式CASE表达式用于UPDATE语句:UPDATE EMPSET JOB=CASE WHEN JOB='MANAGER' THEN '管理人员' WHEN JOB='PRESIDENT' THEN '总经理' ELSE '普通人员' END;方法二脚本:简单CASE表达式用于UPDATE语句UPDATE EMPSET JOB = CASE JOB WHEN 'MANAGER&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论