Oracle上机练习题(六)

试卷总分:100

答题时间:240分钟

1.

编写SQL语句
对于教学数据库的三个基本表
学生 S(S#,SNAME,AGE,SEX)
学习 SC(S#,C#,GRADE)
课程 C(C#,CNAME,TEACHER)
试用SQL语句表示:检索Liu同学学的课程号。[2分]

SELECT C# FROM C WHERE C# IN 
 (SELECT C# FROM SC WHERE S# IN
 (SELECT S# FROM S WHERE SNAME = 'Liu'));

设有关系模式:

Employees(ssn, name, sex, age, department)

其中:ssn为员工号,name为姓名,sex为性别,age为年龄,department为工作部门。

2.

用SQL语句的数据定义语句,建立Employees表。其中员工号不能为空且其值是唯一的。[2分]

CREATE table Employees(
 ssn number not null unique,
 name char(10),
 sex char(2),
 age number,
 department char(50));

3.

用SQL语句的插入语句,将一名新员工的员工信息进行记录
(员工号:07216008,姓名:笑笑,性别:女,年龄:24,所在部门:CS)。[2分]

insert into Employees
 values(07216008,'笑笑','女',24,'CS');

4.

用SQL语句的修改语句,将员工笑笑的年龄改为26。[2分]

update Employees 
 set age = 26 where name='笑笑';

5.

用SQL语句的查询语句,查询全体员工的姓名、性别和所在的部门。[2分]

select name,sex,department from Employees;

6.

用SQL语句的控制语句,把对Employees表的查询权限授予用户simon。[2分]

grant select on table Employees to simo;

建立一个学生关系表Student,表中有5个字段:学号Sno(字符型)、姓名Sname(字符型)、性别Sex(字符型)、年龄Age(整型)、系别Dept(字符型),其中Sno是关系的码;

建立一个学生选课关系表SC,表中有3个字段:学号Sno(字符型)、课程号Cno(字符型)、成绩Grade(数值型),其中Sno、Cno是关系的码,

用SQL语言完成下列功能:

7.

建立学生关系表Student和学生选课关系表SC。[2分]

create table Student (Sno CHAR(8) NOT NULL UNIQUE,
 Sname CHAR(18),
 Sex CHAR(2),
 Age INT,
 Dept CHAR(20);
 create TABLE SC (Sno CHAR(5) NOT NULL UNIQUE,
 Cno CHAR(5) NOT NULL,
 Grade SMALLINT,

8.

查询计算机系(’CS’)所有同学的姓名和各科成绩。[2分]

SELECT Sname,Cno,Grade FROM Student,SC where Sdept = 'CS' and 
 Student.Sno = SC.Sno;

9.

添加一个学生记录,学号为20020003,姓名为吴刚,性别为男,年龄为19岁,所在系为计算机系。[2分]

INSERT INTO Student VALUES('20020003','吴刚','男'.19,'计算机系');

10.

逻辑删除李江同学的相关记录。[2分]

DELETE FROM STUDENT WHERE Sname = '李江';

表1部门表

表2 职员表1

11.

根据表1和表2,用SQL语句创建雇员表和部门表
假设有雇员关系表格,它的结构如下:
雇员(雇员编号,雇员姓名,年龄,受雇时间,薪水,电话号码,部门编号)。雇员编号为主键,部门编号为外键。
部门(部门编号,部门名称,部门所在地)主键是部门编号[2分]

Create table 部门表 (部门编号 char(4) not null primariy key,部门名称 char(12),部门所在地 char(4));
create table 雇员表 (雇员编号 char(4) not null primary key,
 雇员姓名 char(12),年龄 int,受雇时间 datetime,薪水 decimal(7,2),
 电话号码 char(6),部门编号 char(4)
 foreign key references 部门(部门编号));

12.

以递增的方式列出职工的部门号码(不重复);[2分]

select distinct 部门编号 from 雇员表 order by 部门编号 asc;

13.

查找AGE年龄为35岁的职工全部信息;[2分]

select * from 雇员表 where 年龄=35;

14.

查询在部门20或者30工作的,工资大于1600,年龄大于35岁的职工信息。[2分]

select * from 雇员表 where (部门编号=20 or 部门编号=30)and 工资>1600 and 年龄>35;

15.

计算最高,最低和平均工资;[2分]

select max(工资),min(工资) avg(工资) from 雇员表;

16.

找处职工不足3人的部门及其相应的职工数;[2分]

select 部门编号,count(*) from 雇员表 group by 部门编号 having count(*)<3;

17.

将部门号为10部门所有人员工资提高20%;[2分]

update 雇员表 set 工资=工资+0.2*工资 where 部门编号=10;

18.

从雇员中找出工资大于平均工资的职工信息;[2分]

select * from 雇员表 where 工资>(select avg(工资) from 雇员表);

19.

删除在部门10的,工资大于2500的职工信息;[2分]

DELETE FROM 雇员表 where 工资>2500 and 部门编号=10;

20.

从雇员表雇员中选取工资大于150元职工的雇员编号,雇员姓名,工资和部门编号,构成一个雇员工资视图;[2分]

create view 雇员工资 (雇员编号,雇员姓名,工资,部门编号) as select 雇员编号,雇员姓名,工资,部门编号 from 雇员表 where 工资>150;

21.

查询马克所在部门名称;[2分]

select 姓名,部门名称 from 雇员表,部门表 where 雇员表.部门编号=部门编号;

以下各小题题基于教学数据库的三个基本表

学生 S(S#,SNAME,AGE,SEX)

学习 SC(S#,C#,GRADE)

课程 C(C#,CNAME,TEACHER)

22.

检索年龄小于23岁的男[2分]

select SNAME FROM S WHERE AGE<23;

23.

检索"王兰"同学不学的课程的课程号。[2分]

SELECT C#,CNAME FROM C WHERE C# NOT IN
 (SELECT SC.C# FROM SC WHERE S.S# = SC.S# WHERE S.SNAME = '王兰');

24.

检索全部学生都选修的课程的课程号与课程名。[2分]

SELECT C#,CNAME FROM C WHERE C# IN
 (SELECT C# FROM SC GROUP BY C# HAVING GROUP(S#)=(SELECT MAX(S#)FROM S));

25.

把低于总平均成绩的女同学成绩提5%。[2分]

UPDATE SC SET SC.GRADE = SC.GRADE*1.05 FROM WHERE SC.GRADE<(SELECT AVG(SC.GRADE) FROM SC)AND S.SEX='0';

设有如下4个关系模式:

S(SN,SNAME,CITY)

P(PN,PNAME,COLOR,WEIGHT)

J(JN,JNAME,CITY)

SPJ(SN,PN,JN,QTY)

其中:

S表示供应商,SN为供应商编码,SNAME为供应商名字,CITY为供应商所在城市;

P表示零件,PN为零件编码,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量;

J表示工程,JN为工程编码,JNAME为工程名字,CITY为工程所在城市;

SPJ表示供应关系,QTY表示提供的零件数量。

写出实现以下各题功能的SQL语句:

26.

取出所有工程的全部细节。[2分]

SELECT * FROM J;

27.

取出所在城市为南京的所有工程的全部细节。[2分]

SELECT * FROM J WHERE CITY='南京';

28.

取出为所在城市为上海的工程提供零件的供应商编码。[2分]

select SIDTINCT SN
 FROM SPJ
 WHERE JN IN
 (SELECT JN
 FROM J
 WHERE CITY='上海');

29.

取出为所在城市为上海或北京的工程提供红色零件的供应商编码。[2分]

select SN FROM SPJ
 WHERE JN IN 
 (SELECT JN FROM J WHERE CITY='上海' OR CITY='北京')
 and PN IN
 (SELECT PN FROM P WHERE COLOR='红');

30.

取出供应商与工程所在城市相同的供应商提供的零件编码。[2分]

select SPJ.PN FROM S,J,SPJ WHERE S.SN=SPJ.SN AND J.JN=SPJ.JN AND S.CITY=J.CITY;

31.

取出至少由一个和工程不在同一城市的供应商提供零件的工程编码。[2分]

SELECT DISTINCT SPJ.JN FROM S,J,SPJ WHERE S.SN = SPJ.SN AND J.JN AND S.CITY<>J.CITY;

32.

取出上海供应商不提供任何零件的工程编码。[2分]

SELECT JN FROM J WHERE JN NOT IN 
 (SELECT DISTINCT JN FROM SPJ WHERE SN IN
 (SELECT SN FROM S WHERE CITY='上海'));

33.

取出所有这样的一些<CITY,CITY>二元组,使得第1个城市的供应商为第2个城市的工程提供零件。[2分]

select S.CITY,J.CITY FROM S,J,SPJ 
 WHERE S.SN=SPJ.SN AND J.JN=SPJ.JN;

34.

设销售数据模型如下:
厂家 S (SNO,SNAME,CITY )
产品 P (PNO,PNAME,COLOR,WEIGHT)
工程 J  (JNO,JNAME,CITY)
销售 SPJ (SNO,PNO,JNO,QTY)
用SQL完成查询:与“长风”在同一城市的厂家名。[2分]

以下给出三个基本表:

Student(学生表)的字段按顺序为学号、姓名、性别、年龄、所属院系;

Course(课程表)的字段按顺序为课程编号、课程名、先行课程、课程学分;

SC(选课表)的字段按顺序为学号、课程号、成绩。

各表的记录如下:

35.

查询与“刘晨”在同一个系学习的学生的学号、学生姓名。[2分]

SELECT 学号,姓名 from Student s where
 s.所属院系 = (select 所属院系 from Student where 姓名='刘晨');

36.

将一个新学生记录(03020;陈冬;男;18;IS)插入Student表中。[2分]

insert into Student values('03020','陈东','男',18,'IS');

37.

将计算机科学系(CS)全体学生的成绩置零。[2分]

update CS set 成绩=0;

38.

创建信息系(IS)选修了1号课程的学生的视图IS_S1,字段包括Sno、Sname、Grade。[2分]

create view IS as select Sno,Sname,Grade from SC,Student where

SC.Sno = Student.Sno and SC.课程号=1;

东方货运公司数据库的样本数据如下。

表名称:卡车

车号

货运站编号

类型

总行程

购入日期

1001

501

1

59002.7

11/06/90

1002

502

2

54523.8

11/08/90

1003

503

2

32116.6

09/29/91

1004

504

2

3256.9

01/14/92

表名称:货运站

货运编号

地址

电话

经理

501

北京市东城区花市大街111号

010—67301234

何东海

502

北京市海淀花园路101号

010—64248892

吴明君

表名称:型号

类型

汽车型号

1

DJS130

2

DLS121

根据数据库的表结构和内容:

39.

指出每个表的主码和外码。如果没有外码,则写“无”。[2分]

表名称     主码       外码
 卡车      车号      货运站编号,类型
 货运站    货运站编号    无
 型号      类型          无

40.

卡车表存在实体完整性和参照完整性吗?请详细说明。[2分]

实体完整性:在主码车号的这列中不存在空值
 参照完整性:外码“货运站编号”这列中的值都是货运站表中:货运站编号"这列中的值,
 外码“类型”这列中的值都是型号表中“型号”这列中的值

41.

具体说明卡车表与运货站表之间存在着什么关系?[2分]

货运站表和卡车表之间存在着一对多的关系,即每一个货运站可以有多辆车。

42.

卡车表中包含多少个实体?[2分]

卡车表中包括4个实体,即表中每个元组(行)对应一个实体,每个实体就是一辆车。

43.

简述比较表和视图二者间的异同? [3分]

区别:

1、视图是已经编译好的sql语句;而表不是。

2、视图没有实际的物理记录;而表有。

3、视图是窗口;表是内容

4、标致用物理空间而视图不占用物理空间,视图只是逻辑概念的存在;表可以即使对它修改,但视图只能有创建的语句来修改。

5、表示内模式,视图是外模式。

6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些sql语句的集合。从安全的角度来说,视图可以不给用户接触数据表,从而不知道表结构。

7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。

8、视图的建立和删除只影响视图本身,不影响对应的基本表。

联系:

视图是在基本表之上建立的表,它的结构(即所有定义列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

44.

简述drop table和truncate table及delete from的区别?[5分]

1、delete是DML语言,可以回退,可以有空间的删除
2、truncate table 是DDL语言,无法回退,默认所有的表的内容都删除,删除速度比delete 快
3、drop table 用于删除表(表的结构,属性以及索引也会被删除)

45.

比较子查询和连接查询的异同?[3分]

1、子查询就如递归函数一样,有时侯使用起来能达到事半功倍之效,只是其执行效率同样较低,有时用自身连接可代替某些子查询,另外,某些相关子查询也可改写成非相关子查询。

2、表连接都可以用子查询,但不是所有子查询都能用表连接替换,子查询比较灵活,方便,形式多样,适合用于作为查询的筛选条件,而表连接更适合与查看多表的数据。

3、子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。

4、子查询是本质上就是一个完整 的SELECT 语句,它可以使一个 SELECT、SELECT...INTO 语句、INSERT...INTO 语句、DELETE 语句、或 UPDATE 语句或嵌套在另一子查询中。子查询的输出可以包括一个单独的值(单行子查询)、几行值(多行子查询)、或者多列数据(多列子查询)。

5、连接查询是关系数据库中最主要的查询,主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。

46.

简述事务的四大特性?[5分]

1、原子性

事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 。

2、隔离性

一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

3、一致性

事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。比如,当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统在运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。

4、持续性

指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。

Oracle数据库上机练习6相关推荐

  1. oracle数据安全管理实验,第四次Oracle数据库上机实验-bistu

    <第四次Oracle数据库上机实验-bistu>由会员分享,可在线阅读,更多相关<第四次Oracle数据库上机实验-bistu(3页珍藏版)>请在人人文库网上搜索. 1.BIS ...

  2. Oracle数据库上机练习2

    Oracle上机练习题(二) 试卷总分:100 答题时间:240分钟 一.根据scott账号的下各个表,完成如下SQL语句题 1. 列出至少有一个雇员的所有部门[3分] select distinct ...

  3. oracle数据库期末上机题,oracle数据库期末考试试题及复习资料

    <oracle数据库期末考试试题及复习资料>由会员分享,可在线阅读,更多相关<oracle数据库期末考试试题及复习资料(16页珍藏版)>请在人人文库网上搜索. 1.oracle ...

  4. 轻松学编程--轻松学Oracle数据库(附光盘)

    查看书籍详细信息: 轻松学编程--轻松学Oracle数据库(附光盘) 编辑推荐 <轻松学Oracle数据库>本书中引用了大量的动手实践案例来讲解Oracle数据库中的各种知识,使读者能够更 ...

  5. oracle 慕课课程_“慕课”在Oracle数据库课程中的应用探讨

    [摘 要] 在分析近年来集宁师范学院Oracle数据库课程教学现状."慕课"教学模式优势的基础上,探讨了通过在线平台引入"慕课"进行混合式教学的教学方法,实现翻 ...

  6. Oracle数据库基础教程

    查看书籍详细信息: Oracle数据库基础教程 编辑推荐 体现作者多年的数据库管理与开发经验,结合大量实用技巧,重点突出,便于灵活掌握,提供典型应用实例与上机实验,分析详细,实用性强. 本书是作者结合 ...

  7. oracle实验六杨艳华_工作报告之oracle数据库实验报告

    oracle 数据库实验报告 [篇一:大型数据库 oracle 10g 实验教程实验五实验报 告] 集美大学计算机工程学院实验报告 课程名称: oracle 10g 数据库基础教程 指导教师:杨艳华 ...

  8. Oracle数据库管理员认证三大认证的区别和意义

    区别A:认证获得方式 *OCA:不需要原厂培训,需要通过两门考试 *OCP :OCA与OCP认证可以一起考试,通过OCP至少需要参加一门原厂培训或WDP,通过三门考试 *OCM:需要至少再参加两门原厂 ...

  9. Oracle数据库导入导出命令!

    oracle数据库导入导出命令! 转自:http://www.cnblogs.com/fjfzhkb/archive/2007/09/03/879807.html Oracle数据导入导出imp/ex ...

  10. oracle数据库 export,转:Oracle数据库的备份方法——使用export作为备份

    5.使用export作为备份策略 5.1 export的命令选项说明 Oracle数据库的exp工具提供tables.users.full database.tablespace四种级别的导出方式,把 ...

最新文章

  1. VS2013 生成时复制文件或目录到指定目录
  2. Spotify模式并非“敏捷涅磐”
  3. Windows下的包管理工具scoop
  4. Android-标题状态栏的隐藏
  5. 基于Java和Bytemd用120行代码实现一个桌面版Markdown编辑器
  6. _新车 | 新款捷豹F-PACE登陆广州车展!内外提升十分明显
  7. SQL Server:查找周开始和结束日期时间
  8. java mvp模式_MVP模式入门(结合Rxjava,Retrofit)
  9. atitit 完整的知识体系表 学科体系表 v2
  10. html基础入门----简单动画
  11. modelica语言学习记录V1.0
  12. 华为路由器配置OSPF实现不同网段通信
  13. 1、贪心NLP——课程介绍及NLP概论
  14. 计算机禁用网络后怎么打开,无线网关,教您笔记本无线网络禁用后怎么开启
  15. Binder的Native实现libbinder
  16. 第一世界的年轻人追求的是房子还是别的?
  17. 高薪运维经典企业版面试题汇总
  18. Unity用户手册2019.3(中文版)1.3.1 常见资源类型
  19. zabbix系列(十) 监控内存可用率
  20. STM32——中断优先级分组

热门文章

  1. Python+Selenium程序执行完,chrome浏览器自动关闭解决方案
  2. 五个小时学会Asp连接access添加,删除,修改
  3. dede自动采集自动伪原创完美版插件 元旦优惠活动
  4. oracle双活svc,基于SVC的三种主流双活数据中心架构深入探讨
  5. TMOS系统之Trunks
  6. C语言典型例题四——斐波那契数列
  7. 运维审计人员如何提高工作效率
  8. 天童美语育儿书籍推荐《愿你慢慢长大》
  9. 基于内容的垃圾邮件过滤
  10. Android用户注册界面设计