`
SerenaMing
  • 浏览: 7880 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

数据订正:insert select,删除重复数据,truncate

阅读更多

   1、insert select

在这次项目中新添了公司表,这个表初始数据得从员工表中获取。但是在insert select时有个问题,公司表中存在员工表里没有的字段,同时这个字段不能为空。
   在这里发现了insert select的新用法,如下:
insert into md_corp_info m      (corp_info_id,corp_name,corp_status ,creator,gmt_create,modifier,gmt_modified)
select t.corp_id,t.corp_name,0 ,t.user_id,t.gmt_create,t.modifier,sysdate

from md_udb_info t where t.is_admin='y'

md_udb_info中并没有corp_status字段,所以在select的时候可以设置一个默认值

 

2、删除重复数据

在员工表里面存在一些重复的公司id,且公司名又不同。select出来再插入公司表会出现corp_id冲突。所以得把员工表进行优化,删除重复数据(这是开发库,数据比较混乱)

     在这里使用count与rowid结合实现

delete from md_udb_info

where

/*获取在多个记录中存在的的corp_id*/

corp_id in (select corp_id from  md_udb_info group   by   corp_id    having   count(corp_id) > 1 )

/*去除行号最小的一个*/
and rowid not in (select min(rowid) from   md_udb_info   group by corp_id   having count(corp_id)>1)

 

3、删除表

由于与DB交流有误,后来在公司表中新添了一个字段。开发库中的数据得全部删除再重新导入
删除一个表的所有数据(PS:是表中数据,而不是表),可以使用truncate

     truncate table 表名

truncate作用与不带where的delete语句相同,但是它的速度更快而且占资源少

PS: 但是要特别注意的是,delete是dml(数据操纵语言),操作会被放到rollback segement中,有trigger的话也会被触发,而truncate是ddl(数据定义语言),立即执行,不能回滚,也不会触发trigger。所以没有备份的话用truncate要特别小心

 

分享到:
评论

相关推荐

    国家开放大学 MySQL数据库应用 实验训练3 数据增删改操作

    实验中,学生将学习使用 Insert 语句进行数据插入、Delete 语句删除数据、TRUNCATE TABLE 语句清空表数据、Update 语句修改数据。 1. 数据插入操作 在实验中,学生将学习使用 Insert 语句插入数据,包括单记录插入...

    ORACLE删除重复数据

    ORACLE 删除重复数据 在 ORACLE 数据库中,删除重复数据是一项常见的操作。重复数据的存在可能会导致数据不一致、查询效率下降等问题。今天,我们将介绍三种删除重复数据的方法,并对每种方法的执行时间进行比较。 ...

    ORACLE truncate 数据恢复

    在Oracle数据库中,`TRUNCATE TABLE`命令用于删除表中的所有数据,但它与`DELETE`语句有所不同。`TRUNCATE`操作是DDL(Data Definition Language)的一部分,而`DELETE`是DML(Data Manipulation Language)。由于`...

    oracle中truncate table后的数据恢复

    在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,它与`DELETE`语句不同,不记录任何删除操作,并且在大多数情况下执行速度更快。然而,一旦执行`TRUNCATE TABLE`,数据通常无法通过常规的...

    如何删除表中重复数据

    ### 如何删除表中重复数据 在数据库管理与维护的过程中,经常会遇到表中存在重复记录的问题,这不仅会造成数据冗余、浪费存储空间,还可能导致数据分析结果失真。因此,了解如何有效地删除表中的重复数据是一项重要...

    数据库SELECT语句总结

    TRUNCATE 语句也可以删除数据行,但是它将删除整个表的所有数据,例如:`TRUNCATE TABLE Students`。 查询数据 SELECT 语句用于查询数据库表中的数据。基本语法为:`SELECT <列名> FROM <表名> [WHERE <查询条件...

    oracle中如何删除重复数据

    在Oracle数据库中,删除重复数据是一项常见的数据清洗任务,尤其当表设计不当时,重复数据可能导致数据不一致和分析错误。以下将详细解释如何在Oracle中处理这两种类型的重复数据问题:部分字段重复和完全重复记录。...

    oracle删除重复数据的几种方法

    oracle 删除重复数据的几种方法 在 Oracle 中,删除重复的数据是一种常见的操作。delete 操作可以用来删除重复的数据,但是需要根据实际情况选择合适的方法。下面将介绍四种删除重复数据的方法,每种方法都有其优...

    如何高效删除Oracle数据库中的重复数据

    ### 如何高效删除Oracle数据库中的重复数据 在Oracle数据库管理中,经常会出现因各种原因导致的数据重复问题。这些重复数据不仅占用存储空间、降低查询效率,还可能导致数据分析时出现错误的结果。因此,学会如何...

    oracle数据库删除数据Delete语句和Truncate语句的对比.docx

    Oracle 数据库删除数据 Delete 语句和 Truncate 语句的对比 Delete 语句和 Truncate 语句是 Oracle 数据库中两种常用的删除数据的方法,但是它们之间存在着明显的差异。 一、Delete 语句 Delete 语句是一种 DML...

    SAP数据表大全ABAP数据表大全

    - TRUNCATE TABLE:清空数据表的所有记录,但保留表结构。 3. **ABAP的数据表视图**: - 选择视图:基于一个或多个表创建逻辑视图,用于简化复杂的查询。 - 定义视图:静态定义,不能动态改变。 - 动态视图:...

    SQL语句(增删改查

    2. **使用`INSERT SELECT`语句将现有表中的数据添加到已有的新表中** 语法:`INSERT INTO <已有的新表> (列名) SELECT <原表列名> FROM <原表名>` 示例:`INSERT INTO tongxunlu (姓名, 地址, 电子邮件) SELECT ...

    实验训练3数据增删改操作.docx

    在本实验训练中,主要涉及的是关系型数据库管理系统MySQL中的数据操作,包括数据的增加(Insert)、删除(Delete)和修改(Update),这些都是数据库管理的基础且重要的操作。实验旨在加深对这些SQL语句的理解和应用...

    实验训练3 数据增删改操作

    例如,在 autoparts 表中,用户可以使用以下命令批量追加数据:Insert into autoparts select * from autoparts copy 11;该命令将 autoparts 表中的数据批量增加 11 条。 实验 3-2 数据删除: 在实验 3-2 中,用户...

    oracle下如何删除重复数据的几种方法

    ### Oracle 下删除重复数据的方法及分析 #### 一、部分字段重复数据的处理 ##### 查询重复数据 在Oracle数据库中,经常会遇到表中存在部分字段重复的情况。为了找到这些重复的记录,我们可以使用以下SQL语句: `...

    Oracle查询重复数据与删除重复记录方法(txt)

    ### Oracle查询重复数据与删除重复记录方法 在Oracle数据库中,有时我们需要找出并处理重复的数据。这不仅可以提高数据质量,还能提升查询效率。本文将详细介绍几种常用的查询和删除Oracle数据库中重复记录的方法。...

    SQL常用增删改查

    语法:insert into <已有的新表> <列名> select <原表列名> from <原表名> 例:insert into addressList ('姓名','地址','电子邮件')select name,address,email from Students 注意:查询得到的数据个数、顺序、...

    DB2清空表里所有数据.doc

    在 TOAD 这样的数据库管理工具中,你可以编写如下 SQL 语句来删除 Schema 名称下的表中的所有数据: ```sql DELETE FROM Schema 名.表名; ``` 随后,你需要提交(COMMIT)这个事务,以确保更改被永久保存: ```...

    大数据知识点mysql数据库

    * 插入数据:Insert [into] 表名 (列名 1,列名 2….) values(值 1,值 2….); * 插入数据:Insert [into] 表名 values(值 1,值 2….); * 修改表数据:Update 表名 set 列名=值; * 修改表数据:Update 表名 set ...

    C#,SQL常用基础语法

    - **使用TruncateTable删除数据** - **语法**: `Truncate Table 表名` - **示例**: `Truncate Table Students` #### 查询数据 - **基本语法**: `Select 列名 From 表名 where 查询条件表达式 Order by 排序的...

Global site tag (gtag.js) - Google Analytics