【Oracle】玩转Oracle数据库(四):SQL语言

 

前言

嘿,各位数据达人们!准备好迎接新的挑战了吗?今天,我们要探索的是数据库世界的魔法咒语——SQL语言!🔮💻

在这篇博文【Oracle】玩转Oracle数据库(四):SQL语言中,我们将进入数据库的奇妙世界,掌握SQL这把金钥匙,解锁数据的无限可能性!💡🌟

无论你是想成为数据分析大师,还是想拥有更好的数据库管理技能,相信我,这篇文章都会是你的贴心导师!我们要学会编写SQL查询,掌握增删改查等基本操作,更要深入了解SQL语言的核心原理和高级技巧!准备好让你的数据技能飞速提升了吗?跟着我一起踏上SQL的征程,让我们的数据库之旅更加精彩!🚀📊

目录

前言

☀️一、研究目的

🌼二、研究内容

🌷三、研究结论

🔥3.1 需要访问HR示例方案中的表,先查询机器上是否已有HR方案,如果已有HR方案,则跳过该步骤。如果没有,则运行相关包和相应配置装入HR方案。

☀️1. 将hr.rar解压到E:\ora11gk\oracle11g\product\11.2.0\dbhome_1\demo\schema\human_resources目录如图3

☀️2. 然后按提示依次输入

🔥3.2 完成下面的查询,记录查询命令和结果。

☀️1. 查询HR方案种有哪些表,列出表名

☀️2. 设置行宽为160,每页行数为40

☀️3. 查询employees表中所有薪水在3000到6000元之间的员工编号、姓名、受聘日期、工作代号、薪水、经理代号、部门号,按部门号升序排列,同一部门按员工编号降序排列

☀️4. 查询每个部门的人数、平均薪水、最高薪水、最低薪水,按部门编号升序排列

☀️5. 查询first_name的第三个字母是t的员工编号,first_name,电话号码,部门编号,部门名称

☀️6. 在job_history表中查询任职时间超过1年的员工编号,任职历时月份(保留整数),工作代号,部门代号。

📝四、研究心得


☀️一、研究目的

  • 掌握在Oracle中添加示例方案的方法
  • 熟练掌握SQL语言的查询功能
  • 掌握SQL Plus常用命令

🌼二、研究内容

一、需要访问HR示例方案中的表,先查询机器上是否已有HR方案,如果已有HR方案,则跳过该步骤。如果没有,则运行相关包和相应配置装入HR方案。

  1. 将hr.rar解压到D:\oracle\...\demo\schema\ human_resources目  (路径中“…”因不同机器不同安装目录而不同,根目录也可能不同,相应解压位置和下面的命令都要随之改变),然后在SQL*PLUS 中执行 hr_main.sql这个文件,以SYS用户登录执行。即 
    SQL>@D:\oracle\...\demo\schema\human_resources\hr_main.sql
  2. 然后按提示依次输入如下:
Specify passwordfor HR as parameter 1:
Enter valuefor 1: hrSpecify default tablespeacefor HR as parameter 2:
Enter valuefor 2: usersSpecify temporary tablespacefor HR as parameter 3:
Enter valuefor 3: tempSpecify passwordfor SYS as parameter 4:
Enter valuefor 4:runnerSpecify log path as parameter 5:
Enter valuefor 5: D:\oracle\...\RDBMS\log

二、完成下面的查询,记录查询命令和结果。

  1. 查询HR方案种有哪些表,列出表名
  2. 设置行宽为160,每页行数为40
  3. 查询employees表中所有薪水在3000到6000元之间的员工编号、姓、名、受聘日期、工作代号、薪水、经理代号、部门号,按部门号升序排列,同一部门按员工编号降序排列
  4. 查询每个部门的人数、平均薪水、最高薪水、最低薪水,按部门编号升序排列
  5. 查询first_name的第三个字母是t的员工编号,first_name,电话号码,部门编号,部门名称
  6. 在job_history表中查询任职时间超过1年的员工编号,任职历时月份(保留整数),工作代号,部门代号。
  7. 查询每个部门经理的员工编号、姓名、薪水、部门号。

🌷三、研究结论

准备工作:

按住win+r输入sqlplus,如图1.

图1

输入用户名:sys as sysdba,密码:Csuft123.并输入startup启动实例如图2.

图2

【实验内容开始】

🔥3.1 需要访问HR示例方案中的表,先查询机器上是否已有HR方案,如果已有HR方案,则跳过该步骤。如果没有,则运行相关包和相应配置装入HR方案。

