管理

随笔分类 -  【03】数据库

摘要:最后的例子说明内部循环包含排序的情况: SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS; 表已创建。 SQL> CREATE INDEX IND_T_OBJECT_NAME ON T (OBJECT_NAME); 索引已创建。 SQL> ALTER TABLE T MODIFY OBJECT_NAME NOT NULL; 表已更改。 SQL> EX... 阅读全文

posted @ 2008-12-24 16:58 lzhdim 阅读(724) 评论(0) 推荐(0) 编辑

摘要:继续看查询的第二种情况,包含表连接的情况: SQL> CREATE TABLE T AS SELECT * FROM DBA_USERS; 表已创建。 SQL> CREATE TABLE T1 AS SELECT * FROM DBA_SOURCE; 表已创建。 SQL> ALTER TABLE T ADD CONSTRAINT PK_T PRIMARY KEY (USERNAME); 表已更改。... 阅读全文

posted @ 2008-12-24 16:55 lzhdim 阅读(825) 评论(0) 推荐(0) 编辑

摘要:这篇文章用几个例子来说明分页查询的效率。首先构造一个比较大的表作为测试表: SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS, DBA_SEQUENCES; 表已创建。 SQL> SELECT COUNT(*) FROM T; COUNT(*) ---------- 457992 首先比较两种分页方法的区别: SQL> SET AUTOT ON SQ... 阅读全文

posted @ 2008-12-24 16:54 lzhdim 阅读(687) 评论(0) 推荐(0) 编辑

摘要:Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM = 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM = 21控制分页... 阅读全文

posted @ 2008-12-24 16:51 lzhdim 阅读(804) 评论(0) 推荐(0) 编辑

摘要:前面我们介绍了,使用oracle的聚合函数和group by关键字来对结果集合进行分组,这时就有了一个新的问题,例如,我们针对聚合函数那一列需要找到满足条件的那些分组结果。我们可以使用where子句吗?不行,我们需要的是使用having关键字。 例如我们需要找出那些平均工资在$2000以上的部门。使用having关键字的写法是: Select deptno,avg(sal) avg_sal Fro... 阅读全文

posted @ 2008-12-24 14:36 lzhdim 阅读(3334) 评论(0) 推荐(1) 编辑

摘要:前面我们在介绍oracle的聚合函数时提到如果在给定的值中存在空值的话,oracle将会忽略掉这些空值。这个处理的方式在大多数时候是符合我们要求的,但是在有些时候可能会有问题。 例如,现在到了年关,公司会对部分员工进行奖励,而当然会有一部分人没有得到奖励。比如现在有一张表中存的是员工的奖金额,那个将会有一部分人对应的奖金额是空值,因为他们根本就没有得到奖励,现在老板让你统计全公司的得奖平均额。 如... 阅读全文

posted @ 2008-12-24 14:35 lzhdim 阅读(2080) 评论(0) 推荐(0) 编辑

摘要:前面我们介绍了很多oracle中单行函数,在oracle中还存在另一类函数,那就是聚合函数,oracle中的聚合函数非常有用,主要是用来做些统计、平均之类的工作,你必须牢记。 先简单介绍一下几个常用的oracle中的聚合函数。 Oracle中聚合函数名称 函数的... 阅读全文

posted @ 2008-12-24 14:35 lzhdim 阅读(8840) 评论(0) 推荐(0) 编辑

摘要:和其他的关系型数据库一样,oracle中也能进行一些隐式的数据转换,这对我们写SQL语句有非常用,我们可以不必麻烦地手动转化很多类型的字符。虽然前面我们介绍了一些使用例如to_char,to_date的函数进行强制转换的方法,但是隐式转换也还是不错的。 Oracle可以隐式地进行一些变量类别之间转化,例如从字符串转换到数值,看下面的例子。 SQL> select ename,sal from em... 阅读全文

posted @ 2008-12-24 14:34 lzhdim 阅读(2615) 评论(0) 推荐(0) 编辑

摘要:Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。 下面简单介绍一下几个函数的用法。 在介绍这个之前你必须明白什么是oracle中的空值null 1.NVL函数 NVL函数的格式如下:NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那... 阅读全文

posted @ 2008-12-24 14:33 lzhdim 阅读(8228) 评论(3) 推荐(1) 编辑

摘要:oracle中的distinc关键字和count函数需要经常组合起来使用,例如,如果我们拿到一个仅有员工基本信息的列表,我们希望得到这个公司共有多少个部门。 我们可以这样做: select count(a.deptno) from (select distinct deptno from scott.emp) a; 但这样做太复杂了,我们可以将discint和count函数用在一起 例如: sel... 阅读全文

posted @ 2008-12-24 14:31 lzhdim 阅读(3027) 评论(0) 推荐(0) 编辑

摘要:前面我们介绍了oracle中正则表达式的基本元字符和常用的两个函数regexp_like 和 regexp_instr。这里我们再继续介绍剩下的两个正则表达式函数regexp_replace和regexp_substr。 regexp_replace函数和regexp_substr函数的功能类似与字符函数replace和substr,只是这里的应用更加灵活,可以一下子匹配一系列的结果,而原来的函数... 阅读全文

posted @ 2008-12-24 14:31 lzhdim 阅读(9927) 评论(1) 推荐(0) 编辑

