专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

oracle的学习历程5——查询 oracle查询技巧

ins518 2024-10-22 14:54:00 技术文章 9 ℃ 0 评论

使用数据库和表的主要目的是存储数据,以便在需要时进行检索、统计或组织输出,

数据查询是数据库中进行的最为频繁的操作,应用程序从数据库中获取数据就是通过查询数据库获取的。数据查询也是应用程序向数据库中写入数据、修改数据、信息统计与分析的基础。

在oracle数据库中,通过SQL查询可以从表或视图忠迅速、方便地检索数据。SQL的SELECT语句可以实现数据的查询,其功能十分强大.

注意要连接到SCOTT才能直接使用emp表,具体可看

oracle数据库的学习历程2——连接SCOTT

查询平均工资

Select avg(sal) from emp;

//使用聚合函数avg(),以emp表中的所有属于列sal的数据聚合在一起.

如果检索的列还包含部门号deptno,则会提示:不是单组分组函数.

因为avg(sal)是聚合函数,会把sal列的所有数据聚合在一起,变成一行数据。

而部门号(deptno)并没有聚合在一起的,也就是说部门号(deptno)现在还有多行数据

显然一(avg(sal))对多(deptno)是不符合逻辑的

以部门号和工作分组,查询平均工资

select deptno,job,avg(sal) from emp
group by deptno,job;

//group by是分组的意思,就是把部门号(deptno)和工作(job)都相同的行聚合在一起

如果检索的列还包含sal则会提示不是GROUP BY 表达式,分组的列要用聚合函数表示,

//因为分组就相当把同样的数据聚合在一样,比如GROUP BY deptno,job;这把emp表按部门号进行分组

//部门号相同的行聚合在一起,统一归纳到同一个部门号中。而一个sal对应的是每个个体的工资,

//试想一个表中的数据第一列为部门号,第二列却是表示个人工资的sal

//很容易发现,以集体对个体,多对一的方式来查询列表是不符合逻辑的。

PS:oracle安装教程可点击下方"了解更多"获取。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表