当前位置: 首页 > news >正文

电子科技大学数据库与软件工程三

适用于网工和物联网专业

目录

一、实验目的

二、实验内容

三、实验软件

四、实验步骤及数据记录

1.子查询

2. 伪列

3.数据库对象

4. 块、存储过程和触发器

五、实验结论及思考题

实验结论:

思考题:

六、总结及心得体会

七、对本实验过程及方法、手段的改进建议


一、实验目的

1、学习子查询和常用函数;

2、了解数据库视图的操作;

3、学习 PL/SQL 语言实现对数据库存储过程、触发器等操作。

二、实验内容

 在 SQL Developer 中使用学生用户连接 Oracle 数据库,使用实验二导入的 EMP 表(员工表)、DEPT 表(部门表)和 SALGRADE 表(工资等级表),实现数据库子查询、视图、存储过程、触发器等的操作过程。

三、实验软件

Oracle 数据库、SQL Developer

四、实验步骤及数据记录

1.子查询

1)查询出销售部(SALES)下面的员工姓名、工作、工资。

SELECT NAME,JOB,SAL FROM EMP

WHERE DEPTNO=(SELECT DEPTNO FROM WHERE DNAME='SALES');

结果如下:

图1

2)查询出 EMP 表中比任意一个销售员(SALESMAN)工资低(比销售员工资查询结果中的最大值小)的员工姓名、工作和工资。

SELECT ENAME,JOB,SAL FROM EMP

WHERE SAL<ANY(SELECT SAL FROM EMP WHERE JOB='SALESMAN');

结果如下:

图2

2. 伪列

1)查询出员工表中前 5 名员工的姓名、工作和工资。

SELECT ROWNUM,ENAME,JOB,SAL FROM EMP WHERE ROWNUM<=5;

结果如下:

图3

2)查询出工资最高的前 5 名员工的姓名、工资和工资

SELECT ROWNUM,T.* FROM

(SELECT ENAME,JOB,SAL

FROM EMP ORDER BY SAL DESC) T

WHERE ROWNUM<=5;

结果如下:

图4

3.数据库对象

1)基于 EMP 表和 DEPT 表创建一个只读视图,该视图中只包含员工编号、姓名、工作、入职日期和部门名称,隐藏了员工的工资、奖金、部门编号等信息。

CREATE OR REPLACE VIEW EMPDETAIL

AS

SELECT EMPNO,ENAME,JOB,HIREDATE,DNAME

FROM EMP JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO

WITH READ ONLY;

查询创建的 EMPDETAIL 视图:

结果如下:

图5

2)为 EMP 表的 ENAME 列创建唯一索引,为 EMP 表的工资列创建普通索引,把 JOB 列先变为小写再创建索引

CREATE UNIQUE INDEX UQ_ENAEM_IDX ON EMP(ENAME);

CREATE INDEX IDX_SAL ON EMP(SAL);

CREATE INDEX IDX_JOB_LOWER ON EMP(LOWER(JOB));

 使用下面的 SELECT 命令查看表 EMP 的索引:

SELECT INDEX_NAME,INDEX_TYPE,TABEL_OWNER,TABLE_NAME,UNIQUENESS

FROM USER_INDEXES WHERE TABLE_NAME='EMP';

结果如下:

图6

4. 块、存储过程和触发器

1)声明一个名为sname 的变量

DECLARE

SNAME VARCHAR2(20):='jerry';

BEGIN

SNAME:SNAME||'and tom';

DBMS_OUTPUT.PUT_LINE(sname);

END;

在SQL *Plus 中输出数据时,可能没有结果显示,可以使用命令:set serveroutput on设置输出到 SQL *Plus 控制台上。

​ 输出结果如图所示

图7

2)创建一个显示雇员总人数的存储过程。

CREATE OR REPLACE PROCEDURE EMP_COUNT

AS

V_TOTAL NUMBER(10);

BEGIN

SELECT COUNT(*) INTO V_TOTAL FROM EMP;

DBMS_OUTPUT.PUT_LINE('雇员总人数为:'||V_TOTAL);

END;

存储过程需要点击 SQL Developer 的“运行”按钮才能执行,如果存在错误,就会显示:“警告:创建的过程带有编译错误”。如果存在错误,对脚本进行修改,直到没有错误产生。如果编译结果正确,将显示:“过程已编译”。

调用存储过程,在工作表中输入以下语句并执行:

结果如下:

图8

 3)制作一个数据库触发器。记录所有对 EMP 表进行的 INSERT、UPDATE和DELETE 操作。

CREATE TABLE EMP_LOG(

who varchar2(30),

when date);

