ORACLE 实验二[通俗易懂]

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)     找出生产执行速度至少是450MCPC的厂商。

(6)     找出价格最高的打印机。

(7)     找出每个生产厂商的PC机的最高价格。

(8)     找出至少生产三种不同型号PC机的厂商。

(9)     厂商A兼并厂商B。把全部B厂商生产的产品改成由厂商A生产。

(10) 删除全部不生产打印机的厂商生产的LAPTOP机。

 三、实验原理、方法和手段

在实验3定义的关系模式的基础上。使用SQL数据操作语句完毕数据的查询和更新操作。在查询和更新时要注意查询的优化策略。

四、实验组织执行要求

本实验为综合型实验。採用集中授课形式,学生集中上机操作。详细要求例如以下:

1、学生在进行实验前必须进行充分的预习,熟悉实验内容;

2、教师在学生实验过程中予以必要的辅导。学生独立完毕实验。

五、实验条件

1、提供一台具有WINDOWS 98/2000/NT/XP操作系统的计算机。

2Oracle8.0以上设计环境。

六、实验步骤

   类同实验三。

七、思考题

    实验比較INExists两种子查询的差别。

八、实验报告

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;

如有不当之处还请多多不吝赐教…

本人劳动成果,还请转载署名出处。。。
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116523.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 公众号发送模板消息

    公众号发送模板消息场景:当用户在公众号中发起了一笔支付,后台给用户发送一个消息。微信配置:用的个人公众号测试,访问地址https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login&token=1212530455&lang=zh_CN(1)配置域名:(2)配置模板消息(3)修改网…

  • 遗传算法(Genetic Algorithm)详解与实现「建议收藏」

    遗传算法(Genetic Algorithm)详解与实现「建议收藏」遗传算法(GeneticAlgorithm,GA)是受自然进化原理启发的一系列搜索算法。通过模仿自然选择和繁殖的过程,遗传算法可以为涉及搜索、优化和学习的各种问题提供高质量的解决方案。同时,它们类似于自然进化,因此遗传算法可以克服传统搜索和优化算法遇到的一些障碍,尤其是对于具有大量参数和复杂数学表示形式的问题。

  • c语言oj得pe,ACM入门之OJ~

    c语言oj得pe,ACM入门之OJ~所谓OJ,顾名思义OnlineJudge,一个用户提交的程序在OnlineJudge系统下执行时将受到比较严格的限制,包括运行时间限制,内存使用限制和安全限制等。用户程序执行的结果将被OnlineJudge系统捕捉并保存,然后再转交给一个裁判程序。该裁判程序或者比较用户程序的输出数据和标准输出样例的差别,或者检验用户程序的输出数据是否满足一定的逻辑条件。最后系统返回给用户一个状态:通过(Ac…

  • VMI管理常见的业务场景(一)[通俗易懂]

    VMI管理常见的业务场景(一)[通俗易懂]VMI管理常见的业务场景(一)什么是VMI管理?和传统库存管理的差别VMI是供应商管理库存(VendorManagedInventory)的简称,为了界定清楚这个新的库存管理思想,需要弄明白它和传统库存管理的差别。传统库存管理是指对物料的收发存的业务管理,是各节点企业独立管理自有库存,最明显的缺点是容易存在库存管理的牛鞭效应、上下游企业利益对抗、合作与沟通困难等问题。VMI库存管理系统能够突破传统的条块分割的库存管理模式,VMI是一种在用户和供应商之间…

  • dropout理解「建议收藏」

    dropout理解「建议收藏」1.dropout解决的问题深度神经网络的训练是一件非常困难的事,涉及到很多因素,比如损失函数的非凸性导致的局部最优值、计算过程中的数值稳定性、训练过程中的过拟合等。过拟合是指模型训练到一定程度后,在测试集上得到的测试误差远大于在训练集上得到的误差。导致过拟合的主要原因有: 1.训练数据集太小 2.模型太复杂 3.过度训练2.dropoutdropout是指在训练一…

  • jquery获取scrollHeight

    jquery获取scrollHeight$(“yourselector”).prop(“scrollHeight”);其他操作:$(window).height();//浏览器当前窗口可视区域高度$(document).height();//浏览器当前窗口文档的高度$(document.body).height();//浏览器当前窗口文档body的高度$(document.body).outerHeight(true);//浏览器当前窗口文档body的总高度包括borderpaddingmargin$(wind

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号