☀️1. 将hr.rar解压到E:\ora11gk\oracle11g\product\11.2.0\dbhome_1\demo\schema\human_resources目录如图3

图3

然后在SQL*PLUS 中执行 hr_main.sql这个文件,以SYS用户登录执行即 SQL>@E:\ora11gk\oracle11g\product\11.2.0\dbhome_1\demo\schema\human_resources\hr_main.sql

☀️2. 然后按提示依次输入

Specify passwordfor HR as parameter 1:
Enter valuefor 1: hrSpecify default tablespeacefor HR as parameter 2:
Enter valuefor 2: usersSpecify temporary tablespacefor HR as parameter 3:
Enter valuefor 3: tempSpecify passwordfor SYS as parameter 4:
Enter valuefor 4:runnerSpecify log path as parameter 5:
Enter valuefor 5: E:\ora11gk\oracle11g\product\11.2.0\dbhome_1\RDBMS\log

输入完如图4

图4

运行完如图5

图5

🔥3.2 完成下面的查询,记录查询命令和结果。

☀️1. 查询HR方案种有哪些表,列出表名

答:7张表:使用命令命令如图6

select table_name from user_tables;

图6

☀️2. 设置行宽为160,每页行数为40

答:使用命令设置行宽为160

set linesize 160

使用命令设置每页行数为40如图7

set pagesize 40

图7

☀️3. 查询employees表中所有薪水在3000到6000元之间的员工编号、姓名、受聘日期、工作代号、薪水、经理代号、部门号,按部门号升序排列,同一部门按员工编号降序排列

答:在查询前我们需要查看employees表中的属性,使用指令如图8

desc employees

图8

使用命令如下:

select EMPLOYEE_ID,FIRST_NAME,LAST_NAME,HIRE_DATE,JOB_ID,SALARY,MANAGER_ID,DEPARTMENT_ID
from employees
where SALARY between 3000 and 6000
order by DEPARTMENT_ID asc,EMPLOYEE_ID desc;

需要注意的是姓名由FIRST_NAME和LAST_NAME组成而没有NAME,如图9

图9

我们发现其显示信息格式特别乱,为了显示更为美观,我们使用可视化PLSQL工具对其进行查询操作如图10

图10

☀️4. 查询每个部门的人数、平均薪水、最高薪水、最低薪水,按部门编号升序排列

答:为了方便显示所以后续截屏均在PLSQL可视化工具进行,在查询前我们需要查看employees表中的属性,使用指令如图11

desc employees

图11

这里使用查询命令如下:

select count(*)人数,avg(salary)平均薪水,max(salary)最高薪水,min(salary)最低薪水
From hr.employees
Group by department_id
order by department_id asc;

显示结果如图12

图12

☀️5. 查询first_name的第三个字母是t的员工编号,first_name,电话号码,部门编号,部门名称

答:这里先查看表的描述使用命令如图13

desc departments

图13

使用查询命令如图14

select EMPLOYEE_ID,FIRST_NAME,PHONE_NUMBER,hr.employees.DEPARTMENT_ID,DEPARTMENT_NAME
from hr.employees,hr.departments
where first_name like '__t%'
and hr.employees.department_id=hr.departments.department_id;

图14

☀️6. 在job_history表中查询任职时间超过1年的员工编号,任职历时月份(保留整数),工作代号,部门代号。

答:这里先查看表的描述使用命令如图15

desc job_history

图15

这里使用查询命令如图16

select employee_id,round(months_between(end_date,start_date)),job_id,department_id
From hr.job_history
Where round(months_between(end_date,start_date))>12;

图16

7.查询每个部门经理的员工编号、姓名、薪水、部门号。

答:这里使用查询命令如图17

select distinct e1.employee_id,e1.first_name,e1.last_name,e1.salary,e1. department_id
From hr.employees e1 inner join hr.employees e2
On e1.employee_id=e2.manager_id;

图17


📝四、研究心得

嗨,数据库探险家们!这次的Oracle数据库创建和管理实验简直就像是一场技术考验的狂欢!我不仅掌握了添加示例方案的技巧,还熟练运用起了SQL语言的查询功能,而且SQL Plus的命令也基本能驾驭得了!💻🔥

但嘿,挑战不止如此!这次的实验记录着无数的技术考验和小插曲!首先,我对表查询前得先研究属性,不然眼都懵了!desc命令成了我最亲密的伙伴!😅

然后,那个“TNS:协议适配器错误”,我尝试了各种神奇的解决方法,甚至还开了个小灶,结果只有关机重启才能搞定!这可真是技术小白魔咒的一次奇遇!🧙‍♂️✨