CREATE OR REPLACE TRIGGER EMP_OP

BEFORE INSERT OR UPDATE OR DELETE

ON EMP

BEGIN

INSERT INTO EMP_LOG (who,when)

VALUES(user,sysdate);

END EMP_OP;

执行 EMP 表更新操作,查看日志表,结果如下:

图9

五、实验结论及思考题

实验结论:

SQL语言变化要灵活运用,对查询和视图,存储触发器的代码使用和运用更要更加的灵活。

对于一些的查询自己要运用数据库中的笛卡尔相关运算进行解决。

思考题:

  1. 查询出比所有销售员的工资都高的员工姓名、工作和工资。请写出 SELECT命令,并给出查询结果截图

 SELECT ENAME,JOB,SAL FROM EMP

WHERE SAL>ALL (SELECT SAL FROM EMP WHERE JOB='SALESMAN');

查询结果如下:

图10

2、查询出 EMPDETAIL 视图中第 5 条到第 10 条之间的记录。请写出 SELECT命令,并给出查询结果截图。

SELECT *FROM (SELECT rownum no, EMPNO, ENAME, JOB, HIREDATE, DNAME FROM EMPDETAIL WHERE rownum<=10 ORDER BY rownum ASC) WHERE no>=5;

结果如下:

图11

3、创建一个存储过程,显示工资最低的雇员名字。请写出创建存储过程的代码,并给出存储过程的执行结果截图。

CREATE OR REPLACE PROCEDURE SAL_LOW

AS

V_LOW STRING(20);

BEGIN

SELECT ENAME INTO V_LOW FROM EMP WHERE ROWNUM=1 ORDER BY SAL ASC;

DBMS_OUTPUT.PUT_LINE('最低工资:'||V_LOW);

END;

结果如下:

图12

六、总结及心得体会

  1. 实验过程中会遇到一些命令执行失败,之后发现是自己的相关命令的用法出现错误。
  2. 在实验过程中要融汇变通,对课堂上讲述的命令进行变换和总结。
  3. 同时在实验过程中要认真仔细,对出问题的每一个过程进行分析总结,运用课堂知识进行解决。

七、对本实验过程及方法、手段的改进建议

1.另外,可以适当增加一些SQL语言的练习,以便对学习的知识进行掌握。

2.建议实验步骤相关部分可以不给出代码,让学生们自己撰写。

相关文章:

电子科技大学数据库与软件工程三

适用于网工和物联网专业 目录 一、实验目的 二、实验内容 三、实验软件 四、实验步骤及数据记录 1.子查询 2. 伪列 3.数据库对象 4. 块、存储过程和触发器 五、实验结论及思考题 实验结论&#xff1a; 思考题&#xff1a; 六、总结及心得体会 七、对本实验过程及方…...

华为开源自研AI框架昇思MindSpore数据变换:Transforms

目录一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例二、数据变换 TransformsCommon TransformsComposeVision TransformsRescaleNormalizeHWC2CWHText TransformsBasicTokenizerLookupLambda Transforms通常情况下&#xff0c;直接加载的原始数据并不能直接送入…...

软件测试之边界值测试法

边界值测试法 1. 介绍 边界值分析法就是对输入或输出边界值进行测试的,也是一种黑盒测试. 边界值分析法通常作为等价类划分法的补充,其测试用例来自等价类的边界;长期的经验得知,大量的错误是发现在输入或输出范围的边界上&#xff0c;而不是发生再输入输出范围的内部&#…...

