数据库
doymm2008
这个作者很懒,什么都没留下…
展开
-
Oracle序列的(Sequence)使用
序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主键值。对我们程序员来讲,精力时间有限,我们只学最有用的知识。大家请看:1) 建立序列命令CREATE SEQUENCE [user.]sequence_name[increment by n][start with n][maxvalue n | nomaxvalue][minvalue n | nominvalue];[转载 2009-09-02 21:23:00 · 379 阅读 · 0 评论 -
oracle job简介
创建oracle joboracle job简介 主要的使用情景 定时在后台执行相关操作:如每天晚上0点将一张表的数据保存到另一张表中,2:定时备份数据库等 熟化说万事开头难,这里我只简单记述一个创建一个简单的job 步骤如下: 1、创建一张表g_test create table G_TEST ( ID NUMBER(12), C_DATE DATE ) 2、创建一个sequ转载 2010-03-06 10:40:00 · 681 阅读 · 0 评论 -
触发器
beginif inserting then:new.job:=upper(:new.job);else:new.job:=upper(:new.job);end if;end;2.3、instead of触发器.(此触发器是在视图上而不是在表上定义的触发器,它是用来替换所使用实际语句的触发器.)语法如下:create or replace triggert转载 2010-03-06 11:01:00 · 530 阅读 · 0 评论 -
oracle学习笔记——视图
1.视图(VIEW)1.1 概念 视图-----是由SELECT查询语句(可以是单表或者多表查询)定义的一个"逻辑表",只有定义而无数据,是一个"虚表". 在创建视图时,只是将视图的定义信息保存在数据字典中, 而并不将实际的数据复制到任何地方, 即不需要在表空间中为视图分配存储空间. 视图是查看和操纵基表数据的一种方法, 可以像使用表一样使用视图. tips: 查询视转载 2010-03-06 11:17:00 · 822 阅读 · 0 评论 -
in和exists的区别与SQL执行效率分析
本文对in和exists的区别与SQL执行效率进行了全面整理分析……最近很多论坛又开始讨论in和exists的区别与SQL执行效率的问题,本文特整理一些in和exists的区别与SQL执行效率分析SQL中in可以分为三类: 1、形如select * from t1 where f1 in (a,b),应该和以下两种比较效率 select * from t1 where f1=a o转载 2010-03-07 21:39:00 · 510 阅读 · 0 评论 -
Oracle定义约束 外键约束
外键约束保证参照完整性。外键约束限定了一个列的取值范围。一个例子就是限定州名缩写在一个有限值集合中,这个值集合是另外一个控制结构——一张父表 下面我们创建一张参照表,它提供了完整的州缩写列表,然后使用参照完整性确保学生们有正确的州缩写。第一张表是州参照表,State作为主键CREATE TABLE state_lookup(state VARCHAR2(2),转载 2010-03-12 14:44:00 · 767 阅读 · 0 评论 -
表簇(table cluster)
表簇(table cluster)是一个数据库对象,它可以将那些经常在相同数据块中一起使用的表进行物理分组。当你处理那些经常连接在一起进行查询的表时,表簇是特别有效的。一个表簇存储簇键(用于将表连接到一起的列),以及簇表中的列值。因为簇中的表都被储存在相同的数据库块中,所以使用簇工作时,I/O操作就减少了。原创 2010-04-19 15:19:00 · 947 阅读 · 0 评论 -
oracle 高级SQL查询
<br />0 :coalesce 函数的用法? <br />COALESCE(A,B,C,D) AS 别名 <br />返回参数表中第一个不为空的值( 从左开始) <br />A B C D 可以是字段, 也可以是其他函数的返回值或者表达式的结果值 <br />1 :group by rollup 的用法。 <br />Oracle 数据库中的rollup 配合group by 命令使用,可以提供信息汇总功能(与" 小计" 相似) <br />示例如下: <br />select decode (job,转载 2011-03-21 10:42:00 · 887 阅读 · 0 评论 -
删除表前判断
<br />declare <br /> num number; <br /> begin <br /> select count(1) into num from user_tables where table_name= '大写表名 '; <br /> if num> 0 then <br />原创 2011-03-31 15:58:00 · 751 阅读 · 0 评论 -
INSTR方法
<br />INSTR方法的格式为 INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) 例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。 默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。 所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的显示结果是 Instri原创 2011-03-31 10:24:00 · 1023 阅读 · 0 评论 -
Oracle正则表达式函数
1、正则表达式中的元字符<br />元字符意思例子/说明要匹配的字符是一个特殊字符、常量或者后者引用。(后引用重复上一次的匹配)/n 匹配换行符<br />// 匹配 /<br />/( 匹配 (<br />/) 匹配 )^匹配字符串的开头位置如果A是字符串的第一个字符,^A 匹配 A$匹配字符串的末尾位置如果B是字符串的最后一个字符,$B 匹配 B*匹配前面的字符0次或多次ba*rk可以匹配 brk、bark、baark等等+匹配前面的字符1次或多次ba+rk可以匹配 bark、baark等等,但是不能匹转载 2011-03-31 10:51:00 · 496 阅读 · 0 评论 -
oracle临时表的用法总结
oracle临时表的用法总结 收藏<br /> 目前所有使用Oracle作为数据库支撑平台的应用,大部分数据量比较庞大的系统,即表的数据量一般情况下都是在百万级以上的数据量。<br /> <br /> 当然在Oracle中创建分区是一种不错的选择,但是当你发现你的应用有多张表关联的时候,并且这些表大部分都是比较庞大,而你关联的时候发现其中的某一张或者某几张表关联之后得到的结果集非常小并且查询得到这个结果集的速度非常快,那么这个时候我考虑在Oracle中创建“临时表”。<br /> <br /转载 2011-04-21 16:07:00 · 633 阅读 · 0 评论 -
数据库索引
oracle的索引陷阱一个表中有几百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这主要可能是oracle的索引限制造成的。 oracle的索引有一些索引限制,在这些索引限制发生的情况下,即使已经加了索引,oracle还是会执行一次全表扫描,查询的性能不会比转载 2010-09-03 11:34:00 · 2457 阅读 · 0 评论 -
mysql 触发器学习
mysql 触发器学习1. 一个简单的例子1.1. 创建表:create table t(s1 integer);1.2. 触发器:?delimiter |create trigger t_trigger before inserton t foreach row begin set @x = "hello转载 2012-04-10 15:10:39 · 665 阅读 · 0 评论 -
mysql 游标使用
mysql 游标使用请使用 mysql 1.5 或以上version;测试表 level ;createtable test.level (namevarchar(20));dropprocedure if exists useCursor// /*建立 存储过程 create*/ CREATE PROCEDURE use转载 2012-11-22 13:58:01 · 2812 阅读 · 0 评论 -
SQL With cube
闲来写下with cube的用法cube运算符在 SELECT 语句的 GROUP BY 子句中指定。该语句的选择列表应包含维度列和聚合函数表达式。GROUP BY 应指定维度列和关键字 WITH CUBE。结果集将包含维度列中各值的所有可能组合,以及与这些维度值组合相匹配的基础行中的聚合值。先看下表:我们以id聚合查询出平均分这一条SQL语句与上面唯一不同之处即为多了后面的 with cube,转载 2010-03-07 21:41:00 · 825 阅读 · 0 评论 -
深入浅出SQL教程之Group by和Having
在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。 SELECT SUM(population) FROM bbc 这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果转载 2010-03-07 21:25:00 · 885 阅读 · 1 评论 -
视图详解
视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。 视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。 视图看上去非常象数转载 2010-03-06 11:11:00 · 1242 阅读 · 0 评论 -
Oracle数据库中序列用法讲解
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下:CREATE SEQUENCE 序列名 [INCREMENT BY n] [START W转载 2009-09-02 21:26:00 · 486 阅读 · 0 评论 -
ORACLE DUAL表详解
1、DUAL表的用途Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中--查看当前连接用户SQL> select user from dual;USER------------------------------SYSTEM--查看当前日期、时间SQL> select sysdate from dual;SYSDATE-----------20转载 2009-09-02 21:50:00 · 297 阅读 · 0 评论 -
oracle jdbc 连接
package tax.lite.wf;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;public class DBUtils { public static void getConnTest()thr原创 2009-09-03 21:00:00 · 374 阅读 · 0 评论 -
存储过程创建语法及异常信息
存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围);变量2 类型(值范围);Begin Select count(*) into 变量1 from 表A where列名=param1; If (判断条件) then原创 2010-01-30 13:56:00 · 781 阅读 · 0 评论 -
分页
应一个朋友的要求,贴上收藏的SQL常用分页的办法~~ 表中主键必须为标识列,[ID] int IDENTITY (1,1) 1.分页方案一:(利用Not In和SELECT TOP分页) 语句形式: SELECT TOP 页记录数量 * FROM 表名 WHERE (ID NOT IN (SELECT TOP (每页行数*(页数-1)) ID FROM 表名 ORDER BY ID)转载 2010-02-05 20:08:00 · 430 阅读 · 0 评论 -
oracle临时表
在Oracle8i或以上版本中,可以创建以下两种临时表: 1。会话特有的临时表 CREATE GLOBAL TEMPORARY () ON COMMIT PRESERVE ROWS; 2。事务特有的临时表 CREATE GLOBAL TEMPORARY () ON COMMIT DELETE ROWS; CREATE GLOBAL TEMPORARY转载 2010-02-20 10:56:00 · 404 阅读 · 0 评论 -
oracle 同义词
Oracle中创建同义词语句:create synonym table_name for user.table_name; 其中第一个user_table和第二个user_table可以不一样。此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词:create synonym table_name f转载 2009-12-16 11:50:00 · 2176 阅读 · 0 评论 -
oracle 存储过程的基本语法
1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(转载 2009-12-17 19:53:00 · 335 阅读 · 0 评论 -
oracle:CLUSTER
表簇(table cluster)是一个数据库对象,它可以将那些经常在相同数据块中一起使用的表进行物理分组。当你处理那些经常连接在一起进行查询的表时,表簇是特别有效的。一个表簇存储簇键(用于将表连接到一起的列),以及簇表中的列值。因为簇中的表都被储存在相同的数据库块中,所以使用簇工作时,I/O操作就减少了。使用典型数据簇的目的是为了在硬盘上将应用程序经常一起使用的行存储在一块,当应用程序请原创 2009-12-16 11:54:00 · 2620 阅读 · 0 评论 -
oracle 触发器
【案例一】 题目: --触发器: --添加员工信息,流水号作为自动编号(通过序列生成), --并且判断如果工资小于0,则改为0;如果大于10000,则改为10000。 CREATE TABLE emp2( e_id NUMBER, e_no NUMBER, e_name VARCHAR2(20), e_sal NUMBER ) SELECT * FROM emp2; CREATE SEQUENCE转载 2009-12-17 19:58:00 · 498 阅读 · 0 评论 -
oracle存储过程代码实例
1、用来插入大量测试数据的存储过程CREATE OR REPLACE PROCEDURE INSERTAMOUNTTEST(ST_NUM IN NUMBER,ED_NUM IN NUMBER)ISBEGINdeclare i number;beginFOR i IN ST_NUM..ED_NUM LOOPINSERT INTO tb va转载 2010-03-05 16:12:00 · 633 阅读 · 0 评论 -
Oracle临时表 优化查询速度
Oracle临时表 优化查询速度1、前言 目前所有使用Oracle作为数据库支撑平台的应用,大部分数据量比较庞大的系统,即表的数据量一般情况下都是在百万级以上的数据量。 当然在Oracle中创建分区是一种不错的选择,但是当你发现你的应用有多张表关联的时候,并且这些表大部分都是比较庞大,而你关联的时候发现其中的某一张或者某几张表关联之后得到的结果集非常小并且查询得到这个结果集转载 2010-03-06 10:18:00 · 487 阅读 · 0 评论 -
oracle创建索引
适当的使用索引可以提高数据检索速度,可以给经常需要进行查询的字段创建索引oracle的索引分为5种:唯一索引,组合索引,反向键索引,位图索引,基于函数的索引创建索引的标准语法:CREATE INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名; 创建唯一索引:CREATE unique INDEX 索引名 ON 表名 (列名)转载 2010-03-06 10:22:00 · 758 阅读 · 0 评论 -
利用SQL索引提高查询速度
1.合理使用索引索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下:在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。 在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。 在条件表达式中经常用到的转载 2013-04-15 09:47:14 · 3068 阅读 · 0 评论