oracle函数

Oracle索引(Index)介绍使用

时光怂恿深爱的人放手 提交于 2020-03-02 07:56:53
1.什么是引                                               索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引;索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。 2.使用索引的目的                                             当查询返回的记录数排序表<40%非排序表 <7%且 表的碎片较多(频繁增加、删除)时可以 加快查询速度减少I/O操作消除磁盘排序 3.索引的分类及结构                                             从物理上说,索引通常可以分为:分区和非分区索引、常规B树索引、位图(bitmap)索引、翻转(reverse)索引等。其中,B树索引属于最常见的索引,由于我们的这篇文章主要就是对B树索引所做的探讨,因此下面只要说到索引,都是指B树索引。 B树索引是一个典型的树结构,其包含的组件主要是: 1) 叶子节点(Leaf node):包含条目直接指向表里的数据行。 2) 分支节点(Branch node):包含的条目指向索引里其他的分支节点或者是叶子节点。 3) 根节点

oracle获取字符串长度函数length()和hengthb()

本秂侑毒 提交于 2020-03-01 13:10:20
lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 对于单字节字符,LENGTHB和LENGTH是一样的. 如可以用 length(‘string’)=lengthb(‘string’) 判断字符串是否含有中文。 注: 一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。 select lengthb('飘') from dual 可查询汉字在Oracle数据库里占多少字节 来源: oschina 链接: https://my.oschina.net/u/110435/blog/634627

oracle导入导出,自动备份

安稳与你 提交于 2020-02-29 21:52:06
一Oracle导入导出操作 删除用户: drop user userlms cascade exp help=y 导出数据(cmd中) exp lmsdata/Jxht1234@202.31.125.51/LMSDEV file=d:\DataBase\lmsdev_xzw_20110510.dmp full=y --lmsdata是表空间 exp lmsdata/Jxht1234@202.31.125.51/LMSDEV file=d:\DataBase\lmsdev_xzw_20110510.dmp owner=(lmsdata) 将.dmp文件变成为压缩文件 compress=y 删除: drop tablespace lmsdata including contents and datafiles; 当有多个sid(数据库时) 一定要指定sid. dos命令:set oracle_sid=abc 然后再创建表空间或用户名。 打开sqlplus 窗口并连接超级用户 ( sqlplus /nolog >>>> conn /as sysdba ) 1.----------创建表空间---------------- create tablespace lmsdata logging datafile 'E:\app\11111\oradata\orcl\lmsdata.dbf'

oracle to_char()函数--数字型到字符型

元气小坏坏 提交于 2020-02-29 17:29:50
数字型到字符型转换是可以自动转换的,当需要前置0时,需要用到to_char()函数 select to_char(8,'00') from dual ; --结果为' 08',注意有个代表正负号位置的空格 select trim(to_char(8,'00')) from dual ; --结果为'08',去掉前置空格 来源: https://www.cnblogs.com/imhuanxi/p/12383889.html

Oracle:如何将以逗号分隔的字符串转化成多行

