oracle number17,2018-10-17 oracle 常用语法函数总结

2023-11-16

(1)Oracle正则匹配使用

PS:这条SQL可以通过正则匹对查询一下,表A的字段a是否有非数字的数据,有时候数据表的一些字段是varchar类型的,如果sql里用to_number的话,就肯定会报无效数字的错误

select * from 表A where not regexp_like(字段a,'^[[:digit:]]+$');

Oracle表数据回滚语句

【表数据恢复回N分钟之前】

alter table 表名 enable row movement;

flashback table 表名 to timestamp systimestamp - interval 'N' minute;

oracle同义词

创建同义词:

create public synonym tablename for user.tablename;

synonyms

NVL函数和NVL2函数

NVL函数的格式如下:NVL(expr1,expr2)

含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

NVL2函数的格式如下:NVL2(expr1,expr2, expr3)

含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。SQL> select ename,NVL2(comm,-1,1) from emp;

NULLIF(exp1,expr2)函数的作用是如果exp1和exp2相等则返回空(NULL),否则返回第一个值。

Coalese函数的作用是的NVL的函数有点相似,其优势是有更多的选项。

格式如下:

Coalesce(expr1, expr2, expr3…… exprn)

表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。

例子,对于字段b查询出来为空的情况,就返回’’,否就返回vm_concat(a||’(’||b||’)’),具体可以参考博客: https://blog.csdn.net/u014427391/article/details/84981114

