oracle中sql查询
oracle中sql查询
- 一、查询
- 别名
- 拼接
- nvl替换null值
- distinct数据去重
- 修改列宽(控制sqlplus)
- 2.排序order by
- 3.查询条件where
- 3.函数
- 单行函数
- 聚合函数
- 转换函数
- 哑表dual
- 日期函数
- 4. 多表查询
- 笛卡尔积
- 等值连接
- 不等值连接
- 外连接(左外连接、右外连接、全连接)
- 自连接
- 查询结果集操作
- union 并集
- union all 结果集一起显示
- minus 第一个结果集出去第二个结果集相同的部分
- intersect 去交集
- 5.聚合函数group by
一、查询
别名
列名 别名 表名
select BOOKID id from BOOKS;
或者
列名 别名 表名
select BOOKID as id from BOOKS;
拼接
||'拼接字段'||
select BOOKNAME ||'spe_char'||BOOKNAME from BOOKS;
或者不加中间字符
||
select BOOKNAME||BOOKNAME from BOOKS;
nvl替换null值
nvl(选择字段,null替换的值)
select BOOKID,nvl(BOOKCOUNTS,6) from BOOKS;
例如上述,BOOKCOUNTS中的null值变为6
distinct数据去重
select distinct BOOKNAME,BOOKCOUNTS from BOOKS;
只能放在select关键词后面
修改列宽(控制sqlplus)
列名 格式化 a长度
column BOOKNAME format a15;
或
col BOOKNAME format a15;
查询:
select BOOKNAME from BOOKS;清楚格式的设置:
clear col; 或 clear column;
2.排序order by
select *
from BOOKS列名正序 列名倒叙
order by BOOKCOUNTS asc , BOOKID desc;
先通过第一个排序,如果有数值相同则通过第二个排序。
3.查询条件where
条件
select * from BOOKS where BOOKCOUNTS>2;
BETWEEN AND
select * from BOOKS where BOOKCOUNTS BETWEEN 4 AND 6;
in()
select * from BOOKS where BOOKID in(1,3,5);
like
% 0到多个字符 _ 通配一个符
select * from BOOKS where BOOKNAME like 'J%';\ 转义字符 需要escape '\'
select * from BOOKS where BOOKNAME like
'\\%' escape '\';
is null 或者 is not null 在字段后加
select * from BOOKS where BOOKNAME is not null;
and or 连接条件 ‘或’ ‘与’
3.函数
单行函数
① upper()英文大写
② LOWER(X)X转换成小写
③ LENGTH(X)返回X的长度
④ INITCAP(X) X首字母转换为大写
⑤ SUBSTR(X,start[,length]) ,返回X的字串,从start处开始,截取length个字符,缺省length,默认到结尾
⑥ REPLACE(X,old,new) ,在X中查找old,并替换成new
select upper(BOOKNAME) from BOOKS;
聚合函数
avg() 平均 COUNT(*)数值
select avg(BOOKCOUNTS) from BOOKS;
转换函数
TO_CHAR ,把一个数字或日期数据转换为字符
TO_NUMBER ,把字符转换为数字
TO_DATE ,把字符转换为日期
select to_number('100') from dual;
select to_char(sysdate,'yy-mm-dd hh:mi:ss') from dual;
哑表dual
select 1+1 from dual;
日期函数
SQL> alter session set nls_language='simplified chinese';
select sysdate from dual;
4. 多表查询
笛卡尔积
假设集合中 A={a,b} B={1,2},他们的笛卡尔积为:
{(a,1),(a,2),(b,1),(b,2)}
select * from BOOKS,T_USER;
等值连接
select * from BOOKS,T_USER where BOOKID=ID;
不等值连接
select * from BOOKS,T_USER where BOOKID>ID;
外连接(左外连接、右外连接、全连接)
左外连接
select BOOKCOUNTS,AGE from BOOKS left outer join T_USER
on BOOKID=ID;
将左边BOOKS表中null的书籍也显示了出来
可以简写成这样
select BOOKCOUNTS,AGE
from BOOKS,T_USER
where BOOKID=ID(+);
右外连接
select BOOKCOUNTS,AGE from BOOKS right outer join T_USER
on BOOKID=ID;
或
select BOOKCOUNTS,AGE from BOOKS,T_USER
where BOOKID(+)=ID;
我们想把s_dept表中的多出的一个数据st查询并显示出来,那么就在另一张表上面添加一个加号(+)
全连接
select BOOKCOUNTS,AGE from BOOKS full outer join T_USER
on BOOKID=ID;
自连接
select B1.BOOKID,B2.FUID BABABOOK
FROM BOOKS B1,BOOKS B2
WHERE B2.BOOKID=B1.BOOKID
查询结果集操作
union 并集
union all 结果集一起显示
minus 第一个结果集出去第二个结果集相同的部分
intersect 去交集
5.聚合函数group by
select 字段1,字段2
from 表
where 条件
group by 分组条件
having 分组筛选条件
order by 排序条件
select语句执行顺序:
1. from子句,组装来自表的数据,有可能是多张表 2. where子句,基于指定的条件对记录行进行筛选
3. group by子句,将数据划分为多个分组
4. 使用聚合函数对没个小组中的数据进行计算
5. having子句,进行条件筛选,这里可以使用聚合函数的计算结果
6. 计算所有的运算表达式,主要是select部分
7. order by子句,对结果集进行排序
聚合函数能够出现的位置:
- select后面
- having后面
- order by后面
oracle中sql查询相关推荐
- oracle中sql查询增加自增序列号
如果我们需要在oracle中查询一系列数据,但是需要对查询出来的数据有一个自增的序列号,方便后续的处理的话,我们可以利用rownum 比如有table A 我们可以这么写sql select a.*, ...
- Oracle中SQL查询字段值为空时,指定默认值
一.实现效果 实现设备字段有值显示[加工]否则显示[未加工] 二.Oracle中NVL 2.1.NVL函数功能介绍 NVL 是Oracle的函数,功能是实现空值的转换,如果fieldName为NULL ...
- oracle全角括号忽略,Oracle中SQL查询语句日文不区分全角/半角
dfd 1.ORACLE自带的函数可以转换标点符号: 2.fn_knachg函数为转换全半角函数 参数:pKna为要转换的字符串: pPara:1为半角 → 全角: 2为全角 → 半角. string ...
- oracle nvarchar2问题,oracle中nvarchar2查询结果显示总是少一位
oracle 中对查询出来的数据进行切割.截取等操作 oracle 中对查询出来的数据进行切割.截取等操作 最近遇到一个问题,需要把一个带有,的字符串拆分成多行.通过查询资料,这个操作需要使用以下2个 ...
- 查询oracle 表达小,oracle中sql语句小练习(使用连接查询)
假设A(m,n,p),B(m,n,p) --1.A表中有某一项m而B表中没有 使用左连接查询: select a.* from A a left join B b on a.m=b.m where b ...
- oracle12测试骤,Oracle中SQL语句解析的步骤
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.那么这两种解析有何不同之处呢?它们又分别是如何进行解析呢?Oracle内部解析的步骤又是如何进行的呢?下面 ...
- oracle分组聚合查询,Oracle中分组查询group by用法规则解析
本篇文章小编给大家分享一下Oracle中分组查询group by用法规则解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Oracle中group by ...
- Oracle中如何查询CLOB字段类型的内容
2019独角兽企业重金招聘Python工程师标准>>> Oracle中如何查询CLOB字段类型的内容 [sql] view plain copy select * from tabl ...
- 【DB笔试面试612】在Oracle中,查询转换包含哪些类型?
♣题目 部分 在Oracle中,查询转换包含哪些类型? ♣答案部分 在Oracle数据库中,用户发给Oracle让其执行的目标SQL和Oracle实际执行的SQL有可能是不同的,这是因为Oracle可 ...
最新文章
- GOOGLE域名存在漏洞,可以用来建立钓鱼站点(目前已临时被封闭)
- sed 正则表达式【MAC地址】GLPI转换华为交换机MAC格式
- 计算机精英协会考核题 —— 第三题:斐波那契数
- 检查Java测试中发生了什么
- ES6个人小手册,走过路过不要错过。。。。。
- 安装db2 提示不是有效的win32应用程序?
- 【C#】使用OWIN创建Web API
- 下划线小写字母转大写
- C语言dtoc函数,VFP数据库程序设计基础课后作业(二)参考答案(VFP函数表达式练习题--答案)...
- 用PS将照片背景变成白色
- 告诉你一个真实的Google
- studio无法重命名(can not rename root module)
- 三次埃尔米特插值一阶导数的求法
- B站季报图解:营收10.8亿同比增48% 用户增长超预期
- Python做接口测试生成测试报告失败
- WebDAV之葫芦儿·派盘 + CloudBeats
- 在Ubuntu中使用雷电3外接显卡(eGPU)进行深度学习
- vs2017 fatal error LNK1104: 无法打开文件“\.obj”
- 关于Visual Studio订阅(原MSDN订阅)中无法激活Office 365权益的解决方法(仅适用于MVP)
- mtp usb驱动 v4.9 最新版
热门文章
- 云开发谁是卧底线下小游戏发牌助手微信小程序源码-亲测可用
- 香蕉派 Banana pi BPI-R2 开源智能路由器 MTK 7623N 方案设计
- Learning to Rank基于pairwise的算法(一)——Ranking SVM、MHR、IRSVM
- 初探Python声音处理(Demo)
- ipv4和ipv6与int互转通用处理方式
- qt 飞扬青云_R语言学习——实例标识符
- 华为 2017 实习生招聘笔试题
- putty之pscp用法
- linux shell 中数组的定义和for循环遍历
- RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublas‘