不打扰是莪最后的温柔 提交于 2020-02-29 01:57:11
比如,有如下以逗号分隔的字符串: aaa,bbbb,cccc,dd,eeee 要将其转化为多列: aaa bbbb cccc dd eeee 解决方法: SELECT REGEXP_SUBSTR('aaa,bbbb,cccc,dd,eeee', '[^,]+', 1, rownum) from dual connect by level <= LENGTH(regexp_replace('aaa,bbbb,cccc,dd,eeee', '[^,]+', '')); 主要用到3个技巧: 1.求出字符串中分隔符出现的次数 常用方法: SELECT LENGTH(REGEXP_REPLACE(REPLACE('1234565', '5', '@'), '[^@]+', '')) COUNT FROM DUAL; SELECT LENGTHB(TRANSLATE('ABCDEFGEFGDBE','E'||'ABCDEFGEFGDBE','E')) FROM DUAL; SELECT LENGTHB('ABCDEFGEFGDBE')-LENGTHB(REPLACE('ABCDEFGEFGDBE','E','')) FROM DUAL; 2. 使用regexp_substr函数截取子字符串 function REGEXP_SUBSTR(String, pattern, position,

Oracle 课程一之Oracle体系结构

十年热恋 提交于 2020-02-28 07:16:34
课程目标 •理解ORACLE数据库体系架构—内存结构和进程 •理解SQL在数据库中的运作流程 •理解UNDO&REDO原理 •理解commit原理 1.Oracle数据库概述 •数据库:物理操作系统文件或磁盘的集合。 •实例:一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。 2. Oracle体系结构 任何硬件平台或操作系统下的ORACLE体系结构都是相同的, 包括如下四个方面: •物理结构 数据文件,日志文件,控制文件,参数文件。 •逻辑结构 表空间、段、区间、数据块。 •内存结 共享池,数据缓冲区,日志缓冲区,PGA。 •进程 用户进程、服务器进程、后台进程。 数据文件:select name from v$datafile; 控制文件:select name from v$controlfile; 日志文件:select member from v$logfile; 参数文件:$oracle_home/dbs/initSID.ora(从spfile转换,create pfile from spfile;) 归档日志文件:show parameter log_archive_dest 查看归档模式:archive log list SGA: show sga/show parameter sga/v$sgastat PGA:

Oracle存储过程

安稳与你 提交于 2020-02-27 21:57:00
http://blog.csdn.net/u013057786/article/details/17165623 Oracle存储过程 2013-12-06 13:11 807人阅读 评论 (0) 收藏 举报 oracle 一、 存储过程 1、定义 所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过 编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数 来调用并执行它,从而完成一个或一系列的数据库操作。 2、存储过程的创建 Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。 (1) 无参存储过程语法 Sql代码 create or replace procedure NoParPro as //声明 ; begin // 执行 ; exception//存储过程异常 ; end; (2) 带参存储过程实例 Sql代码 create or replace procedure queryempname(sfindno emp.empno%type) as sName emp.ename%type; sjob emp.job%type; begin .... exception .... end; (3) 带参数存储过程含赋值方式 Sql代码 create or

Oracle实战笔记(第六天)之PL/SQL基础

╄→гoц情女王★ 提交于 2020-02-27 12:28:27
一、PL/SQL介绍   1、概念    PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的 扩展 。在普通SQL语句的使用上 增加了编程语言的特点 ,所以PL/SQL可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE... For....等控制过程的SQL。   2、学习必要性 提高程序的运行性能 传统的使用程序操作数据库的方式需要获得connection,然后程序传到数据库后还需要进行编译才能执行,而且执行结果还需要回调,这些过程都需要花费时间。而PL/SQL编程可以直接进行过程编程,这就节省了数据连接、语句传送和编译的时间,同时编程结果可以被外部程序调用。 模块化的设计思想 很多复杂的过程都需要传送和执行大量的sql语句,比如分页的过程、实现订单的过程、转账的过程等等,这些过程就可以通过PL/SQL进行模块化整理进而方便管理。 减少网络传输量 提高安全性   PL/SQL的缺点在于移植性不好,如果项目不再使用Oracle来管理数据,那么需要重新编写语句。 二、开发工具   1、Oracle自带的命令行工具sql*plus    下面举一个运用PL/SQL语句的案列:编写一个存储过程,并执行。   简单说一下,

oracle基础学习

吃可爱长大的小学妹 提交于 2020-02-27 08:18:22
1.desc table_name 可以查询表的结构 2.怎么获取有哪些用户在使用数据库 select username from v$session; 3.如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ? select sys_context('userenv','ip_address') from dual; 如果是登陆本机数据库,只能返回127.0.0.1 4.如何给表、列加注释? SQL>comment on table 表 is '表注释'; 注释已创建 SQL>comment on column 表.列 is '列注释'; 注释已创建。 SQL> select * from user_tab_comments where comments is not null; 5.如何在ORACLE中取毫秒? select systimestamp from dual; 6.如何在字符串里加回车? 添加一个||chr(10) select 'Welcome to visit'||chr(10)||'www.CSDN.NET' from dual ; 7.怎样修改oracel数据库的默认日期? alter session set nls_date_format='yyyymmddhh24miss'; 8.怎么可以看到数据库有多少个tablespace? select

oracle获取上一个月或者下一个月或者多少个月

纵饮孤独 提交于 2020-02-25 11:48:08
当月 2020-2-25 add_months()函数 负数:当前月份减去多少个月份 正数:当前月份添加多少个月份 。 字符串型: select to_char(add_months(trunc(sysdate),-1),'yyyy-mm-dd') from dual; 输出:2020-01-25 date 型: select to_date(to_char(add_months(trunc(sysdate),-1),'yyyy-mm-dd'),'yyyy-mm-dd') from dual; 输出:25-01-20 来源: CSDN 作者: 一起致富 链接: https://blog.csdn.net/liangdingguo/article/details/104491210