Oracle-函数与备份_oracle函数备份-程序员宅基地

技术标签: Oracle学习积累  函数与备份  Oracle  

Oracle-函数与备份

1.数学函数

函数 输入 输出
Abs(n) Select abs(-15) from dual; 15
Ceil(n) Select ceil(44.778) from dual; 45
Cos(n) Select cos(180) from dual; -.5984601
Floor(n) Select floor(100.2) from dual; 100
Power(m,n) Select power(4,2) from dual; 16
Mod(m,n) Select mod(10,3) from dual; 1
Round(m,n) Select round(100.256,2) from dual; 100.26
Trunc(m,n) Select trunc(100.256,2) from dual; 100.25
Sqrt(n) Select sqrt(4) from dual; 2
Sign(n) Select sign(-30) from dual; -1

2.字符函数

函数 输入 输出
Initcap(char) Select initcap(‘hello’) from dual; Hello
Lower(char) Select lower(‘FUN’) from dual; fun
Upper(char) Select upper(‘sun’) from dual; SUN
Length(char) Select Length(‘sun’) from dual; 3
Ltrim(char,set) Select ltrim( ‘xyzadams’,’xyz’) from dual; adams
Rtrim(char,set) Select rtrim(‘xyzadams’,’ams’) from dual; xyzad
Translate(char, from, to) Select translate(‘jack’,’j’ ,’b’) from dual; back
Replace(char, searchstring,[rep string]) Select replace(‘jack and jue’ ,’j’,’bl’) from dual; black and blue
Instr (char, m, n) Select instr (‘worldwide’,’d’) from dual; 5
Substr (char, m, n) Select substr(‘abcdefg’,3,2) from dual; cd
Concat (expr1, expr2) Select concat (‘Hello’,’ world’) from dual; Hello world
concat(s1,s2)
    连接字符串s1和s2,返回连接后的字符串
substr(s,m,[n])
    取子串函数,从s串中第m个字符起,取长度为n的一个子串,如果n省略,一直到s串的尾部
length(s)
    返回字符串s的长度
lower(s)
    将字符串s中的所有字母变为小写
upper(s)
    将字符串s中的所有字母变为大写
ltrim(s)
    移走左边的空格字符
rtrim(s)
    移走右边的空格字符
replace(s1,s2,[s3])
    字符串s1中查找s2字符串,并用s3字符串代替,如果s3省略,删除s1中所有的s2串
instr(s1,s2)
    s1串中查找s2串出现的位置,并作为函数返回值,如果未查到返回0

3.日期函数

名称 说明
sysdate 获取日期和时间
months_between 获取两个日期之间的月份间隔
add_months(date,n) 在指定日期上添加月份,返回新日期
next_day(date,n) 获取指定日期所在周的第n天的日期。周日是一个星期的第一天
last_day(date) 每月的最后一天
3.1日期格式元素
元素 用途
YYYY YY 年的表示:YYYY表示4位数字,YY表示2位数字
MM MONTH MON 月份表示:MM月份的数字表示,MONTH有为月的名称,MON为月名称的缩写,在中文环境下,MONTH,MON都是“X月” 的形式
DD DDD DD:当月的第几天;DDD:当年的第几天
D DY DAY 表示星期几:D-数字表示;DAY-英文表示,DY-缩写,在中文环境下,DAY和DY都是“星期X”形式
HH HH24 SS MI 时间表示:HH为小时、SS为秒、MI为分。HH24为24小时形式
AM PM 表示时间的上午和下午
-/,.;: 在结果中插入起分隔作用的标点符号

4.转换函数

名称 说明
to_char(date,m) 将日期转换为m所指定的格式
to_date(m,n) 将字符串m转换为日期类型,n用于描述字符串m的格式
to_number(m,n) 将字符串m转换为数值,n用于描述字符串m的格式
to_date(m,n)
    函数用于将字符串转为日期类型,第二个参数用来描述第一个参数的格式,以告诉sqlplus字符串m中哪部分是年份,哪部分是月份,哪部分是日期等等
select to_date('2013-05-14','yyyy-mm-dd') from dual;
select to_date('14-05-2013','dd-mm-yyyy') from dual;
select to_date('05-14-2013','mm-dd-yyyy') from dual;
to_number(m,n)
    函数用于将字符串m转换为数值,参数n用以说明m的格式

将字符串’$12,345.6’转换为数值

select to_number('$12,345.6','$99,999.9') from dual;

将‘¥12,345.6’转换为数值

