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

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

image.gif

前言

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

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

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


☀️一、研究目的

  • 掌握在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
  1. 然后按提示依次输入如下:
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


目录
相关文章
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
1072 93
|
SQL 数据管理 关系型数据库
SQL 语言入门:开启数据管理的大门
在数字化时代,数据已成为核心资产,而 SQL 作为操作关系型数据库的标准语言,是数据从业者、程序员及办公人员必备技能。本文从基础概念讲起,详解 SQL 的核心用法,包括数据查询、插入、修改、删除及表结构操作,并通过实例演示帮助读者快速上手。掌握 SQL,不仅能提升数据处理效率,更为深入理解数据管理打下坚实基础。
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
591 0
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
980 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
567 6
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
810 8
|
SQL Oracle 关系型数据库
SQL语言小结
针对数据库、表单和数据行的增删改,没有涉及到sql真正的用途也就是查询,sql提供的查询语句的关键字占 sql 语言的一半之多,查询语句还是得单拿出来讲,不然太多了。 因为没有涉及到查询,所以sql的新增和修改都是很笼统的做法,drop、alter drop、delete这些很容易,逻辑性也不强,再次说明sql的真正精髓在于查询,不然为啥叫做结构化查询语言
570 0
|
SQL 关系型数据库 MySQL
(SQL)SQL语言中的查询语句整理
查询语句在sql中占了挺大一部分篇幅,因为在数据库中使用查询语句的次数远多于更新与删除命令。而查询语句比起其他语句要更加的复杂,可因为sql是数据库不可或缺的一部分,所以即使不懂,也必须得弄懂,以上。
611 0
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
738 158
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。

推荐镜像

更多