![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oracle
文章平均质量分 53
itcast123
这个作者很懒,什么都没留下…
展开
-
oracle中的exists和not exists和in用法详解
有两个简单例子,以说明 “exists”和“in”的效率问题 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T1T2 时,2) 的查询效率高。 exists 用法: 请注意 1)句中的有颜色字体的部分 ,理解其含义; 其中 ...原创 2010-07-09 15:48:26 · 97 阅读 · 0 评论 -
oracle创建同义词以及赋予权限
oracle 有 a用户;b用户;b用户有表b1,现在要通过a用户操作b用户的表b1 1.a1为创建同义词的名称;create or replace synonym a1 for b.b1;2.通过查询a1同义词,读取b用户的b1表 select * from a13. 通过以下语句给本同义词赋予权限Java代码 ...原创 2010-10-11 23:24:10 · 683 阅读 · 0 评论 -
什么是ETL
ETL即数据抽取(Extract)、转换(Transform)、装载(Load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程。数据仓库系统中有可能存在着大量的噪声数据,引起的主要原因有:滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化等。即便是一个设计和规划良好的数据库系统,如果其中存在着大量的噪声...原创 2010-10-17 17:34:29 · 93 阅读 · 0 评论 -
Oracle中connect by...start with...的使用
一、语法 大致写法:select * from some_table [where 条件1] connect by [条件2] start with [条件3]; 其中 connect by 与 start with 语句摆放的先后顺序不影响查询的结果,[where 条件1]可以不需要。 [where 条件1]、[条件2]、[条件3]各自作用的范围都不相同: [where 条件1]是在根据“con...原创 2010-10-26 22:03:21 · 146 阅读 · 0 评论 -
将mysql非分区表转换为分区表
查看表的分布状况mysql> select count(*) from justin;+----------+| count(*) |+----------+| 5845246 |+----------+1 row in set (0.00 sec)mysql> select month(create_time),count(*) from justin gro...原创 2011-09-22 23:54:18 · 126 阅读 · 0 评论 -
本地索引和全局索引区别
表可以按range,hash,list分区,表分区后,其上的索引和普通表上的索引有所不同,oracle对于分区表上的索引分为2类,即局部索引和全局索引,下面分别对这2种索引的特点和局限性做个总结。 局部索引local index 1. 局部索引一定是分区索引,分区键等同于表的分区键,分区数等同于表的分区说,一句话,局部索引的分区机制和表的分区机制一样。2. ...原创 2011-09-24 12:36:57 · 597 阅读 · 0 评论 -
oracle10g中的wm_concat
wmsys.wm_concat这个函数,它的作用是以','链接字符。例子如下:SQL> create table idtable (id number,name varchar2(30));Table createdSQL> insert into idtable values(10,'ab');1 row insertedSQL> insert in...原创 2010-11-13 14:02:26 · 252 阅读 · 0 评论 -
ORACLE 百万行数据查询优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id fro...原创 2010-11-13 14:15:06 · 107 阅读 · 0 评论 -
CONNECT BY LEVEL 实现12月统计数据
create table test(j varchar2(10),k varchar2(10),l date);insert into test values('oracle','xun',to_date('2010-11','YYYY-MM'));insert into test values('java','luxun',to_date('2010-11','YYYY-MM'));insert...原创 2010-11-29 22:44:04 · 157 阅读 · 0 评论 -
ORACLE日期转换
ORACLE中日期转换SELECT TO_CHAR(SYSDATE, 'VSTR ') FROM DUAL VSTR日期格式参数含义说明 DAY 一周中的星期几 DD 月中的第几天 DDD 年中的第几天 DY 天的简写名 IW ISO标准的年中的第几周 IYYY ISO标准的四位年份 ...原创 2012-08-18 16:49:58 · 84 阅读 · 0 评论 -
Mysql coalesce() 函数认识和用法
coalesce()解释:返回参数中的第一个非空表达式(从左向右); 鉴于在mysql中没有nvl()函数, 我们用coalesce()来代替。coalesce相比nvl优点是,coalesce中参数可以有多个,而nvl()中参数就只有两个。当然,在oracle中也可以使用 case when....then....else......end(比较强悍,case when 后可以跟表达式...原创 2012-09-02 22:22:05 · 115 阅读 · 0 评论 -
Oracle正则表达式的用法
l 方括号表达示方括号表达式描述[[:alnum:]]字母和数字混合的字符[[:alpha:]]字母字符[[:cntrl:]]控制字符[[:digit:]]数字字符[[:graph:]]图像字符[[:lower:]]小写字母字符[[:print:]]打印字符[[:punct:]]标点符号字符[[:space:...原创 2012-09-05 22:26:37 · 107 阅读 · 0 评论 -
Oracle正则表达式的用法
l 方括号表达示方括号表达式描述[[:alnum:]]字母和数字混合的字符[[:alpha:]]字母字符[[:cntrl:]]控制字符[[:digit:]]数字字符[[:graph:]]图像字符[[:lower:]]小写字母字符[[:print:]]打印字符[[:punct:]]标点符号字符[[:space:...原创 2012-09-05 22:26:49 · 66 阅读 · 0 评论 -
ORACLE临时表
[code="sql"]CREATE GLOBAL TEMPORARY TABLE TABLENAME ( COL1 VARCHAR2(10), COL2 NUMBER) ON COMMIT PRESERVE(DELETE) ROWS ;--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)[/code]...原创 2012-09-08 09:18:39 · 76 阅读 · 0 评论 -
TRANSLATE函数
TRANSLATE返回将from_string中的每个字符替换为to_string中的相应字符以后的string。TRANSLATE是REPLACE所提供的功能的一个超集。如果from_string比to_string长,那么在from_string中而不在to_string中的额外字符将从char中被删除,因为它们没有相应的替换字符。to_string不能为空。Oracle将空字符串解释...原创 2012-09-08 23:53:24 · 314 阅读 · 0 评论 -
视图查询慢
我遇到过,单独查询视图很快,但是两个SQL语句查询同一个视图后再联合查询就慢了当时我删除了基表的统计信息,然后就OK了analyze table 基表 delete statistics;analyze table 基表 compute statistics ;...原创 2012-10-15 23:41:34 · 757 阅读 · 0 评论 -
oracle 常用SQL
分页习惯用这样的SQL语句:select * from(select t.*,rownum row_num from mytable t order by t.id) bwhere b.row_num between 1 and 10结果发现由于该语句会先生成rownum 后执行order by 子句,因而排序结果根本不对,后来在GOOGLE上搜到一篇文章,原来多套一层sel...原创 2010-10-10 22:03:50 · 55 阅读 · 0 评论 -
oracle中的sql%found sql%notfound和sql%rowcount
当执行一条DML语句后,DML语句的结果保存在四个游标属性中,这些属性用于控制程序流程或者了解程序的状态。当运行DML语句时,PL/SQL打开一个内建游标并处理结果,游标是维护查询结果的内存中的一个区域,游标在运行DML语句时打开,完成后关闭。隐式游标只使用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性.SQL%FOUND,SQL%NOTFOUND是布尔值,SQL%...原创 2011-01-05 22:15:29 · 65 阅读 · 0 评论 -
SQLCODE和SQLERRM
Oracle内置函数SQLCODE和SQLERRM是特别用在OTHERS处理器中,分别用来返回Oracle的错误代码和错误消息。 OTHERS处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的Oracle异常,所以在程序的最外层使用一个OTHERS处理器的话,将可以确保所有的错误都会被检测到。 在一个内在的异常中,SQLCODE返回...原创 2011-01-05 22:09:46 · 126 阅读 · 0 评论 -
数据库的优化,包括:oracle,mysql.
数据库设计:良好的数据库设计是优化代码的条件,是数据库优化的标准,设计比优化更重要. 主要分为四个部分: #1#:数据库设计过程 : 第一步:要分析用户的应用需求. 第二步:根据用户需求,写出数据字典:它是关于数据库中数据的描述,即元数据,不是元数据本身. 第三步:对用户的需求进行综合,归纳与抽象,形成一个独立于具体DB...原创 2010-07-25 18:37:10 · 65 阅读 · 0 评论 -
Oracle 存储过程 语法
oracle存储过程语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将se...原创 2010-07-26 11:00:14 · 76 阅读 · 0 评论 -
数据库设计三大范式应用实例剖析(1)
引言数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。设计范式是不是很难懂呢?非也,大学教材上给我们一堆数学公式我们当然看不懂,也记不住。所以我们很多人就根本不按照范式来设计数...原创 2010-07-27 23:26:12 · 79 阅读 · 0 评论 -
数据库设计三大范式应用实例剖析(2)
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系:关键字段 → 非关键字段x → 非关键字段y假定学生关系表为Student(学号,姓名,年龄,所在学院,学院地点,学院电话),关键字为单一关键字...原创 2010-07-27 23:27:13 · 127 阅读 · 0 评论 -
数据库设计三大范式应用实例剖析(3)
这样数据表中的关键字(用户名,发帖ID,回复ID)能决定整行:(用户名,发帖ID,回复ID) → (email,主页,电话,联系地址,发帖标题,发帖内容,回复标题,回复内容)但是,这样的设计不符合第二范式,因为存在如下决定关系:(用户名) → (email,主页,电话,联系地址)(发帖ID) → (发帖标题,发帖内容)(回复ID) → (回复标题,回复内容)即非关键字段部分函数依赖于候选关键字段,...原创 2010-07-27 23:27:51 · 84 阅读 · 0 评论 -
三个范式的解释
第一范式[1NF] 定义:仅当所有基本的简单域只包含原子数值,具有这种关系的被认为符合第一范式。 使用更加实际可用的术语来定义第一范式。实际可以分为2部分。第一部分就是字段中的任何值都必须是原子的。不符合第一范式一个例表如下 ID suppler_products price ------------------------------------------------- 1 lenox se...原创 2010-07-27 23:44:35 · 111 阅读 · 0 评论 -
ORACLE常用函数汇总<一>
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 组函数 本文将讨论如何利用单行函数以及使用规则。SQL中的单行函数 SQL和PL/SQL中自带很多类型的函数,有字符、数字、日期、转换、和混合型等多种函数用于处理单行数...原创 2010-07-28 10:28:53 · 75 阅读 · 0 评论 -
ORACLE常用函数汇总<二>
SQL中的组函数 组函数也叫集合函数,返回基于多个行的单一结果,行的准确数量无法确定,除非查询被执行并且所有的结果都被包含在内。与单行函数不同的是,在解析时所有的行都是已知的。由于这种差别使组函数与单行函数有在要求和行为上有微小的差异. 组(多行)函数 与单行函数相比,oracle提供了丰富的基于组的,多行的函数。这些函数可以在select或select的having子句中使用,当...原创 2010-07-28 10:30:13 · 76 阅读 · 0 评论 -
oracle10g笔记
一、oracle数据库结构服务器参数文件oracle\product\10.1.0\Db_2\database\spfile*.oraoracle\10.1.0\oradata\1.参数文件2.*.CTL 控制文件3.*.DBF 数据文件4.*.LOG 日志文件c:\>sqlplus "sys/password as sysdba"登录系统SQL>DES...原创 2010-08-03 17:16:19 · 122 阅读 · 0 评论 -
Oracle分页实现
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。分页查询格式:SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40)WHERE RN >= 21其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句...原创 2010-08-05 17:22:04 · 198 阅读 · 0 评论 -
CallableStatement详解
CallableStatement 用于执行 SQL 存储过程。JDBC 提供了一个存储过程 SQL escape,它允许以所有 RDBMS 的标准方式调用存储过程。该 escape 语法具有一个包含结果参数的格式和一个不包含结果参数的格式。如果使用结果参数,它必须被注册为一个 OUT 参数。其它的参数可以用于输入、输出或同时用于两者。参数通过编号被顺序的引用。第一个参数是 1。...原创 2010-09-16 19:17:40 · 878 阅读 · 0 评论 -
jdbc连接各种数据库的方法
1、Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="test"; Strin...原创 2010-09-19 22:06:15 · 56 阅读 · 0 评论 -
truncate与delete区别
区别: 1、在功能上,truncate是清空一个表的内容,它相当于delete from table_name。 2、delete是dml操作,truncate是ddl操作;因此,用delete删除整个表的数据时,会产生大量的roolback,占用很多的rollback segments, 而truncate不会。 3、在内存中,用delete删除数据,表空间中其被删除数据的...原创 2010-12-29 22:51:16 · 68 阅读 · 0 评论 -
oracle trunc & round区别
一、Oracle中的Round和Trunc:如同对数字进行四舍五入和按位截取一样,Oracle对时间日期也提供了这两种功能。但比起对数字进行四舍五入和截取比较复杂:这是因为时间日期是有格式的。下面看看这两个函数的定义和用途:ROUND(date [, format])TRUNC(date [, format])Round函数对日期进行“四舍五入”,Trunc函数对日期进行截取。如果...原创 2010-12-29 22:59:32 · 153 阅读 · 0 评论 -
in|out|in out参数模式
Oracle 过程中定义了in|out|in out3中参数模式,每个参数可以选择其一in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。举个例子create or replace procedure update_price(p_product_id in NUMBER,p_factor in NUMBER)AS.....你在引用这个过程的时候给参数传入值exe...原创 2011-01-05 22:06:14 · 214 阅读 · 0 评论 -
abc
http://blog.csdn.net/oypj2010/article/details/6445569原创 2013-03-01 11:21:34 · 171 阅读 · 0 评论