`
jsjxqjy
  • 浏览: 118318 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

sql 语句练习(2)

阅读更多

删除users表中的重复数据
select distinct * into t from users
truncate table users
insert users select * from t
drop table t

注意:这里说的delete是指不带where子句的delete语句
相同点
truncate和不带where子句的delete, 以及drop都会删除表内的数据
不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
   显然drop语句将表所占用的空间全部释放
   truncate 语句缺省情况下将空间释放到 minextents个 extent,除非使用reuse storage; truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop>; truncate >; delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据
通俗的讲:
在实际应用中,三者的区别是明确的。
当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时(always with a WHERE clause), 用 delete.

<!--v:3.2-->

 

//查处唯一记录到临时表中

select distinct * into t from users
//删除users表所有记录

truncate table users

//把临时表记录插入到users表中 
insert users select * from t

//删除临时表
drop table t

分享到:
评论

相关推荐

    MySQL练习代码, sql语句练习2

    本资料包含的是"SQL语句练习2",旨在帮助用户深入理解和熟练掌握MySQL中的SQL查询语言。 SQL(Structured Query Language),结构化查询语言,是用于管理和处理关系数据库的标准语言。在“SQL语句练习2”中,我们...

    sql语句练习题(带答案版本)

    这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习

    最全sql查询语句练习题汇总(面试必备)

    最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习...

    经典的SQL语句练习

    经典的SQL语句练习

    数据库sql语句练习

    数据库SQL语句练习 本资源旨在通过若干SQL语句练习,帮助读者更好地理解数据库的各项数据操作。下面是相关知识点的详细解释: 1. 关系代数和SQL语言查询 在关系代数和SQL语言中,查询至少选修了一门其直接先行课...

    SQL语句练习题及答案

    ### SQL语句强化练习知识点详解 #### 一、简单查询 **知识点1:查询所有记录** - **描述**: 使用 `SELECT * FROM 表名` 可以查询表中的所有记录。 - **示例**: 查询所有学生的信息。 - **SQL语句**: `SELECT * ...

    MySQL SQL语句练习题及答案

    MySQL SQL语句练习题及答案 本资源提供了 MySQL SQL 语句的练习题及答案,涵盖了创建表、插入数据、删除数据、更新数据、查询数据等多方面的知识点。 一、创建表 在 MySQL 中,创建表使用 CREATE TABLE 语句。...

    SQL语句练习题

    SQL 语句练习题 本节课练习题目涵盖了 SQL 语句的各种知识点,旨在考察学生对 SQL 语句的掌握程度。练习题目包括关系运算、定义表操作、查询语句操作、表数据操作、视图操作、授权操作、索引操作、匹配操作和触发器...

    SQL语句练习及答案

    根据给定文件中的标题“SQL语句练习及答案”与描述“一个非常适合在笔试前看的SQL练习题。也可在在平时作为SQL语言练习题来使用”,我们可以看出这份材料主要包含了一系列针对SQL语言的练习题及其解答,适用于考前...

    3-SQL.rar_sql语句练习

    SQL语句练习、学生可以查看自学SQL相关语句的练习

    SQL语句练习大全

    DDL用来创建数据库中的各种对象,包括数据库模式、表、视图、索引、同义词、聚簇等,它的基本语句有:CREATE DATABASE、CREATE TABLE、CREATE VIEW、CREATE INDEX等。 (4)数据控制语言(DCL) DCL用来授予或回收...

    全国计算机二级(vf)sql语句练习

    全国计算机二级(vf)sql语句练习 本资源提供了多种SQL语句练习题,涵盖了基本的数据查询、数据归纳、数据排序、数据筛选等操作。每个练习题都提供了明确的需求和相应的解决方案,帮助学生更好地掌握SQL语句的使用...

    SQL语句练习提高

    【SQL语句练习提高】 在SQL中,查询和操作数据是其核心功能。以下通过给出的练习题目,我们将深入理解SQL的基本句式和用法。 28. 题目要求从`employee`表中抽取部门名称(depart_name),计算平均工资(avg(wage)...

    实验5 sql语句练习——图书馆数据库.docx

    实验5 sql语句练习——图书馆数据库.docx

    SQL语句练习系统

    2. **聚合函数**:在SQL语句练习系统中,你会接触到如COUNT、SUM、AVG、MAX和MIN等聚合函数,它们用于计算一组值的总数、总和、平均值、最大值和最小值。 3. **JOIN操作**:在处理多表数据时,JOIN语句至关重要。...

    经典sql语句练习

    "经典sql语句练习"这个压缩包提供了一套适合初学者的基础练习题,可以帮助你更好地理解和运用SQL语言。下面,我们将深入探讨SQL的基本概念、常用语句以及它们在实际中的应用。 SQL,全称为结构化查询语言,是用于...

    SQL语句练习册

    《SQL语句练习册》是一本专为程序员设计的实用教程,旨在帮助他们巩固和提升SQL语言技能。SQL,全称Structured Query Language,是用于管理关系数据库的强大工具,广泛应用于数据查询、更新、插入和删除等操作。对于...

    sql语句练习题单表+多表各四套

    "sql语句练习题单表+多表各四套"提供了一套全面的练习资源,旨在帮助你提升SQL技能,特别是针对MySQL数据库的使用。这个资源包含了四组单表练习题和四组多表练习题,这些题目设计得既实用又具有挑战性,能够让你在...

    经典SQL语句—练习

    以下是对标题“经典SQL语句—练习”和描述中涉及的一些基本知识点的详细说明: 1. **创建数据库**:使用`CREATE DATABASE`语句可以创建一个新的数据库,例如`CREATE DATABASE database-name`,这里的`database-name...

    Sql经典练习题库(附答案)

    以上练习题覆盖了SQL中的各种核心概念和技术,包括子查询、连接(JOIN)、聚合函数(如COUNT、SUM)、条件语句(如IN、ANY、ALL)等。这些练习有助于加深对SQL的理解,并提高解决实际问题的能力。

Global site tag (gtag.js) - Google Analytics