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

news2024/9/20 22:51:12

 

前言

嘿,各位数据达人们!准备好迎接新的挑战了吗?今天,我们要探索的是数据库世界的魔法咒语——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: hr

Specify default tablespeacefor HR as parameter 2:
Enter valuefor 2: users

Specify temporary tablespacefor HR as parameter 3:
Enter valuefor 3: temp

Specify passwordfor SYS as parameter 4:
Enter valuefor 4:runner

Specify 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: hr

Specify default tablespeacefor HR as parameter 2:
Enter valuefor 2: users

Specify temporary tablespacefor HR as parameter 3:
Enter valuefor 3: temp

Specify passwordfor SYS as parameter 4:
Enter valuefor 4:runner

Specify 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.coloradmin.cn/o/1464890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Puppeteer 使用实战:如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客(三)

文章目录 往期效果将文章信息导出适配 hexo 的文章模板导出的文章路径问题终端控制执行脚本代码整理结尾 往期 Puppeteer 使用实战:如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客(二) 效果 写了一个 node 脚本用来批量处理 md 文件 本期…

Jenkins 中部署Nodejs插件并使用,并构建前端项目(3)

遇到多个版本nodeJS需要构建的时候 1、第一种就是一个配置安装,然后进行选中配置 2、第二种就是插件:nvm-wrapper,我们还是选用NodeJS插件: (1)可以加载任意npmrc文件; (2&#x…

【DAY03 软考中级备考笔记】存储系统,总线系统,输入输出系统和可靠性

存储系统,总线系统,输入输出系统和可靠性 2月22日 – 天气:阴转晴 济南下大雪,居家办公两天。 1. 计算机存储器的分类 根据存储位置划分: 内存/主存:用来保存当前正在运行的程序所需要的数据&#xff0c…

远程连接 vscode 出错 “远程主机可能不符合 glibc 和 libstdc++ VS Code 服务器的先决条件”

原因: vscode 版本是 1.86,服务器上的 glibc 和 libstdc 版本不满足 要求(2.28 和 3.4.25)。 解决: 1、下载 1.85.2,解压直接运行 Code.exe。 2、回退 Remote-ssh 到 0.107.1。 参考: vscode 1.86版本远程ssh不兼容旧…

开源图表库Echarts 简介与基本使用

ECharts 是一个使用 JavaScript 实现的开源可视化图表库,由百度团队开发。它提供了丰富的图表类型,如折线图、柱状图、饼图、地图、雷达图等,并且可以轻松地与其他前端框架和库集成。ECharts 的设计目的是为了满足复杂数据的可视化需求&#…

CleanMyMac X2024破解版Mac系统优化和清理软件

CleanMyMac X2024全面介绍作为一名软件分析师,我深入研究了CleanMyMac X这款Mac系统优化和清理软件。CleanMyMac X以其丰富的功能、独特的特点、显著的优势以及广泛的适用场景,赢得了市场和用户的青睐。 CleanMyMac X2024绿色永久全新版下载如下: https…

Vulnhub靶机:DC8

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:DC8(10.0.2.61) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entry/dc-8,367/…

全球游戏市场回暖,Flat Ads推动海外获客增长

摘要:热门游戏品类分析,解读新兴市场与赛道 近日,中国音数协游戏工委发布了《2023年中国游戏出海研究报告》,据报告数据显示,2023年,全球游戏市场规模11773.79亿元,同比增长6.00%,呈现增长回暖趋势。 图源:伽马数据 1.SLG和RPG游戏热度居高不下,休闲游戏增长势头强劲 目前,S…

MacBook安装Ansible

MacBook安装Ansible Ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于…

《多线程并发控制:选择正确的锁策略》:互斥锁、自旋锁、读写锁、乐观锁、悲观锁

各类锁的概念回顾 互斥锁 互斥锁加锁失败后,线程会释放 CPU ,给其他线程;自旋锁加锁失败后,线程会忙等待,直到它拿到锁; 互斥锁是一种「独占锁」,比如当线程 A 加锁成功后,此时互…

ubuntu22.04@laptop OpenCV Get Started: 015_deep_learning_with_opencv_dnn_module

ubuntu22.04laptop OpenCV Get Started: 015_deep_learning_with_opencv_dnn_module 1. 源由2. 应用Demo2.1 C应用Demo2.2 Python应用Demo 3. 使用 OpenCV DNN 模块进行图像分类3.1 导入模块并加载类名文本文件3.2 从磁盘加载预训练 DenseNet121 模型3.3 读取图像并准备为模型输…

第2.1章 StarRocks表设计——概述

注:本篇文章阐述的是StarRocks-3.2版本的表设计相关内容。 建表是使用StarRocks非常重要的一环,规范化的表设计在某些场景下能使查询性能有数倍的提升。StarRocks的表设计涉及到的知识点主要包括数据表类型、数据分布(分区分桶及排序键&#…

【DDD】学习笔记-发布者—订阅者模式

在领域设计模型中引入了领域事件,并不意味着就采用了领域事件建模范式,此时的领域事件仅仅作为一种架构或设计模式而已,属于领域设计模型的设计要素。在领域设计建模阶段,如何选择和设计领域事件,存在不同的模式&#…

通信入门系列——锁相环、平方环、Costas环

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、锁相环 1、压控振荡…

探索分布式强一致性奥秘:Paxos共识算法的精妙之旅

提到分布式算法,就不得不提 Paxos 算法,在过去几十年里,它基本上是分布式共识的代名词,因为当前一批常用的共识算法都是基于它改进的。比如,Fast Paxos 算法、Cheap Paxos、Raft 算法等。 由莱斯利兰伯特(L…

AI Agent深入浅出——以ERNIE SDK和多工具智能编排为例

在过去一年里,通用大语言模型(LLM)的飞速发展引起了全球的关注。百度等科技巨头推出了各自的大模型,不断提高语言模型性能的上限。然而,业界对LLM所设定的目标不再局限于基本的问答功能,而是寻求利用大模型…

mysql入门到精通007-基础篇-事务

1、事务简介 事务是一组操作的集合,它是一个不可分割的事物单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 2、操作演示 开始张三和李四账户表中都是2000元&#xf…

发布订阅模式:观察者模式的一种变体

发布-订阅模型(Publish-Subscribe Model)的底层机制通常基于观察者模式。 发布-订阅模型是观察者模式的一种变体。 在观察者模式中,主题(或被观察者)维护了一组观察者,当主题的状态发生变化时&#xff0c…

uni-app 人脸识别 App端

文章目录 背景介绍开发前准备基础版获取视频流人脸识别版本这时候就可以开心的调试了背景介绍 本文介绍如何制作人脸打卡等类似功能的实现。 使用nvue+live-pusher来实现。在App端这是成本较低的可以控制样式的方案了 实现了两个版本 基础版本:视频流 => 抓拍照片 => 传…

信钰证券午评:沪指震荡微涨,券商、银行板块拉升,Sora概念再爆发

23日早盘,沪指盘中强势拉升,一度克复3000点大关,随后震荡回落;深成指、创业板指、科创50指数等均走低;北向资金大幅流出。 截至午间收盘,沪指微涨0.02%报2988.87点,深成指跌0.48%,创…