还有,在SQL语句里,引号得是英文状态下的,中文状态下的可不认!是不是有点儿小心机?😉

最后,我深深感受到了sqlplus窗口查询的种种不足:没错检查、格式乱糟糟!我觉得,时间应该花在解决问题上,而不是在调整格式上!所以,我决定转战PLSQLDEV,它的可视化结果简直美哭了!🎨💼

总的来说,这次实验就像是一场技术之旅,虽然充满挑战,但也充满了成长的味道!💪🌟

图18

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/485354.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

史上最全网络安全术语汇总

整理了一份网络安全词汇术语解释,这是一份在关键时刻能救命的文档。 以前被当做vip会员资料给会员的,现在限时免费分享给大家,有需要的朋友可以下载收藏。分享过期后也不要再跟波哥要了哈! 部分内容截选: 网络安全通…

Elastic Search:构建语义搜索体验

当你逐步熟悉 Elastic 时,你将使用 Elasticsearch Relevance Engine™ (ESRE),该引擎旨在为 AI 搜索应用程序提供支持。 借助 ESRE,你可以利用一套开发人员工具,包括 Elastic 的文本搜索、向量数据库和我们用于语义搜索的专有转换…

https://registry.npm.taobao.org淘宝npm镜像仓库地址更新

在工作中有遇见获取淘宝的npm镜像存在问题,图示如下的报错: 根据报错的内容是说 https://registry.npm.taobao.org地址访问失败了,然后通过排查发现淘宝的npm镜像仓库地址有更新了。需要使用最新的地址 旧的淘宝镜像仓库:https://…

全国各省建成区绿化覆盖率数据集(2006-2021年)

时间范围:2006-2021年 参考文献: [1] 吕桁宇, 马春爱, 汤桐, 郝馥莹. 环境规制、技术创新与工业企业能源强度[J]. 统计与决策, 2023, 39 (10): 59-64. [2] 李思慧, 徐保昌. 环境规制与技术创新——来自中国地级市层面的经验证据[J]. 现代经济探讨, 20…

移动硬盘误删的文件还能找回来吗?1分钟弄清答案!

“想问问大家如果移动硬盘里保存了很多文件,但上次使用时不小心将部分文件删除了,还有机会找回误删的文件吗?应该怎么进行误删文件的恢复呢?” 在数字化时代,移动硬盘成为了我们存储和传输数据的重要工具。然而&#x…

编程学习线上提问现场解答流程,零基础学编程从入门到精通

编程学习线上提问现场解答流程 一、前言 之前给大家分享的一款中文编程工具,越来越多的学员使用这个工具学习编程。 在学习中有疑难问题寻求解答流程 1、可以在本平台留言或发私信联系老师 2、可以在群提问及时解答问题 3、通过线上会议的方式,电脑…

基于自动化工具autox.js的抢票(猫眼)

1.看到朋友圈抢周杰伦、林俊杰演唱会票贼难信息,特研究了一段时间,用autox.js写了自动化抢票脚本,购票页面自动点击下单(仅限安卓手机)。 2.脚本运行图 3.前期准备工作 (1)autox.js社区官网&am…

ChatGPT回答模式

你发现了吗,ChatGPT的回答总是遵循这些类型方式。 目录 1.解释模式 2.类比模式 3.列举模式 4.限制模式 5.转换模式 6.增改模式 7.对比模式 8.翻译模式 9.模拟模式 10.推理模式 1.解释模式 ChatGPT 在回答问题或提供信息时,不仅仅给出…

Sora - 探索AI视频模型的无限可能-官方报告解读与思考

一、引言 最近SORA火爆刷屏,我也忍不住找来官方报告分析了一下,本文将深入探讨OpenAI最新发布的Sora模型。Sora模型不仅仅是一个视频生成器,它代表了一种全新的数据驱动物理引擎,能够在虚拟世界中模拟现实世界的复杂现象。本文将重…

基于springboot+vue的中小型医院网站(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Flutter常用命令,持续更新

目录 前言 Flutter 常用命令 Dart 常用命令 adb 常用命令(用于 Android 开发) 前言 当在开发Flutter项目时,熟悉一些常用的命令是非常重要的。这些命令可以帮助你执行各种任务,从构建应用程序到调试和测试。以下是一些Flutte…

RabbitMQ开启MQTT协议支持

1)RabbitMQ启用MQTT插件 rootmq:/# rabbitmq-plugins enable rabbitmq_mqtt Enabling plugins on node rabbitmq: rabbitmq_mqtt The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_mqttrabbitmq_web_dispatch Ap…