IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Oracle 查询--从简单到复杂 -> 正文阅读

[大数据]Oracle 查询--从简单到复杂

Oracle 查询–从简单到复杂

查询某表所有数据

select * from tablename;

查询某表的某些数据

select colname1,col2…… from tablename;

查询时使用like关键字

like关键字是模糊查询

_—下划线表示任意字符

%—百分号表示任意位数的任意字符


select * from tablename like ‘_A%’; 查询第二字母是A的信息


查询integer类型数据时加上一个固定值

select colname+num [as newname] from tablename;

查询结果去除重复行

select distinct colname from tablename;

查询时带where条件

select */colname from tablename where > < = != and or;

查询空和非空是=NULL和!=NULL

查询时使用关键字as

在列名后加as可以更换显示的名字

查询时使用group by语句

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。

select 类别,聚合函数 from tablename group by 类别;

当查询多个字段,且使用了聚合函数时需要用group by,条件关键字要用having,且条件语句在最后。

查询时使用max(),min()函数–最大和最小

分别是找到最大值和最小值

select min(colnam) as min_NUM,max(colname) as max_NUM from tablename [where];

查询时使用sum()函数–累加

将此列或某条件后临时表的某列的值的和

select sum(colname) as sum_NUM from tablename [where] [group by colname];

查询时使用count()函数–统计行个数

select count(colname) as newname from tablename [where] [group by colname];

查询时使用pivot关键字–行转列

pivot关键字行转列

例如,表a有三个字段,学号、学科、成绩

如果先要显示成学号、每个学科、成绩(高中成绩单)形式就需要把字段二转为行

select * from tablename pivot(colname1 for colname2 in(‘字段2的子集1,字段2的子集2’));

查询时使用avg()函数–平均

select avg(colname) as newname from tablename [where] [group by colname];

*多个聚合函数、group by和having的使用

表a有字段 学号、选修学科、考试成绩

求选修课程超过2门课的学生的学号、平均成绩,选修的门数。

select 学号,count(学科) as xkms,avg(成绩) as pjcj from a group by 学号 having count(学科)>2;

查询的目的是看学生的情况,而学号和每一个学生是一一对应的,所以应当以学号为类别。

查询的结果升asc 降desc 序

select * from tablename order by [字段1 asc/desc],[字段2 asc/desc];

使用order by语句,可以加入多个升降序按先后顺序

order by:根据指定的列对结果集进行排序,默认升序

*多个聚合函数、group by语句、having和order by语句的联合使用

表a有字段 学号、选修学科、考试成绩

求选修课程超过2门课的学生的学号、平均成绩和选课门数,并按平均成绩降序排列

select 学号,avg(成绩) as pjcj, count(学科) as xkms from a group by 学号 having count(学科) >2 order by pjcj desc;

多表联合查询–左连接 left join

select a.x,b.xx from a left join b on a.x=b.x;

表为主,按照on条件从右表匹配数据,若右表没有数据右表的特有字段则以NULL替代

多表联合查询–右连接 right join

select a.x,b.xx from a right join b on a.x=b.x;

表为主,按照on条件从右表匹配数据,若右表没有数据左表的特有字段则以NULL替代

多表联合查询–完全外连接 full join

select a.x,b.xx from a full join b on a.x=b.x;

以两个表为主,按照on条件在两个表匹配数据,匹配不到数据不会被删除,缺失字段设为NULL。

多表联合查询–内连接 inner join

select a.x,b.xx from a inner join b on a.x=b.x;

内连接只返回匹配到数据行,有缺失直接忽略。

多表联合查询–交叉连接 cross join

select a.x,b.xx from a cross join b;

可以不加条件,但返回的行数是a*b。

*多表联合查询、聚合函数、group by语句、order by语句

表a有字段 学号、选修学科、考试成绩

表b有学号、系、姓名

求某系选修课程超过2门课的学生的学号、姓名、平均成绩, 并按平均成绩从高到低排序

select S.Sno,S.Sname,avg(E.Grade) as avg_grade from a E inner b S on S.Sno=E.Sno and S.Sdept=’’ group by S.Sno having count(*)>2 order by avg_grade desc;

三表联合查询

select a.x,b.xx,c.xxxx from (a [inner join] b on a.x=b.x) [inner join] c on b.xx=c.xx;

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 16:00:53  更:2021-12-14 16:02:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:28:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码