精华内容
下载资源
问答
  • 我们在数据库运维环境中有时会出现需删除表中重复数据的情况,比如说,导入时重复导入了,这时候我们怎么办?如何删除重复的数据,保证数据的正确性和完整性? 操作系统:中标麒麟6.0 数据库系统:DM8 我们先来...

    我们在数据库运维环境中有时会出现需删除表中重复数据的情况,比如说,导入时重复导入了,这时候我们怎么办?如何删除重复的数据,保证数据的正确性和完整性?

    操作系统:中标麒麟6.0

    数据库系统:DM8

    我们先来创建一张测试表test

    SQL>create table test(id int,name varchar(50));

    手动在表test中添加重复记录

    insert into test values(1,'aaa');
    insert into test values(1,'aaa');
    insert into test values(2,'bbb');
    insert into test values(2,'bbb');
    insert into test values(3,'ccc');
    insert into test values(3,'ccc');
    insert into test values(4,'ddd');
    commit;
    select * from test;

    使用简单的sql语句删除重复记录多余部分只保留一条

    delete from test a
    where
        (a.id,a.name) in(select id,name from test group by id,name having count(*) > 1)
        and rowid not in (select min(rowid) from test group by id,name having count(*)>1);
    commit;

    执行完成,我们commit提交一下。然后我们再去看看test表里面的重复数据是不是都删除了呢?

     

    果然!重复数据都删除了,

    展开全文
  • 区别是:第二种清空表数据比较及时,能够很快地释放数据库表空间,而且不记录删除操作,自增字段还是从表建立的时候设置的初始值开始, 第一种方式下数据库空间不一定能及时释放出来,而且如果有identity字段,...

    删除数据库表中数据有两种方式:

    第一种:delete from tablename where 1=1;

    第二种:truncate  table tablename;

    区别是:第二种清空表数据比较及时,能够很快地释放数据库表空间,而且不记录删除操作,自增字段还是从表建立的时候设置的初始值开始,

          第一种方式下数据库空间不一定能及时释放出来,而且如果有identity字段,之后再插入数据也不会从定义的初始值开始自增。

    注意:truncate 不能删除行数据,要删就要把表清空

    delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。所以可以对delete操作进行roll back

    1、truncate 在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而 truncate 则不会被撤销。 
    2、truncate 是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对 truncate 使用ROLLBACK命令。 
    3、truncate 将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过 truncate 操作后的表比Delete操作后的表要快得多。 
    4、truncate 不能触发任何Delete触发器。 
    5、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。 
    6、不能清空父表

    注意:drop table tablename;是将表删除,包括表中的内容,表的定义,数据库表空间

    参考:http://www.cr173.com/html/40708_1.html

    转载于:https://www.cnblogs.com/zhaijing/p/7878407.html

    展开全文
  • 如果你不小心把一个重要的数据库表删除了,那么请不要紧张、不要着急,因为Oracle Database 10g中新增加了闪回表特性,它使得被删除表的恢复过程如同执行几条语句一样简单。让我们来看该特性是如何工作的。  首先...

      如果你不小心把一个重要的数据库表删除了,那么请不要紧张、不要着急,因为Oracle Database 10g 中新增加了闪回表特性,它使得被删除表的恢复过程如同执行几条语句一样简单。让我们来看该特性是如何工作的。

      首先,让我们查看当前模式中的表。

    TNAME     TABTYPE  CLUSTERID

    ------------------------    ------- ----------

    RECYCLETEST              TABLE 

    现在,我们意外地删除了该表: 

    SQL> drop table recycletest;
    Table dropped. 

    现在让我们来查看该表的状态。 

    SQL> select * from tab;
    TNAME TABTYPE CLUSTERID
    ------------------------------ ------- ----------
    BIN$04LhcpndanfgMAAAAAANPw==$0 TABLE

    表 RECYCLETEST 已不存在,但是请注意出现新表 BIN$04LhcpndanfgMAAAAAANPw==$0。这就是所发生的事情:被删除的表 RECYCLETEST 并没有完全消失,而是重命名为一个由系统定义的名称。它存在于同一个表空间中,具有与原始表相同的结构。如果在该表上定义了索引或触发器,则它们也被重命名,使用与表相同的命名规则。任何相关源(如过程)都失效;原始表的触发器和索引被改为放置在重命名的表 BIN$04LhcpndanfgMAAAAAANPw==$0 上,保持被删除表的完整对象结构。 

    表及其相关对象被放置在一个称为“回收站”的逻辑容器中,它类似于您 PC 机中的回收站。但是,对象并没有从它们原先所在的表空间中删除;它们仍然占用那里的空间。回收站只是一个列出被删除对象目录的逻辑结构。在 SQL*Plus 提示符处使用以下命令来查看其内容(您需要使用 SQL*Plus 10.1 来进行此操作):

    SQL> show recyclebinORIGINAL NAME    RECYCLEBIN NAME
    ORIGINAL NAME  RECYCLEBIN NAME                OBJECT  TYPE  DROP TIME
    ---------------- ------------------------------------------ ------------------
    RECYCLETEST    BIN$04LhcpndanfgMAAAAAANPw==$0 TABLE         2004-02-16:21:13:31
    结果显示了表的原始名称 RECYCLETEST,并显示了回收站中的新名称,该名称与我们看到的删除后所创建的新表名称相同。(注意:确切的名称可能因平台不同而不同。)为恢复该表,您所需要做的就是使用 FLASHBACK TABLE 命令:
    SQL> FLASHBACK TABLE RECYCLETEST TO BEFORE DROP;FLASHBACK COMPLETE.SQL> SELECT * FROM TAB;TNAME                          TABTYPE  CLUSTERID------------------------------ ------- ----------RECYCLETEST                    TABLE
    !表毫不费力地恢复了。
    但是,如果你在删除表的时候使用了PURGE关键字,那么表将会被彻底删除不能再恢复。请看下例:
    SQL> drop table log_dict_kind2 purge;
     
    Table dropped
     
    SQL> flashback table log_dict_kind2 to before drop;
     
    flashback table log_dict_kind2 to before drop
     
    ORA-38305: 对象不在回收站中
     
    SQL> 

     



    转载于:https://www.cnblogs.com/onedime/archive/2012/11/22/2782356.html

    展开全文
  •  使用distinc创建临时然后将原替换。   如果是有主键的:   delete * from tab where id not in( select id from ( select max(id) id,name from tab group by name ) ) 这个例子是根据name作为重...

    首先:判断什么是重复数据。

     

    如果是所有列的值都是相同的才是重复数据:

      使用distinc创建临时表然后将原表替换。

     

    如果是有主键的:

      

    delete * from tab where id not in(

      select id from (
     
        select max(id) id,name from tab group by name
      )
     )

    这个例子是根据name作为重复的依据的。

     

    展开全文
  •  利用另一个,通过distinct查出来插入另一张,然后再删除这张表的数据,将去重后的数据再插进来。  方法二:  1、查找中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from ...
  • 数据库运维环境中有时会出现需删除表中重复数据的情况,比如说,导入时重复导入了,这时候我们怎么办?如何删除重复的数据,保证数据的正确性和完整性? 测试 1、创建一张测试表test SQL>create table test(id ...
  • 数据库数据表创建及删除

    千次阅读 2015-05-18 20:04:59
    由于数据库的知识尚处于初学阶段,对于一些知识还不是很了解,所以不免会...那就是如何启动SQL Server 2008和数据库以及数据表的创建以及删除。  在网上着了很多的数据库视频讲解,最终选择了我要自学网的讲解视频(SQ
  • A表 id name price 1 茶叶 ...如图,假设有表A,A中数据如下,如何用一条sql语句删除表中重复数据,保留其id值最小的那一条数据(也就是id为1,3,4的保留) ...
  • 删除数据3.更新和删除的指导原则 1.更新数据 为了更新(修改)中的数据,可使用UPDATE语句。 可采用两种方式更新UPDATE: 更新中特定行 更新中 所有行 不要省略WHERE子句 在使用UPDATE时一定要注意细心。 ...
  • 如何删除数据库一个中某列是重复的数据? 比如T:id name1 aa2 bb3 cc4 aa5 aa6 cc如何变成(保留最大的id或者最小的id):id name1 aa2 bb3 cc1.使用distinct关键字,导出无重复的数据到一个临时,删除原...
  • 数据库表如何插入数据

    千次阅读 热门讨论 2015-11-22 19:43:41
    背景 最近做一级,我做的是Excel部分,因为期末老师就让我们的系统上线,...但是不知道大家有没有这样的经历,就是在导完题之后发现中间出了点问题,需要增加一条数据删除和修改都是可以直接在数据库进行操作的,这
  • 常见的删除数据库表中数据的方法是通过delete或者truncate的方法进行删除操作,如果删除的是表中某一条或者部分数据的话适合用delete操作进行删除,如果要删除表中所有的数据的话,适合是同truncate进行删除操作。...
  • 数据库中有时需要删除所有的或者所有的内容,本文主要介绍几种常见的操作及说明。
  • Oracle数据库如何查询,删除关联数据要根据条件删掉一行数据(根据单号及采购组织名称) 要根据条件删掉一行数据(根据单号及采购组织名称) 例如要删这一行 :Index_number = 0000000032 先根据条件查询到这...
  • 今天接到一个任务,把A中的字段name为“xx”的数据备份,然后删除A的这些数据。已成功完成任务,作此纪录,用以备忘。 一、方案与实现 假设存在与A结构相同的B。 方案:首先,查询A中的字段name为...
  • 当使用delete语句删除数据后想要恢复被删除数据时,可使用 select * from 表名 as of timestamp to_timestamp('2012-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss'); '2012-01-01 00:00:00'是要恢复到的时间节点。 注意...
  • 在一个中有一个自动增长列c1,同时又有两个外健列分别指向另外两个标的主键c2,c3,突然有一天我想让c2与c3组合为一个唯一键,这个时候先必须删除关于c2与c3的重复键(因为c1不可能重复),这就是今天要讨论的话题,...
  • 具体方法:复制下面的php执行语句,保存为sql.php文件(注意配置数据库名称、密码、数据表头),通过ftp上传到网站跟目录,运行。 <?php //设置数据库连接信息。数据库服务器地址,数据库用户名,数据密码 ...
  • 一个mysql数据库中,是可以同时安装几个网站...那么,我们接下来就来一起了解下,如何将mysql数据库中的快速删除的一个方法。 小编这里有两个小技巧,可以帮助您实现这个操作。详细操作: 一、使用phpmyadmi...
  • 由于oracle等数据库在表里有数据时无法改变字段类型,于是使用下列方法,总体思路是:备份原表数据,删除表数据,修改字段类型,将备份表的数据导入原表,删除备份表,结束。 1、备份表数据 create table ST_DATA_...
  • mysql 如何删除数据库中所有的

    万次阅读 2019-04-02 20:11:18
    mysql 如何删除数据库中所有的需求:方法1(他人之见)方法2(常用)方法3(最方便):方法4(重点,多功能):1.行转列的查询2 复制查询出的数据3. 使用Navicat、idea 等数据库软件4. 执行sql5. 可能出现的问题:...
  • 如果Oracle10g数据库中误删除了一个中的记录,例如删除了一个非常重要的雇员信息,并且该事务已经提交了,如何快速找回误删除数据呢? 这种情况下可以利用Oracle10g数据库的闪回功能实现找回丢失的数据。具体的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,658
精华内容 1,063
关键字:

数据库如何删除表数据