select to_number('¥12,345.6','L99,999.99') from dual;
4.1数字格式元素
数字格式 规则
9 每一个9代表一个字符
0 先导符号0
. 在指定的位置插入小数点
, 在指定的位置插入逗号
L 匹配先导的¥符号
$ 匹配先导的$符号

5.其他高级查询

nvl(m,n)
    如果m列的值为null,则显示n

首先将部门表中某条记录的tel列的值更新为null;

update dept set tel=null where dname='市场部';
select d.did,d.dname,nvl(d.tel,'无') from dept d; 
伪列
    利用伪列ruwnum查询当前的纪录
select rownum,d.* from dept d where rownum between 1 and 3 
高级子查询
    成对比较,即在查询时,可以使用两个列同时和子查询的结果进行比较,子查询的结构也是两个列组成

查询和jacky在同一部门且性别相同的员工信息

select * from emp 
where (sex,did) in
(select sex,did from emp
where ename='jacky');
标量子查询
case
    用于标量子查询,例如查询员工信息,将m替换成“男”,f替换成“女”
select eid,ename,
    case sex
        when 'm' then '男'
        when 'f' then '女'
        else sex
    end
from emp;
exists
    用于存在性测试,通常在子查询中,需要将子、父查询的表相连接作为查询条件

查询存在员工的部门

select d.* from dept d where exists 
    (select e.* from emp e where e.did=d.did);

查询不存在员工的部门

select d.* from dept d where not exists 
    (select e.* from emp e where e.did=d.did);
with
    定义一个变量来表示一个语句,通过引用变量来引用子句,实现重用,提高效率

6.使用exp/imp备份与恢复数据

exp
    用于将数据表或用户导出,导出后可以将数据保存到磁盘文件中,以实现数据的备份。注意该命令是在控制台中运行,而非在sqlplus中运行。例如导出dept ,emp,history这三张表
  1. 在执行exp命令时,提示输入登录的用户名和密码,登录成功后提示设置提取数据的缓冲区大小,默认是4096字节。按回车后提示导出到磁盘的哪个文件中
  2. 准备将数据导出到f盘的tables.tab文件中,回车后提示是导出用户及其下的所有对象,还是只导出表,默认是导出用户。输入T表示导出表
  3. 提示除了导出表的结构以外,是否也导出表中的数据,默认是yes
  4. 提示是否压缩,默认是yes
  5. 提示输入要导出的表名称,在这里准备导出dept、emp和history表,所以输入表的名称后按回车
  6. 如果不需要再导出了,就直接按回车结束数据备份过程。之后在f盘下生成了一个tables.tab文件,该文件中包含了dept表、emp表和history表的结构定义及其所有数据
    这里写图片描述
    这里写图片描述
imp
  1. 登录数据库删除history,dept,emp三张表,(为了练习导入备份)
  2. cmd控制台下键入imp命令,提示并输入登录的用户名和密码后,输入刚才备份文件的路径及名称
  3. 按回车后提示输入数据提取缓冲区的大小,默认是30720字节
  4. 继续按回车后提示是否只列出导入文件的内容,而不将内容真正导入。当然是no
  5. 此时提示如果对象已经存在的话,就忽略创建错误。默认是no,不忽略。所以直接按回车
  6. 提示是否同时导入scott用户对这些表的访问权限,默认是yes。直接回车
  7. 此时提示是否导入表数据,默认是yes。所以直接回车
  8. 提示是否连tables.tab文件也一并导入,这个不需要,我们只需要其中的数据即可。默认是no
  9. 之后提示输入用户的名称,输入后提示是导入所有的表,还是有选择性的导入某些表。如果导入所有的表就直接回车,否则输入要导入的表名称。这里导入所有的表,所以直接回车
  10. 登录后,查看导入的表和数据是否完整
    这里写图片描述
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/XYSYCX/article/details/80160206

智能推荐

JAVA开发Web Service几种框架介绍-程序员宅基地

文章浏览阅读68次。郑重声明:此文为转载来的,出处已不知了,侵告删。  在讲Web Service开发服务时,需要介绍一个目前开发Web Service的几个框架,分别为Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,这是Java6发布所提供的对 Web Service服务的一种实现。)前面几项都为开源项目,而其中又以axis2与cxf所最为常用,Axis与XFir..._java开发使用的几种server的名称

C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)_怎么在devc++里面把c文件变成汇编语言-程序员宅基地

文章浏览阅读1.4k次。一、前言 C/C++的编译过程包含了四个步骤: 1. 预处理(Preprocessing) 2. 编译(Compilation) 3. 汇编(Assemble) 4..链接(Linking)二、预处理 预处理阶段主要处理一些预处理指令,比如文件包括、宏定义、条件编译。1.文件包括 文件包括就是将所有的#include..._怎么在devc++里面把c文件变成汇编语言

