DB2数据库删除重复数据,

范佩西_11 2007-10-31 09:16:15
1)比如我用DB2建个表:
NAME AGE gy
--------------------------
zhangsi 18 hfsdhfjsd
zhangsan 10 hf887
lisi 18 hffdfgdfsd
zhangsi 18 hfsdhfjsd
zhangsan 10 hf887
第一行根第四行,第二行跟第五行都是重复的,怎样删除这些重复的数据!
delete from table where name in ( select name from table group by name having count (name)>1); 这个语句一执行就删完了。请高手帮忙解决阿,!


2)还有一个问题,我有一个老的表oldtable,怎么通过语句创建一个新的表,并把oldtable的数据完全拷贝过去,用语句实现!!
...全文
324 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
范佩西_11 2007-11-14
  • 打赏
  • 举报
回复
haha,一人给5分第一个的给十分
trikewas 2007-11-01
  • 打赏
  • 举报
回复
如果 是老表,不用太麻烦的,用原来的数据,还原回第二个库中,中间不用替换,直接还原就成了
范佩西_11 2007-10-31
  • 打赏
  • 举报
回复
顺便在留个QQ好不?高手兄,以后多向你学习阿,不过放心一般不会去烦你的,回答完我把分都给你阿 !
范佩西_11 2007-10-31
  • 打赏
  • 举报
回复
就是第一题的
zhangsi 18 hfsdhfjsd
zhangsan 10 hf887
lisi 18 hffdfgdfsd
里面内容

yangxiao_jiang 2007-10-31
  • 打赏
  • 举报
回复
你的a.txt的内容是什么样子的?
范佩西_11 2007-10-31
  • 打赏
  • 举报
回复
高手兄,你可真牛阿,再问下,第一个怎么用SQL语句把d:\a.txt 导入到原表中阿?
yangxiao_jiang 2007-10-31
  • 打赏
  • 举报
回复
可以这样
1、将非重复记录导出到文件文件中,可用如下命令:
export to d:\a.txt of del select distinct * from temp
2、将原表中所有数据删除(删除前别忘备份),并将数据从文件文件中导入原表中

第二个,可以用
export to table.ixf of ixf SELECT * FROM tablenmae
import from table.ixf of ixf create into tablenmae
shijubo 2007-10-31
  • 打赏
  • 举报
回复
你用前面说的export语句导出数据(没有指定分隔符,默认是逗号),再用import/load装入数据,不用指定分隔符。如果数据很多的话,用load会快很多。
load from file.txt of del replace into table nonrecoverable
不用先删除,这个语句会替换表中原有的数据。

create table newtable like oldtable
使用同样的方法导出oldtable的数据,装入newtable中。

如果在UNIX等操作系统,使用load装入的数据文件需要权限755。
yangxiao_jiang 2007-10-31
  • 打赏
  • 举报
回复
你的这个如果是ASC格式的话,我不知道怎么用语句实现,你把它导成excel,然后再导入到db2里
否则用
import from file.txt of del modified by coldel: insert into table1(bb,cc)
modified by coldel后面加分隔符。