【华为OD机试模拟题】用 C++ 实现 - 最近的点(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客使用说明最近的点题目输入输出示例一输入输出Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址…...

Qt windeployqt.exe 打包qml

Qt系列文章目录 文章目录Qt系列文章目录前言一、遇到的坑二、参考前言 我们在QtCreator下面开发程序&#xff0c;一般都会遇到工程发布给客户使用的情况。我们通常会使用Qt自带的打包工具&#xff1a;windeployqt.exe。 windeployqt.exe是Qt自带的工具&#xff0c;用于创建应用…...

【人脸识别】CurricularFace:自适应课程学习人脸识别损失函数

论文题目&#xff1a;《CurricularFace: Adaptive Curriculum Learning Loss for Deep Face Recognition》 论文地址&#xff1a;https://arxiv.org/pdf/2004.00288v1.pdf 代码地址&#xff1a;https://github.com/HuangYG123/CurricularFace 建议先了解下这篇文章&#xff1a…...

springmvc之rest风格(RESTFUL)

目录 一、介绍 1.什么是REST&#xff1f; 2.REST的实质 3.REST风格的优点 4.REST风格的缺点 3.什么是RESTful&#xff1f; 二、代码理解 一、介绍 1.什么是REST&#xff1f; 答&#xff1a;REST&#xff08;Representational State Transfer&#xff09; ,表现形式转…...

django项目实战十四(django+bootstrap实现增删改查)进阶混合数据使用modelform上传

目录 一、启用media 1、URL设置 2、settings.py配置 二、url 三、upload.py 新增upload_modelform方法 四、form.py新增UpModelForm 五、创建city表 六、创建city_list.html 接上一篇《django项目实战十三&#xff08;djangobootstrap实现增删改查&#xff09;进阶混合数据f…...

2023年CDGA考试模拟题库(1-100)

2023年CDGA考试模拟题库(1-100) 1.以下哪种活动中 ,混淆是不足以保护数据 的?[1分] A.数据共享 B.数据转换 C.数据脱敏 D.以上都正确 答案C 2.关于受控词表描述不正确的是?[1分] A.系统地组织文件档案和内容离不开受控词表 B.受控词表的一个例子是用于出版物分类的都…...

HTML常用基础内容总结

文章目录一、对HTML的感性认知前置知识什么是web前端&#xff0c;什么是web后端前端技术栈、后端技术栈开发与运行的区别浏览器的功能是什么简介写一个简单可运行的的html代码前端开发方式二、VSCode的简单使用三、常用的HTML标签最最基本的HTML结构HTML代码特点注释标签标题标…...

Gorm-学习笔记

1 基本使用 2 创建数据 2.1 如何使用Upsert 使用clause.OnConflict处理数据冲突 2.2 如何使用默认值 通过使用default标签为字段定义默认值 3 查询数据 3.1 First与Find 使用First时&#xff0c;需要注意查询不到数据会返回ErrRecordNotFound。 使用Find查询多条数据&#x…...

【Neo4j】图数据库CypherQueryLanguage随笔

CQL语言随笔 一、Cyther关系描述 如图&#xff1a;唐僧&#xff0c;孙悟空&#xff0c;白骨精三者的关系图&#xff1a; Cypher语言描述他们的关系&#xff1a; (孙悟空)<-[:赶走]-(唐僧)-[:被骗]->(白骨精)-[:被打死]->(孙悟空) 二、CQL语言的使用案例 创建结点…...

STM32Cube串口USART发送接收数据

本文代码使用 HAL 库。 文章目录前言一、USART 同步/异步串行接收/发送器二、USART 原理图三、CubeMX 创建工程四、usart.c 文件解析五&#xff0c;设计实验&#xff1a;在 串口输入字符点亮led实验现象&#xff1a;总结前言 这篇文章介绍 实现 USART 异步模式下 通过 串口助手…...

OpenFeign详解

OpenFeign是什么&#xff1f; OpenFeign&#xff1a; OpenFeign是Spring Cloud 在Feign的基础上支持了SpringMVC的注解&#xff0c;如RequesMapping等等。OpenFeign的FeignClient可以解析SpringMVC的RequestMapping注解下的接口&#xff0c;并通过动态代理的方式产生实现类&am…...

python多线程网络编程

背景 使用过flask框架后&#xff0c;我对request这个全局实例非常感兴趣。它在客户端发起请求后会保存着所有的客户端数据&#xff0c;例如用户上传的表单或者文件等。那么在很多客户端发起请求时&#xff0c;服务器是怎么去区分不同的request对象呢&#xff1f;当查看了大量的…...

BFS-走迷宫

题目描述 给定一个 NM 的网格迷宫 G。G 的每个格子要么是道路,要么是障碍物(道路用 1 表示,障碍物用 0 表示)。 已知迷宫的入口位置为 (x1,y1),出口位置为 (x2...

【蓝牙mesh】Lower协议层介绍

【蓝牙mesh】Lower协议层介绍 Lower层简介 Lower协议层用于处理网络层以下的功能&#xff0c;包括节点的广播、重传、路由和网络拓扑等&#xff0c;是实现蓝牙mesh网络的关键协议之一。其中Lower协议层中最主要的一部分工作就是mesh数据的分片和组包。 Lower层是将Upper层发过…...

Java-重排序,happens-before 和 as-if-serial 语义

目录1. 如何解决重排序带来的问题2. happens-before1. 如何解决重排序带来的问题 对于编译器&#xff0c;JMM 的编译器重排序规则会禁止特定类型的编译器重排序。对于处理器重排序&#xff0c;JMM 的处理器重排序规则会要求编译器在生成指令序列时&#xff0c;插入特定类型的内…...

Nginx安装及介绍

前言&#xff1a;传统结构上(如下图所示)我们只会部署一台服务器用来跑服务&#xff0c;在并发量小&#xff0c;用户访问少的情况下基本够用但随着用户访问的越来越多&#xff0c;并发量慢慢增多了&#xff0c;这时候一台服务器已经不能满足我们了&#xff0c;需要我们增加服务…...

【华为OD机试模拟题】用 C++ 实现 - 寻找路径 or 数组二叉树(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客使用说明寻找路径 or 数组二叉树题目输入输出描述示例一输入输出示例二输入输出Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过…...

Kindle Comic Converter:漫画电子书制作的专业工具

Kindle Comic Converter&#xff1a;漫画电子书制作的专业工具 【免费下载链接】kcc KCC (a.k.a. Kindle Comic Converter) is a comic and manga converter for ebook readers. 项目地址: https://gitcode.com/gh_mirrors/kc/kcc Kindle Comic Converter&#xff08;简…...

OpenCV实战:3种图像降噪滤波器的Python代码对比(附效果图)

OpenCV实战&#xff1a;3种图像降噪滤波器的Python代码对比&#xff08;附效果图&#xff09; 在数字图像处理中&#xff0c;噪声是影响图像质量的主要因素之一。无论是来自传感器的不完美&#xff0c;还是传输过程中的干扰&#xff0c;噪声都会降低图像的清晰度和可用性。对于…...

Beyond Compare 5终极激活指南:免费获取永久授权密钥的完整教程

Beyond Compare 5终极激活指南&#xff1a;免费获取永久授权密钥的完整教程 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5作为业界领先的文件对比工具&#xff0c;其强大的功…...

造相Z-Image文生图模型v2:3步搭建你的专属AI画师

造相Z-Image文生图模型v2&#xff1a;3步搭建你的专属AI画师 1. 为什么选择Z-Image v2作为你的AI画师 在众多文生图模型中&#xff0c;造相Z-Image v2以其独特的优势脱颖而出。作为阿里通义万相团队开源的高性能模型&#xff0c;它原生支持768768及以上分辨率的高清图像生成&…...

2026年黄山钢筋网片供应厂家揭秘

在建筑行业蓬勃发展的今天&#xff0c;钢筋网片作为建筑施工中不可或缺的材料&#xff0c;其质量和供应厂家的选择至关重要。对于黄山地区的建筑项目来说&#xff0c;找到一家靠谱的钢筋网片供应厂家&#xff0c;是保障工程质量和进度的关键。今天&#xff0c;我们就来揭秘一家…...

深度解析:相机、LiDAR与IMU紧耦合SLAM技术的最新进展与挑战

1. 为什么需要相机、LiDAR与IMU紧耦合&#xff1f; 想象一下你第一次玩VR游戏时的场景&#xff1a;头显里的画面随着你转头而实时变化&#xff0c;但稍有延迟就会让人头晕目眩。这正是SLAM技术要解决的核心问题——在未知环境中实时确定自身位置并构建地图。而单一传感器就像只…...

GCN在推荐系统中的应用:如何用图神经网络提升电商个性化推荐效果

GCN在电商推荐系统中的实战指南&#xff1a;从二部图构建到A/B测试全流程 当你在电商平台浏览商品时&#xff0c;那些"猜你喜欢"的推荐背后&#xff0c;可能正运行着一套基于图神经网络(GCN)的复杂算法系统。与传统的协同过滤不同&#xff0c;GCN能够捕捉用户-商品交…...

C语言编程基础与核心概念详解

1. C语言入门基础解析C语言作为编程世界的基石语言&#xff0c;其简洁高效的特性使其在系统编程、嵌入式开发等领域占据不可替代的地位。我第一次接触C语言是在大学计算机系的实验室里&#xff0c;那个打印出"Hello World"的瞬间至今记忆犹新。让我们从最基础的部分开…...

7个高效步骤:Meshroom开源三维重建工具从入门到精通

7个高效步骤&#xff1a;Meshroom开源三维重建工具从入门到精通 【免费下载链接】Meshroom 3D Reconstruction Software 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom 技术原理&#xff1a;三维重建的底层逻辑与技术选型 摄影测量技术的数学基础 三维重建技…...

从T检验到回归:用SPSS搞定你的毕业论文数据分析(保姆级步骤+结果解读)

从T检验到回归&#xff1a;用SPSS搞定你的毕业论文数据分析&#xff08;保姆级步骤结果解读&#xff09; 当你面对堆积如山的问卷数据或实验记录时&#xff0c;是否曾感到无从下手&#xff1f;作为人文社科、经管或心理学领域的研究者&#xff0c;掌握SPSS这一统计利器至关重要…...