摘要:前面我们介绍了oracle中的正则表达式组常用的一个函数regexp_like,这里我们在介绍一个函数regexp_instr。这个正则表达式函数用的不如前一个多,但也会偶尔会用到。这个函数其实与我们前面曾介绍的instr函数其实相似。 regexp_instr的原型如下: regexp_instr(x,pattern[,start[,occurrence[,return_option[,matc... 阅读全文

posted @ 2008-12-24 14:30 lzhdim 阅读(5851) 评论(0) 推荐(0) 编辑

摘要:前面介绍了oracle中正则表达式构成的元数据,但仅仅知道元数据是不够的,oracle中的正则表达式是结合其特定的4个函数使用的,其中用的最多的就是现在要介绍的的这个函数:regexp_like regexp_like函数的基本构成是: regexp_like(x,pattern[,match_option]) 其基本功能是在x中查找pattern,如果能找到返回true否则返回false,这里的... 阅读全文

posted @ 2008-12-24 14:30 lzhdim 阅读(3714) 评论(0) 推荐(0) 编辑

摘要:正则表达式是很多编程语言中都有的。可惜oracle8i、oracle9i中一直迟迟不肯加入,好在oracle10g中终于增加了期盼已久的正则表达式功能。你可以在oracle10g中使用正则表达式肆意地匹配你想匹配的任何字符串了。 所谓正则表达式是对于字符串进行匹配的一种模式。举个例子来说字符串’^198[0-9]$’可以匹配‘1980-1989’,也即80后出生的年份。如果希望统计出公司那些员工是... 阅读全文

posted @ 2008-12-24 14:29 lzhdim 阅读(1605) 评论(0) 推荐(0) 编辑

摘要:重复数据删除技术在一两年前已经收到人们的关注,重复数据删除初创厂商Data Domain公司在一两年更是吸引了人们大部分的眼球,业绩的飞速增长、用户的迅速增加,让Data Domain公司以让人难以置信的速度扩张着,Data Domain更是在06年纳斯达克上市。然而在2008年,重复数据删除领域,已经不再是Data Domain一家风光了,EMC、IBM、NetApp、飞康、Sepaton、... 阅读全文

posted @ 2008-12-24 14:13 lzhdim 阅读(676) 评论(0) 推荐(0) 编辑

摘要:问:关于重复数据删除产品,我想问的是基于软件的重复数据删除和基于硬件的重复数据删除哪个更好了,它们各自的优缺点是什么了? 答:基于软件的重复数据删除旨在消除源的冗余,而基于硬件的重复数据删除强调存储系统本身的数据削减。虽然基于硬件的重复数据删除无法提供带宽补偿,而在源中进行重复数据删除中有可能获得带宽补偿,但是基于硬件的重复数据删除的压缩级别通常会更高,并且基于硬件的重复数据删除产品需要的维护... 阅读全文

posted @ 2008-12-24 14:12 lzhdim 阅读(612) 评论(0) 推荐(0) 编辑

摘要:数据库事务是指作为单个逻辑工作单元执行的一系列操作。 设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作: · 更新客户所购商品的库存信息 · 保存客户付款信息--可能包括与银行系统的交互 · 生成订单并且保存到数据库中 · 更新用户相关信息,例如购物数量等等 正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是... 阅读全文

posted @ 2008-12-23 17:44 lzhdim 阅读(1459) 评论(0) 推荐(0) 编辑

摘要:oracle数据库的表中的每一行数据都有一个唯一的标识符,或者称为rowid,在oracle内部通常就是使用它来访问数据的。rowid需要 10个字节的存储空间,并用18个字符来显示。该值表明了该行在oracle数据库中的物理具体位置。可以在一个查询中使用rowid来表明查询结果中包含该值。 保存rowid需要10个字节或者是80个位二进制位。这80个二进制位分别是: 1. 数据对象编号,表明此行... 阅读全文

posted @ 2008-12-23 15:22 lzhdim 阅读(679) 评论(0) 推荐(0) 编辑

摘要:有一种oracle的登录方式是操作系统验证登录方式,即常说的OS验证登录方式,在SQL server中也有这种方式。 有些朋友经常使用connect / as sysdba登录,但不知道为什么没有提供用户名和密码就得到了sysdba的权限。还认为这样是不是不安全呢? Oracle在常见的多用户操作系统上都可以进行OS认证方式来登录。例如solaris,windows等等。 下面以常见的window... 阅读全文

posted @ 2008-12-23 15:21 lzhdim 阅读(4684) 评论(0) 推荐(0) 编辑

摘要:oracle中的各种数据对象,包括表名称,视图,等等名称的命名都需要遵循oracle的命名规则。oracle的命名规则分为标准命名方式和非标准命名方式。 标准命名方式需要满足以下的条件: 以字符打头 30个字符以内 只能包含A-Z,a-z,0-9,_,$,and,$和# 不能和同一个用户下的其他对象重名 不能是oracle服务器的保留字 例如:下面的S... 阅读全文

posted @ 2008-12-23 15:19 lzhdim 阅读(935) 评论(0) 推荐(0) 编辑

Copyright © 2000-2022 Lzhdim Technology Software All Rights Reserved