`
kingsui
  • 浏览: 190333 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
做项目的时候,一位同事导数据的时候,不小心把一个表中的数据全都搞重了,也就是说,这个表里所有的记录都有一条重复的。这个表的数据是千万级的,而且是生产系统。也就是说,不能把所有的记录都删除,而且必须快速的把重复记录删掉。对此,总结了一下删除重复记录的方法,以及每种方法的优缺点。为了陈诉方便,假设表名为Tbl,表中有三列col1,col2,col3,其中col1,col2是主键,并且,col1,col2上加了索引。1、通过创建临时表可以把数据先导入到一个临时表中,然后删除原表的数据,再把数据导回原表,SQL语句如下:creat table tbl_tmp (select distinct* from ...
Java数据库连接(JDBC)API是一系列能够让Java编程人员访问数据库的接口,各个开发商的接口并不完全相同。在使用多年的Oracle公司的JDBC后,我积累了许多技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能。 1、 ...
参与进"数字公交"项目已经有一个多月了,我自己负责的模块也基本完成并通过测试,本项目基于oracle的C/S结构,涉及很多数据库方面的操作,有一些经验是以前没有用到的,为了留做它日参考,特记录于此,如果看到此文的读者能够用到,那我更是欣慰. 1.users是用户表,userid是从sequence得到的唯一序号,作为主键,下面的触发器方便每次插入分配唯一的序列,其他表也可以参考于此.   CREATE OR REPLACE TRIGGER users_trig   before insert on users   for each row   declare   seq_va ...
Oracle 基本知识轻松学: 1.一个表空间只能属于一个数据库。 2.每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上)。 3.每个数据库最少有一个表空间(SYSTEM表空间)。 4.建立SYSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典。 5.每个数据库最少有两个联机日志组,每组最少一个联机日志文件。 6.一个数据文件只能属于一个表空间。 7.一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中。 8.建立新的表空间需要建立新的数据文件。 9.数据文件被ORACLE格式化为
关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍。在你设计数据库之时,若能符合这几个范式, ...
大型数据库系统中往往要用到查询统计,但是对于数据量大的系统,用户在进行复杂的查询统计时往往感到速度很慢,不能满足应用要求,这就要求我们在设计数据库系统时进行合理设置,提高查询统计的速度。本文结合笔者的项目开发经验,阐述具体的设置方法。 我们在开发大型oracle数据库系统时结合项目的特点,本着安全、高效的原则对数据库进行了一些物理设计,从而大大提高了数据库的查询统计速度。总结为如下几点: 1)扩大数据表
1.having 子句的用法 having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group by 子句中的列。 2.外部联接"+"的用法 外部联接"+"按其在"="的左边或右边分左联接和右联接 ...
当where子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引。 通常情况下,如果在WHERE子句中不使用诸如UPPER、REPLACE 或SUBSTRD等函数,就不能对指定列建立特定的条件。但如果使用了这些函数,则会出现一个问题:这些函数会阻碍Oracle优化器对列使用索引,因而与采用索引的情况相比较,查询会花费更多的时间。 庆幸的是,如果在使用函数的这些列中包含了字符型数据,可以用这样一种方法修改查询语句,以达到强制性使用索引,更有效地运行查询。这篇文章介绍了涉及的技术,并说明了在两种典型情况下怎样实现。 大小写混合情况 在讨论由于函数修改了列 ...
在构建自定义搜索引擎时,开发人员常遇到的一个问题是实现某种类型的分页功能;也就是说,允许用户提交一个返回很多行数据的查询,但是只显示前20条。在用户点击一个链接时,下20条或者前20条数据会从数据库应用程序中取出。 数据库访问存在的一个问题是来自 Web 站点的请求是无状态的。在等待用户请求下一组数据时,让数据库维护一个游标的效率是非常低的。对 HTML 编写代码让游标位于客户端是可以做到的,但是游标是一个有限的资
本文通过对Oracle数据库锁机制的研究,首先介绍了Oracle数据库锁的种类,并描述了实际应用中遇到的与锁相关的异常情况,特别对经常遇到的由于等待锁而使事务被挂起的问题进行了定位及解决,并对死锁这一比较严重的现象, ...
SQLServer和Oracle是大家经常用到的数据库,在此感谢作者总结出这些常用函数以供大家参考。 数学函数   1.绝对值   S:seleCT abs(-1) value   O:select abs(-1) value from dual   2.取整(大)   S:select ceiling(-1.001) value   O:select ceil(-1.001) value from dual   3.取整(小)   S:select floor(-1.001) value   O:select floor(-1.001) value from dual   4.取整(截取)   ...
说明:复制表(只复制结构,源表名:a 新表名:b) SQL: seleCT * into b from a where 1<>1 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) SQL: insert into b(a, b, c) select d,e,f from b; 说明:显示文章、提交人和最后回复时间 SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 说明:外
数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置…… 方法一declare @max integer,@id integerdeclare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1open cur_rowsfetch cur_rows into @id,@maxwhile @@fetch_status=0beginselect @max = @max -1set rowcount @maxdelete from ...
1.按姓氏笔画排序: SeleCT * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as2.数据库加密: select encrypt('原始密码') select pwdencrypt('原始密码') select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码') select pwdencrypt('原始密码') select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同3.取回表中字段: declare ...
现有表A,内容如下: 编码 仓库 数量 01 A 6 01 B 7 02 A 8 02 B 9现在想按编码查询出这种格式: 01 A 6 01 B 7 汇总小计: 13 02 A 8 02 B 9 汇总小计: 17问:该如何实现? 乍一看,好像很容易,用group by好像能实现?但仔细研究下去,你又会觉得group by也是无能为力,总欠缺点什么,无从下手。那么,到底该如何做呢 ...
Global site tag (gtag.js) - Google Analytics