【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


目录
相关文章
|
20天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
55 11
|
29天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
90 11
|
1月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
1月前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
2月前
|
SQL 关系型数据库 MySQL
体验使用DAS实现数据库SQL优化,完成任务可得羊羔绒加厚坐垫!
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。完成任务,即可领取羊羔绒加厚坐垫,限量500个,先到先得。
186 12
|
2月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
2月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
2月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
2月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
41 1

推荐镜像

更多