另外,我在单位不让上qq,而且我也不是高手。
规范化-数据设计原则 摘要 IBM 为社区提供了 DB2 免费版本 DB2 Express-C,它提供了与 DB2 Express Edition 相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。 关系型数据是当前广泛应用的数据类型,关系数据设计是对数据进行组织化和结 构化的过程,核心问题是关系模型的设计。对于数据规模较小的情况,我们可以比较 轻松的处理数据中的表结构。然而,随着项目规模的不断增长,相应的数据也变得 更加复杂,关系模型表结构更为庞杂,这时我们往往会发现我们写出来的SQL语句的是很 笨拙并且效率低下的。更糟糕的是,由于表结构定义的不合理,会导致在更新数据时造 成数据的不完整。因此,就有必要学习和掌握数据的规范化流程,以指导我们更好的 设计数据的表结构,减少冗余的数据,借此可以提高数据的存储效率,数据完整性 和可扩展性。本文将结合具体的实例,介绍数据规范化的流程。 序言 本文的目的就是通过详细的实例来阐述规范化的数据设计原则。在DB2中,简洁、结构 明晰的表结构对数据的设计是相当重要的。规范化的表结构设计,在以后的数据维护 中,不会发生插入(insert)、删除(delete)和更新(update)时的异常。反之,数 据库表结构设计不合理,不仅会给数据的使用和维护带来各种各样的问题,而且可能 存储了大量不需要的冗余信息,浪费系统资源。 要设计规范化的数据,就要求我们根据数据设计范式――也就是数据设计的规范原 则来做。但是一些相关材料上提到的范式设计,往往是给出一大堆的公式,这给设计者 的理解和运用造成了一定的困难。因此,本文将结合具体形象的例子,尽可能通俗化地 描述三个范式,以及如何在实际工程中加以优化应用。 规范化 在设计和操作维护数据时,关键的步骤就是要确保数据正确地分布到数据的表中。 使用正确的数据结构,不仅便于对数据进行相应的存取操作,而且可以极大地简化应 用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是"数 据库规范化"。后面我们将通过实例来说明具体的规范化的工程。关于什么是范式的定义 ,请参考附录文章 1. 数据冗余 数据应该尽可能少地冗余,这意味着重复数据应该减少到最少。比如说,一个部门雇员 的电话不应该被存储在不同的表中, 因为这里的电话号码是雇员的一个属性。如果存在过多的冗余数据,这就意味着要占用 了更多的物理空间,同时也对数据的维护和一致性检查带来了问题,当这个员工的电话 号码变化时,冗余数据会导致对多个表的更新动作,如果有一个表不幸被忽略了,那么 就可能导致数据的不一致性。 规范化实例 为了说明方便,我们在本文中将使用一个SAMPLE数据表,来一步一步分析规范化的过程 。 首先,我们先来生成一个的最初始的表。 "CREATE TABLE "SAMPLE" ( " ""PRJNUM" INTEGER NOT NULL, " ""PRJNAME" VARCHAR(200), " ""EMYNUM" INTEGER NOT NULL, " ""EMYNAME" VARCHAR(200), " ""SALCATEGORY" CHAR(1), " ""SALPACKAGE" INTEGER) " "IN "USERSPACE1"; " " " "ALTER TABLE "SAMPLE" " "ADD PRIMARY KEY " "("PRJNUM", "EMYNUM"); " " " "Insert into SAMPLE(PRJNUM, PRJNAME, EMYNUM, EMYNAME, SALCATEGORY," "SALPACKAGE) " "values(100001, 'TPMS', 200001, 'Johnson', 'A', 2000), (100001, " "'TPMS', 200002, " "'Christine', 'B', 3000), (100001, 'TPMS', 200003, 'Kevin', 'C', " "4000), (100002, " "'TCT', 200001, 'Johnson', 'A', 2000), (100002, 'TCT', 200004, " "'Apple', 'B', " "3000); " 表1-1 考察表1- 1,我们可以看到,这张表一共有六个字段,分析每个字段都有重复的值出现,也就是说 ,存在数据冗余问题。这将潜在地造成数据操作(比如删除、更新等操作)时的异常情 况,因此,需要进行规范化。 第一范式 参照范式的定义,考察上表,我们发现,这张表已经满足了第一范式的要求。 1、因为这张表中字段都是单一属性的,不可再分; 2、而且每一行的记录都是没有重复的;
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。 PostgreSQL 是一个免费的对象-关系数据服务器(数据管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据客户端接口。这一点也可以说是 PostgreSQL 一大优点。 本课程作为PostgreSQL数据管理二,主要讲解以下内容:1.     PostgreSQL中的子查询2.     PostgreSQL公共表表达式3.     PostgreSQL数据的修改4.     PostgreSQL中的事务5.     PostgreSQL数据导入和导出6.     PostgreSQL数据的管理7.     PostgreSQL表的管理

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