select to_char(nvl2(b,vm_concat(a||'('||b||')'), '') from A group by id

递归查询

start with 子句:遍历起始条件,有个小技巧,如果要查父结点,这里可以用子结点的列,反之亦然。

connect by 子句:连接条件。关键词prior,prior跟父节点列parentid放在一起,就是往父结点方向遍历;prior跟子结点列subid放在一起,则往叶子结点方向遍历

ps:例子,递归查询一般用于递归查单位,地区信息等等什么的。start with后可以加一些开始条件,没有就写1=1或者不写也可以的。id和parent_id根据业务需要替换。

select * from 表格1 start with 1=1 connect by id = prior parent_id

条件sql

case when then else end 可以理解为流程控制语句或条件控制语句。可以实现资料获取的时候,可以更多的条件和自定义逻辑

case when (select count(1) from t_unit_info

where para_unit_code = unitInfo.unit_code) > 0

then 'closed' else 'open' end as state

select 1 from mytable;与select anycol(目的表集合中的任意一行) from mytable;与select * from mytable 作用上来说是没有差别的,都是查看是否有记录,一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表

oracle数据库还原

将TESTDB.bmp放置在dpdump目录,如下路径:

E:\app\Administrator\admin\orcl\dpdump

创建用户

create user testdb65 identified by “testdb65”

default tablespace users temporary tablespace temp;

用户授权

grant connect,dba to testdb65;

创建表空间

CREATE TABLESPACE HR_DATA01 DATAFILE ‘D:\nhsj\hr_data01.dbf’ SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; 【创建表空间】

导入 bgyhr2是来源库

impdp testdb65/testdb65@orcl schema=testdb65 dumpfile=TESTDB65.dmp

导出 scott 是要导出的库

expdp lfwtrain/a@orcl schema=当前用户 dumpfile=expdptest.dmp

重导dmp文件

Oracle保存数据时一般以DMP文件的形式进行保存

本博客记录,DMP文件的导入 先打开CMD

sqlplus /nolog

以sysdba连接

conn /as sysdba

这里创建表空间,因为表空间进行存储的话,可以提供系统性能

CREATE TABLESPACE DATA01 DATAFILE 'D:\tablespace\data01.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;

创建用户

CREATE USER job IDENTIFIED BY job DEFAULT TABLESPACE DATA01 TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON DATA01

授权

grant connect,dba to job;

复制dmp文件到oracle安装目录里的app\admin\orce\dpdump里,然后用以下代码导入dmp文件,要顺便导入logfile的话,加上logfile=文件名

impdp job/job@orcl schemas=job dumpfile=EXPDP160810GZ.dmp

vm_concat函数

函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行

decode函数

含义解释:

decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

该函数的含义如下:

IF 条件=值1 THEN

RETURN(翻译值1)

ELSIF 条件=值2 THEN

RETURN(翻译值2)

ELSIF 条件=值n THEN

RETURN(翻译值n)

ELSE

RETURN(缺省值)

END IF

例子:下面的sql就可以加在where后面,sql意思就是t.project_Name为空的情况#{projectName}=#{projectName},也即1=1,就是不做任何操作;不为空的情况,t.project_Name=#{projectName}

decode(t.project_Name,null,#{projectName},t.project_Name) = #{projectName}

-oracle开窗函数

分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。

开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化.

上面是开窗函数over(…)的简单介绍。

oracle开窗函数使用的话一般是和order、partition by、row_number()、rank()、dense_rank()几个函数一起使用

over函数和row_number一起使用:

开窗函数和row_number函数一起使用的话,就是返回一行,不过这里其实不适合用来统计,因为统计成绩的话,可以存在分数一样的两条数据,而row_number只返回一条数据。

select * from ( select stuName,row_number()over(partition by classId order by score desc) rnfrom t_score ) where rn=1;

over函数和rank一起使用:

rank函数功能也是排序,这里的话,假如有分数一样的两条数据的情况,是会返回两条的,但是假如第二名,就是从3开始计算了

select stuName,rank()over(partition by classId order by score desc) mm from t_score

over函数和dense_rank一起使用:

dense_rank函数是rank函数的补充,假如有分数一样的两条数据,是可以按照正常排序,第二名的情况,还是显示2

select stuName,dense_rank()over(partition by classId order by score desc) mm from t_score

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle number17,2018-10-17 oracle 常用语法函数总结 的相关文章

随机推荐

  • AcWing基础课题集汇总

    本篇博文是笔者归纳汇总的AcWing基础课题集 方便读者后期复盘巩固 PS 本篇文章只给出完整的算法实现 并没有讲解具体的算法思路 如果想看算法思路 可以阅读笔者往期写过的文章 或许会有 也可以移步AcWing官网看详情 本篇文章的特点 每
  • Qt应用开发(基础篇)——时间类 QDateTime、QDate、QTime

    一 前言 时间类QDateTime QDate QTime QTimeZone保存了Qt的时间 日期 时区信息 常用的时间类部件都会用到这些数据结构 常用概念有年 月 日 时 分 秒 毫秒和时区 时间和时区就关系到时间戳和UTC的概念 UT
  • Debian(Linux)系统Samba安装和配置

    samba安装 root用户下直接使用以下命令 apt get install samba 若是普通用户下使用以下命令 sudo apt get install samba samba配置 samba的配置文件在 etc samba 路径下
  • 1-2动态图

    文章目录 动态图 一 环境配置 二 基本用法 三 使用python的控制流 四 构建更加灵活的网络 控制流 五 构建更加灵活的网络 共享权重 The End 动态图 在这种模式下 每次执行一个运算 可以立即得到结果 而不是事先定义好网络结构
  • 基本数据类型的包装类

    本人之所以把包装类作为单独一篇博文来写 主要是因为这里知识比较冗杂 为了帮助大家比较好的理解深层次的东西而不是做一个搬砖的这里我有必要单开一篇博文来了解下 首先我们来分析一下基本数据类型和包装类 包装类是对象 拥有方法和字段 对象的调用都是
  • Python异常处理总结

    Python异常处理总结 这篇文章主要介绍了Python异常处理总结 需要的朋友可以参考下 本文较为详细的罗列了Python常见的异常处理 供大家参考 具体如下 1 抛出异常和自定义异常 Python用异常对象 exception obje
  • 《Java基础——制表符》

    Java基础 制表符 规则 若前面输出内容不为8的倍数 则通过空格补全 不足八位 补全八位 例一 不足八位 System out println 123456 t 空格补位 编译结果 123456 空格补位 例二 大于等于八位 System
  • 对高精度PWM(HRPWM)的理解

    传统PWM的精度 假定CPU工作频率为100MHz PWM模块的计数频率也一样 则计数周期为10ns 假设PWM的开关频率为1MHz 使用向上计数模式 那么 计数周期PRD等于100 此时 比较值只能在0 100里面选 占空比的精度只有1
  • mysql语法之update

    Update 语句 1 作用 Update 语句用于修改表中的数据 语法 UPDATE 表名称 SET 列名称 新值 WHERE 列名称 某值 1 建表语句 create table table1 idd varchar 10 val va
  • Python自学第十一天——Bug

    作为新手自学Python的第十一天 技术低微 希望可以通过这种方式督促自己学习 个人学习环境 python3 9 PyCharm 2021 3 2 Community Edition 本文仅做Bug基本知识梳理和简单解决方法简述 具体Bug
  • 解释二叉树深度和高度

    今天小伙伴在群里问到 面试官问这个问题 我第一印象 这不是一回事吗 去查了查 竟然还真有区别 所以在此记录一下 高度和深度是相反的表示 深度是从上到下数的 而高度是从下往上数 我们先来看看高度和深度的定义 某节点的深度是指从根节点到该节点的
  • vmware中虚拟机网络使用NAT模式,使外部主机可以连接

    将虚拟机网络类型配置成 注意 如果不知道什么原因无法访问网络 关闭所有虚拟机 点击还原默认设置 重置网络 vmware点击 编辑 gt 虚拟网络编辑器 点击NAT设置可以查看NAT网络的网关 点击DHCP设置 应该不需要 因为我用的是静态I
  • 【独家源码】ssm科普网站14o1y计算机毕业设计问题的解决方案与方法

    本项目包含程序 源码 数据库 LW 调试部署环境 文末可获取一份本项目的java源码和数据库参考 系统的选题背景和意义 选题背景 科学普及是推动科学知识传播和科学素养提升的重要途径 随着互联网的快速发展 科普网站成为了人们获取科学知识和信息
  • Mat使用笔记

    一 基本操作 1 1 创建 cv Mat初识和它的六种创建方法 cv Mat matDes nHEIGHT nWID CV 8UC1 cv Scalar 0 创建 row 高 col 宽 cv Mat matDes cv Mat zeros
  • 【pytorch优化器】Adam优化算法详解

    转载自 https blog csdn net weixin 39228381 article details 108548413 仅作学习记录 文章目录 一 说明 二 Adam原理 1 梯度滑动平均 2 偏差纠正 3 Adam计算过程 三
  • 【OpenGL进阶】01.使用Shader绘制三角形

    在前一个阶段的文章中 主要是使用OpenGL的固定管线来实现了一系列的操作 内容并不复杂 十分好理解 接下来的进阶系列中 我们将使用shader代码来实现一些效果 首先通过shader来实现一个三角形的绘制 首先来看main cs 创建窗口
  • 老域名扫描软件-老域名采集挖掘工具

    老域名挖掘软件 老域名挖掘软件是一种可以帮助用户发现已过期或未续费的老域名的工具 以下是该软件主要特点 大数据分析 该软件通过大数据分析技术 深度挖掘互联网上的闲置老域名 发现可用的未续费或已过期域名 从而为用户提供更多的域名选择 全网搜索
  • Android studio 3.2 升级详解及Gradle配置

    一直在使用Android studio 2 3 1版本 因为工作开发使用的都是这个版本 所以在经历了N次提示更新后 依旧还是没有升级 直到今天终于忍不住了 因为Android Studio 3 2版本在这个月发布了 增加了很多新特性 具体参
  • halcon 测量

    dev set draw margin dev set line width 3 创建包含了检测的边缘ROI区域 注意所画的矩形区域的长轴要与检测边界垂直 Row 599 5 Column 1073 5 Phi rad 87 0643 Le
  • oracle number17,2018-10-17 oracle 常用语法函数总结

    1 Oracle正则匹配使用 PS 这条SQL可以通过正则匹对查询一下 表A的字段a是否有非数字的数据 有时候数据表的一些字段是varchar类型的 如果sql里用to number的话 就肯定会报无效数字的错误 select from 表