Pytorch深度学习实践第十二讲 RNN 课后1(LSTM)_pytorch深度学习实践12课后作业-程序员宅基地

文章浏览阅读837次,点赞3次,收藏9次。B站 刘二大人 传送门 循环神经网络(基础篇)课件链接:https://pan.baidu.com/s/1vZ27gKp8Pl-qICn_p2PaSw提取码:cxe4模型还是将输入“hello”训练输出为“ohlol”,用LSTM网络实现。按照计算图实现LSTM之后,又尝试了加入embedding的方法。加embedding的训练快,但是我的LSTM效果不如前面RNN的,不知道是我网络写的有问题还是怎么回事。LSTM的网络结构示意图和公式:根据我自己的理解写出来的LSTM模型,有不对的地方_pytorch深度学习实践12课后作业

android实训项目无线点餐系统服务器的设置,无线点餐系统的设计与实现--Android实训.doc...-程序员宅基地

文章浏览阅读208次。Android课程设计报告院 系: 计算机与信息工程学院班 级: 10级软件技术一班学 号:姓 名:PAGEPAGE 14目录TOC \o "1-3" \h \u 24017 一、系统架构 311293 二、功能分配 35248 2.1.浏览功能 326351 2.2.查询功能 314154 2.3.插入功能 328656 2.4.修改功能 41740 2.5.删除功能 41540 三、内..._android无线点餐系统

Python3 --- Scrapy安装_command "e:\python3.7.3\python.exe -u -c "import s-程序员宅基地

文章浏览阅读566次。安装方式一:如果使用的是PyCharm则File-->Settings-->Project Interpreter,选择绿色加号搜索Scrapy安装即可,如下图:这里需要注意Manage Repositories可以配置成: https://pypi.douban.com/simple/ http://mirrors.aliyun.com/pypi/simple/..._command "e:\python3.7.3\python.exe -u -c "import setuptools, tokenize;__file

cookie和session的区别(简单理解)_cookie和session区别-程序员宅基地

文章浏览阅读471次。由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个唯一标识。在服务端保..._cookie和session区别

随便推点

OwlCarousel使用-程序员宅基地

文章浏览阅读1.4w次,点赞6次,收藏19次。参考:http://www.jq22.com/jquery-info6010使用方法Owl Carousel 2是上一版Owl Carousel的升级版本。Owl Carousel 2可以让你创建漂亮的响应式旋转木马的jQuery插件,它支持移动触摸屏,功能十分强大。Owl的新特性有: 可以无限循环 项目可以居中显示 灵活的速度控制 多级别的paddin..._owlcarousel

【深度学习】使用caffeNet训练自己的数据集(caffe框架)-程序员宅基地

文章浏览阅读3.5k次。主要参考:官方网址:http://caffe.berkeleyvision.org/gathered/examples/imagenet.html数据集及第一部分参考网址:http://www.lxway.com/4010652262.htm主要步骤:1. 准备数据集2. 标记数据集3. 创建lmdb格式的数据4. 计算均值5. 设置网络及求解器6. 运行求解由于imagenet的数据集太大,博主..._caffenet

SpringBoot集成Quartz 2.3.1动态管理定时任务_springboot实现动态管理quartz-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏12次。我写了一个简单的Demo项目,有需要的文末可获取项目github地址,该项目我会一直保持更新。基于quartz2.3.1实现动态管理定时任务。使用swagger实现接口文档。前后端统一使用JSON格式交互。使用Hutool工具类直接连接数据库,避免Job任务中不能使用Autowired问题。swagger文档如下图:后续文章创建JobDetail(JobBuilder详解)创建CronTrigger(TriggerBuilder详解)_springboot实现动态管理quartz

C#控制利用模板文件通过BarTender控制斑马打印机打印_c# 直接调用斑马打印机打印固定模板-程序员宅基地

文章浏览阅读2k次。重点在后面:https://blog.csdn.net/z_344791576/article/details/46328443?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159546478119725219951536%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=15954647811972521995_c# 直接调用斑马打印机打印固定模板

matlab multiple animatedline,matlab画图详解-程序员宅基地

文章浏览阅读926次。一. 二维图形(Two dimensional plotting)1. 基本绘图函数(Basic plotting function):Plot,semilogx,semilogy, loglog,polar, plotyy(1). 单矢量绘图(single vectorplotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。例1:单矢量绘图y=[0 0.6 2...._animatedline 添加图例