数据库专题
文章平均质量分 72
菠萝先生
面向对象大师,架构师
展开
-
大型ERP等数据库系统常见几种设计
大型ERP等数据库系统常见几种设计1. 自增长 primary key 采用自增长 primary key主要是性能。早期的数据库系统,经常采用某种编号,比如身份证号码,公司编号等等作为数据库表的 primary key。然而,很快,大家就发现其中的不利之处。 比如早期的医院管理系统,用身份证号码作为病人表的 primary key。然而,第一,不是每个人都有身份证;第二,对于国外原创 2013-08-02 18:24:44 · 107 阅读 · 0 评论 -
三种东西永远不要放到数据库里
图片,文件,二进制数据既然数据库支持BLOB类型的数据,把文件塞进BLOB字段里一定没有错了!?错,不是这样的!别的先不提,在很多数据库语言里,处理大字段都不是很容易。把文件存放在数据库里有很多问题:对数据库的读/写的速度永远都赶不上文件系统处理的速度数据库备份变的巨大,越来越耗时间对文件的访问需要穿越你的应用层和数据库层这后两个是真正的杀手。把图片缩略图存到数据库里?很好,那你就不能使用ngin原创 2013-08-02 18:30:42 · 117 阅读 · 0 评论 -
oracle 数组用法
集合:是具有相同定义的元素的聚合。Oracle有两种类型的集合: 可变长数组(VARRAY):可以有任意数量的元素,但必须预先定义限制值。 嵌套表:视为表中之表,可以有任意数量的元素,不需要预先定义限制值。 在PL/SQL中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE 和Table of Reco原创 2013-08-02 18:28:30 · 134 阅读 · 0 评论 -
Oracle预定义的21个系统异常类型
命名的系统异常产生原因ACCESS_INTO_NULL未定义对象CASE_NOT_FOUNDCASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时COLLECTION_IS_NULL集合元素未初始化CURSER_ALREADY_OPEN游标已经打开DUP_VAL_ON_INDEX唯一索引对应的列上有重复的值INVALID_CURSOR在不合法的游标上进行操作INVALID_NUMBER原创 2013-08-02 18:28:27 · 136 阅读 · 0 评论 -
oracle快照dblink数据同步
经过对各种资料的整理,总结出的东西,一、同步原理1.首先创建一个dblink,可以访问远程数据库2.在本地创建一个快照,映射远程数据表,当远程数据表有变化时,会反应到快照中.3.由于快照类似于视图表,所以在本地为快照创建一个触发器,当快照有变化时,会触发相应事件.4.在触发器中写同步数据的代码.二、创建DBLink(在目标数据库)drop public database link dblink_o原创 2013-08-02 18:27:54 · 173 阅读 · 0 评论 -
Oracle常用知识点
1、查询所有的表名 select table_name from user_all_tables; 1、查找所有的用户 select * from all_users 1、查找表的所有索引(包括索引名,类型,构成列):select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index原创 2013-08-02 18:27:39 · 137 阅读 · 0 评论 -
SQL练习题-雇员
--1、列出至少有一个雇员的所有部门 select distinct dname from dept where deptno in (select distinct deptno from emp); --2、列出薪金比"SMITH"多的所有雇员 select ename,sal from emp where sal>(select sal from emp where ename=upp原创 2013-08-02 18:24:39 · 1750 阅读 · 0 评论 -
Oracle 语法之 OVER (PARTITION BY ..)
oracle的分析函数over 及开窗函数 一:分析函数over Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组只返回一行。 下面通过几个例子来说明其应用。 1:统计某商店的营业额。 date原创 2013-08-02 18:28:32 · 139 阅读 · 0 评论 -
关于关闭Connection是否会自动关闭Statement,ResultSet问题
做程序离不开连接数据库,所以一些打开,关闭数据库是经常要执行的操作,打开数据库后,在程序用完后要及时关闭数据库连接资源,以释放内存,避免资源耗尽. 但现在有一个问题,即当我们关闭了Connection对象后,Statement,ResultSet对象是否会自动关闭问题。对于这个问题,之前我在网上也找了相关资料,说会自动关闭,所以一段时间以来,我都是只关闭Connection对象,而没有关闭Sta原创 2013-08-02 18:27:50 · 476 阅读 · 0 评论 -
Oracle数据库实现自增
由于ORACLE设置主键是不会自动增加的,所以必须用 序列 和 触发器 来完成主键的递增 1建立数据表create table Test_Increase( userid number(10) primary key, /*建立主键*/ username varchar2(20) ); 2创建自动增长序列 CREATE SEQUENC原创 2013-08-02 18:27:36 · 188 阅读 · 0 评论 -
你的SqlServer还连不上吗
解决方案:1 首先要做的是在sql新建查询里输入exec sys.sp_readerrorlog 0, 1, 'listening'运行后 会显示你的sql 正在运行的tcp/ip接口看看是否和你java代码中指定的url中的接口不一致2 你看一下服务器的TCP/IP是否被禁用了,sqlserver2005默认情况下是禁用了TCP/IP连接。启动TCP/IP连接的方法:开始\程序\Microsof原创 2013-08-02 18:25:32 · 150 阅读 · 0 评论 -
sql多表连接查询
inner join,full outer join,left join,right jion内部连接 inner join 两表都满足的组合full outer 全连 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有A表没有的显示为(null)A表 left join B表 左连,以A表为基础,A表的全部数据,B表有的组合。没有的为nullA表 right join原创 2013-08-02 18:24:37 · 144 阅读 · 0 评论 -
ORACLE Scheduler特性
所谓出于job而胜于job,说的就是Oracle 10g后的新特性Scheduler啦。在10g环境中,ORACLE建议使用Scheduler替换普通的job,来管理任务的执行。其实,将Scheduler描述成管理job的工具已经太过片面了,10G版本中新增的Scheduler绝不仅仅是创建任务这么简单。。。。提示:ORACLE中管理Scheduler是通过DBMS_SCHEDULER包,本章也以原创 2013-08-02 18:28:49 · 139 阅读 · 0 评论 -
物化视图的快速刷新
物化视图有三种刷新方式:COMPLETE、FAST和FORCE。完全刷新(COMPLETE)会删除表中所有的记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据物化视图中查询语句的定义重新生成物化视图。快速刷新(FAST)采用增量刷新的机制,只将自上次刷新以后对基表进行的所有操作刷新到物化视图中去。采用FORCE方式,Oracle会自动判断是否满足快速刷新的条件,如果满足则进行快速刷原创 2013-08-02 18:28:25 · 146 阅读 · 0 评论 -
Oracle中出现表锁死或者行锁死的解锁办法
查看哪些表被锁住:select b.owner,b.object_name,b.object_type from v$locked_object a,All_Objects b WHERE a.OBJECT_ID=b.object_id找到'sid,serial#:select * from v$session where sid in(select sid from原创 2013-08-02 18:27:52 · 215 阅读 · 0 评论 -
全卸载Oracle10g 方法
全卸载Oracle方法:软件环境: 1、Windows XP + Oracle 10g 2、Oracle安装路径为:d:\Oracle1、如果数据库配置了自动存储管理(ASM),应该先删除聚集同步服务CSS(cluster Synchronization Services).删除CSS服务的方法是在DOS命令行中执行如下命令: localconfig delete2、在“服务”窗口中停止Oracl原创 2013-08-02 18:27:30 · 113 阅读 · 0 评论 -
oracle 10g 快照
词我当初一听就楞了,不知道这个是什么玩意,然后花了点时间研究了下,以下是我通过网络学习总结的 快照主要是用于分布式数据库,我们有数据库A,A中有个表a,我们在数据库B中要使用数据库A中a表的数据,这时候我们就可以在数据库B中创建数据库A的快照,这样可以提高我们的效率。 我理解快照就是对表的复制,定时的将a表复制到b表(包括数据) 注意:用快照创建的表是只原创 2013-08-02 18:27:56 · 169 阅读 · 0 评论 -
Oracle的数据类型
VARCHAR2(size) 可变长度的字符串,其最大长度为size个字节;size的最大值是4000,而最小值是1;你必须指定一个VARCHAR2的size; NVARCHAR2(size) 可变长度的字符串,依据所选的国家字符集,其最大长度为size个字符或字节;size的最大值取决于储存每个字符所需的字节数,其上限为4000;你必须指定一个NVARCHAR2的size; NU原创 2013-08-02 18:27:34 · 143 阅读 · 0 评论 -
Oracle分页查询
方法一:(适合小数据量)SELECT * FROM( SELECT ROWNUM as 别名 rn, 别名d.* FROM 表名1 as 别名 d WHERE ROWNUM)WHERE别名 rn>=11; 方法二速度较稳定,推荐使用SELECT * FROM( SELECT ROW_NUMBER() OVER (ORDER BY id) AS 别转载 2014-02-25 15:10:57 · 151 阅读 · 0 评论