Oracle查询

Posted LiGengMing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle查询相关的知识,希望对你有一定的参考价值。

函数:

1、基本函数
  INICAP:把首字母转换为大写     
SELECT INICAP(NAME) FROM DUAL   CONCAT:连接字符串     SELECT CONCAT(NAME, AGE) FROM DAUL   ROUND:四舍五入提成整数     SELECT ROUND(WEIGHT) FROM DUAL
2、特有函数DECODE
  DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式   DECODE(QTY, 01, QTY)   如果QTY等于0就返回1,如果不等于0就返回QTY
3、统计函数
  SUM:计算字段的总和   
AVG:计算字段的平均值   MIN:查找字段最小值   MAX:查找字段最大值   COUNT:计算字段中的值的数目   DISTINCT:计算行中的不重复值   NVL(字段,0):如果查询字段为NULL则返回0分组
4、统计函数
  GROUP BY:分组统计查询     SELECT COLUMN,FUNCTION(COLUMN) FROM TABLE GROUP BY COLUMN   HAVING:只能应用在GROUP BY后面   SELECT JOB,SUM(SAL) FROM DUAL GROUP BY JOB HAVING SUM(SAL) > 1000
5、DUAL表
  DUAL表示一个1行1列的表,不用向DUAL表中执行INSERT、DELETE、TRUNCATE
6、ROWNUM伪列
  Oracle没有类似SQL Service中的TOP关键字来获取表中的前几条记录,但是可以使用ROWNUM伪列
    SELECT ROWNUM,NAME,JOB FROM DUAL WHERE ROWNUM<=10 ROWNUM和ROWID最大的不同在于ROWID是物理存在的,ROWNUM是动态的,先查到结果集再加上去的一个列,因此必须先有结果集ROWID伪列ROWID是一种数据类型,
它使用基于64位编码的18个字符来唯一标识一条记录的物理位置的一个ID,有点类似于主键,不过与主键的本质区别是ROWID一般情况下是按照递增的顺序排列 7、ROWID可以查询,但是不是存储在表中,因此不支持插入、更新、删除   ROWID通过ROWIDTOCHAR转换为字符串进行显示
  SELECT ROWIDTOCHAR(ROWID) FROM DAUL

多表连接:

1、Oracle特有的连接查询
SELECT TB1,TB2 FROM TB1,TB2 WHERE TB1.COLUMN=TB2.COLUMN 在一个表中指定外键,在另外一个表中指定与其关联的主键
2、内连接Oracle写法:
SELECT TB1,TB2 FROM TB1,TB2 WHERE TB1.COLUMN=TB2.COLUMN 标准写法: SELECT TB1,TB2 FROM TB1 INNER JOIN TB2 ON TB1.COLUMN=TB2.COLUMN
3、外连接
左连接(Oracle写法):  
SELECT TB1.COLUMN,TB2.COLUMN FROM TB1,TB2 WHERE TB1.COLUMN=TB2.COLUMN(+) 右连接 (Oracle写法):     SELECT TB1.COLUMN,TB2.COLUMN FROM TB1,TB2 WHERE TB1.COLUMN(+)=TB2.COLUMN
4、交叉连接
交叉连接是指用A表的记录与B表中的记录行数相乘得到的笛卡尔积,例如A表有15条记录,B表有6条记录,那么查找出来的就是15*6=90条记录 Oracle写法:   SELECT TB1.COLUMN TB2.COLUMN FROM TB1,TB2 标准写法:    SELECT TB1.COLUMN TB2.COLUMN FROM TB1 CROSS JOIN TB2
5、自然连接
两张表中有相同名字和数据类型的列,那么可以使用自然连接来自动匹配数据类型和列名 自然连接使用NATURAL
JOIN    SELECT TB1.COLUMN TB2.COLUMN FROM TB1 NATURAL JOIN TB2

 

以上是关于Oracle查询的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Toad for Oracle 中使用自定义代码片段?

Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段

你如何在 python 中处理 graphql 查询和片段?

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

Microsoft SQL Server 代码片段收集

片段视图返回后执行的 Firebase 查询