ORACLE 实验二
实验二:数据操纵
实验学时:4学时
实验类型:综合型
实验要求:必修
一、实验目的
1、掌握SQL数据查询语句;
2、掌握SQL聚集函数的使用。
3、掌握SQL插入、改动、删除语句的使用。
二、实验内容
1.project项目採购数据库,在实验3.2的基础上插入例子数据并完毕下列操作:
(1)
求向projectJ1提供零件的供应商的编号。
(2)
求向projectJ1提供零件P1的供应商的编号。
(3)
求向projectJ1提供红色零件的供应商的编号。
(4)
求没有使用天津供应商提供的红色零件的project号。
(5)
求至少使用了供应商S1所提供的所有零件的project号。
(6)
统计各个供应商供应的零件总数。
(7)
求至少使用了3种以上零件的project号。
(8)
把全部红色零件的颜色改为粉红色。
(9)
将向projectJ1提供零件P1的供应商S1改为S2提供。
(10)
删除所有红色零件以及对应的供应-使用记录。
2.产品价格数据库。在实验3.3的基础上插入例子数据并完毕下列操作
(1)
列出速度至少是150的那些PC机的型号。
(2)
哪些厂家生产的LAPTOP配置的硬盘不低于1。
(3)
找出由生产厂B所生产的所有产品的型号和价格。
(4)
找出全部的彩色激光打印机的型号。
(5)
找出生产执行速度至少是450MC的PC的厂商。
(6)
找出价格最高的打印机。
(7)
找出每个生产厂商的PC机的最高价格。
(8)
找出至少生产三种不同型号PC机的厂商。
(9)
厂商A兼并厂商B。把全部B厂商生产的产品改成由厂商A生产。
(10)
删除全部不生产打印机的厂商生产的LAPTOP机。
三、实验原理、方法和手段
在实验3定义的关系模式的基础上。使用SQL数据操作语句完毕数据的查询和更新操作。在查询和更新时要注意查询的优化策略。
四、实验组织执行要求
本实验为综合型实验。採用集中授课形式,学生集中上机操作。详细要求例如以下:
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、教师在学生实验过程中予以必要的辅导。学生独立完毕实验。
五、实验条件
1、提供一台具有WINDOWS 98/2000/NT/XP操作系统的计算机。
2、Oracle8.0以上设计环境。
六、实验步骤
类同实验三。
七、思考题
实验比較IN与Exists两种子查询的差别。
八、实验报告
1.实验预习
在实验前每位同学都须要对本次实验进行认真的预习,并写好预习报告。在预习报告中要写出实验目的、要求、简要的实验步骤,形成一个操作提纲。
2.实验记录
学生開始实验时。应该将记录本放在近旁,将实验中所做的每一步操作、所得结果及相关条件如实地记录下来。
3.实验报告
主要内容包含实验中的查询语句、数据更新语句、执行结果以及对操作过程中出现错误的分析总结。回答思考题,给出实验结论。
九、其他说明
学生严格遵守实验室的各项规章制度,配合和服从实验室人员管理。
经过试验 我们也得到了实验的结果
注意这个两个SQL实验脚本是基于实验一中的两个数据库的
代码例如以下,进过验证 实验没有错误 基本的是双NOT EXISTS 具体的解答见我的博客还有一章节
--2.1---------------------------------------------------------------------------------------
select SNO FROM SPJ
WHERE JNO='J1'; select SNO FROM SPJ
WHERE JNO='J1'AND PNO='P1'; select SPJ.SNO FROM SPJ,P
WHERE SPJ.JNO='J1'AND SPJ.PNO=P.PNO AND COLOR='红'; SELECT DISTINCT SPJ.JNO FROM SPJ,S,P
WHERE SPJ.SNO=S.SNO AND SPJ.PNO=P.PNO
AND S.CITY!='天津' AND P.COLOR!='红'; SELECT DISTINCT JNO
FROM J
WHERE NOT EXISTS
(
SELECT *
FROM SPJ SPJ1
WHERE SPJ1.sno='S1' AND NOT EXISTS
(
SELECT *
FROM SPJ SPJ2
WHERE SPJ2.pno= SPJ1.pno AND SPJ1.jno= J.jno
)
); SELECT SPJ.SNO,COUNT(*) FROM SPJ
GROUP BY SPJ.SNO; SELECT SPJ.JNO FROM SPJ
GROUP BY SPJ.JNO
HAVING COUNT(*) >=3; UPDATE P
SET COLOR='粉红'
WHERE COLOR='红'; UPDATE SPJ
SET SNO='S2'
WHERE SNO='S1' AND JNO='J1' AND PNO='P1'; DELETE SPJ
WHERE SPJ.PNO IN
(
SELECT P.PNO FROM p
WHERE P.COLOR='红'
); DELETE P
WHERE P.COLOR='红'; --2.2---------------------------------------------------------------------------------
SELECT MODEL
FROM PC
WHERE SPEED >= 150; SELECT DISTINCT PRODUCT.MAKER FROM PRODUCT,LAPTOP
WHERE PRODUCT.MODEL=LAPTOP.MODEL AND LAPTOP.HD >= 1.0; SELECT MAKER,PRODUCT.MODEL,PRICE
FROM PRODUCT,PC
WHERE PRODUCT.MAKER='B' AND PRODUCT.model=PC.model
UNION
(
SELECT MAKER,PRODUCT.MODEL,PRICE
FROM PRODUCT,LAPTOP
WHERE PRODUCT.MAKER='B' AND PRODUCT.model=LAPTOP.model
)
UNION
(SELECT MAKER,PRODUCT.MODEL,PRICE
FROM PRODUCT,PRINTER
WHERE PRODUCT.MAKER='B' AND PRODUCT.model=PRINTER.model
); SELECT MODEL FROM PRINTER
WHERE COLOR='TRUE'; SELECT DISTINCT PRODUCT.MAKER
FROM PRODUCT,PC
WHERE TYPE='PC' AND PRODUCT.MODEL=PC.MODEL AND SPEED>450; SELECT * FROM PRINTER
WHERE PRICE >= ALL
(
SELECT PRICE FROM PRINTER
); SELECT MODEL,PRICE
FROM PRINTER
WHERE PRICE=
(
SELECT MAX(PRICE) FROM PRINTER
); SELECT DISTINCT MAKER,MAX(PRICE)
FROM PRODUCT ,PC
WHERE PRODUCT.MODEL=PC.MODEL AND TYPE='PC'
GROUP BY MAKER; SELECT DISTINCT MAKER,COUNT(*) FROM PRODUCT
WHERE TYPE='PC'
GROUP BY MAKER
HAVING COUNT(*)>=3; UPDATE PRODUCT
SET MAKER='B'
WHERE MAKER='A'; DELETE PRODUCT P1
WHERE P1.TYPE='LAPTOP' AND EXISTS
(
SELECT * FROM PRODUCT P2
WHERE P2.TYPE='Printer'
AND P1.MODEL=P2.MODEL
); ROLLBACK;
如有不当之处还请多多不吝赐教...
本人劳动成果,还请转载署名出处。。。
ORACLE 实验二的更多相关文章
- ORACLE实验一-三
警告: 创建的触发器带有编译错误. SQL> show error;TRIGGER TRG_SCORE_AFT_ROW 出现错误: LINE/COL ERROR-------- -------- ...
- ORACLE 实验一
实验一:数据定义 实验学时:4学时 实验类型:综合型 实验要求:必修 一.实验目的 1.熟悉Oracle的client配置: 2.掌握SQL Plus的使用: 3.掌握SQL模式定义语句,定义相关的表 ...
- 20145215&20145307《信息安全系统设计基础》实验二 固件设计
20145215&20145307<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux ...
- FPGA与simulink联合实时环路系列——实验二LED
实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...
- 20145204&20145212信息安全系统实验二
20145204&20145212信息安全系统实验二 链接
- 20145204&20145212实验二报告
实验二固件设计 步骤: 1.开发环境的配置,参考实验一 1.将实验代码拷贝到共享文件夹中. 2.在虚拟机中编译代码.对于多线程相关的代码,编译时需要加-lpthread的库.下载调试在超级终端中运行可 ...
- 20145215实验二 Java面向对象程序设计
一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 二.实验步骤 (一)单元测试 (1)三种代码 伪代码: ...
- 实验二 用C语言表示进程的调度
实验二 一. 实验目的 通过模拟进程的调度,进一步了解进程的调度的具体过程. 二. 实验内容和要求 1.进程PCB的结构体定义 2.定义队列 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行 ...
- 20145218&20145240 《信息安全系统设计基础》实验二 固件设计
20145218&20145240 <信息安全系统设计基础>实验二 固件设计 实验报告链接:http://www.cnblogs.com/20145240lsj/p/6035512 ...
随机推荐
- 编程算法 - 有序双循环链表的插入 代码(C)
有序双循环链表的插入 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 有序双循环链表的插入, 须要找到插入位置, 能够採用, 两个指针, 一个在前, 一 ...
- Codeforces Round #216 (Div. 2) D. Valera and Fools
题目链接:http://codeforces.com/contest/369/problem/D 注意题意:所有fools都向编号最小的fool开枪:但每个fool都不会笨到想自己开枪,所以编号最小的 ...
- 【IACV】边缘检测技术传统的方法与理论
1.边缘检测的目的 边缘检测是图像分析中使用到的最常见的操作之一,而且相比其他任何主题来说,文献中提到的与边缘增强(edge enhancement)[1]与边缘检测(edge detection)[ ...
- 微凉大大,教你一步一步在linux中正确的安装Xcache加速php。
首先,强烈吐槽,百度上的教程,都左复制右复制的,乱七八糟,缺东缺西的.借此微凉大大我提供我苦心整理好的教程.以便各位小菜能顺利的使用Xcache加速php,假设看完了,也操作了,还是失败了的话,请联系 ...
- TMsgThread, TCommThread -- 在delphi线程中实现消息循环(105篇博客,好多研究消息的文章)
在delphi线程中实现消息循环 在delphi线程中实现消息循环 Delphi的TThread类使用很方便,但是有时候我们需要在线程类中使用消息循环,delphi没有提供. 花了两天的事件研究了 ...
- android之LruCache源代码解析
移动设备开发中,因为移动设备(手机等)的内存有限,所以使用有效的缓存技术是必要的.android提供来一个缓存工具类LruCache,开发中我们会经经常使用到,以下来他是怎样实现的. 在package ...
- ExtJs4 笔记(7) Ext.tip.ToolTip 提示
本篇介绍提示控件,ExtJs支持两种方式定义提示,可以支持普通html元素和一般的ExtJs UI控件. 一.基本提示 Ext.tip.ToolTip 1.最简单的提示 下面通过代码定义一个最简单的提 ...
- Effective C++:规定12:不要忘了复制的对象时,它的每一个组成部分
(一个) 继承制度的声明: class Date {...}; class Customer { public: ... private: string name; Date lastTransact ...
- ADO面板上的控件简介
ADO面板上的控件简介 一. TADOConnection组件该组件用于建立数据库的连接.ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等.该组件用于建立数据库的连接,该连接可被 ...
- 第二章排错的工具:调试器Windbg(上)
感谢博主 http://book.51cto.com/art/200711/59731.htm <Windows用户态程序高效排错>第二章主要介绍用户态调试相关的知识和工具.本文主要讲了排 ...