2017.11.16 SQL删除语句

SQL的删除语句

大家好,我是IT修真院郑州分院第七期的学员冯亚超,一枚正直纯洁善良的JAVA程序员 今天给大家分享一下,SQL的删除语句.


1.背景介绍


“数据库” ---起源于 20 世经 90 年代,当时美国为了战争的需要,把各种情报收集在一起,存储隐藏在计算机内,叫做 Data Base(DB)现在,一切活动都离不开数据。

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

“SQL” ----是用于访问和处理数据库的标准的计算机语言,简称结构化查询语言

SQL中的删除语句一共有四种,分别对应不同的功能


2.知识剖析


四种删除语句

delete:

delete from table_name where some_column=some_value

用于删除表中的行

delete from table_name/delete * from table_name;

用于删除表中所有的行,也就是删除表中所有的数据

drop:

drop table table_name;

用于删除整个表,包括表结构

drop database database_name;

用于删除数据库

alter:

alter table table_name drop column column_name;

用于删除表中的列

alter table table_name drop index index_name;

用于删除表中的索引

truncate:

truncate table table_name;

用于删除表内的数据


3.常见问题


四种删除语句中哪些功能是相同的?

哪些功能是不同的?

这几种删除语句的区别?

删除后可以恢复吗?哪些删除是可以恢复的?


4.解决方案


哪些功能是不同的?

1.truncate table table_name 删除表内容释放表空间保留表结构(即:只删除表内的数据,不删除表本身。相当于Delete语句不写where子句一样),不使用事务处理即和事务无关

2.delete table table_name [where子句] delete属于数据操作语言(DML,data maintain Language),不能自动提交事务,需commit提交 这个操作会放到 rollback segement 中,事务提交之后才生效; 如果有相应的 trigger,执行的时候将被触发。 delete 语句不影响表所占用的 extent,高水线(high watermark)保持原位置不动

3. drop table table_name drop属于数据定义语言(DDL,data define language)可以自动提交事务; drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index)【删除表数据同时删除表结构】; 依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。

这几种删除语句的区别?

在速度上,一般来说,drop> truncate > delete.

如果想要删除表,用drop;

如果想要保留该表,但要删除所有记录,而且和事务无关时,用truncate;

当你要删除部分记录时,或者想触发trigger,用delete,注意要带上where子句.

注意: 对于有主外键关系的表,不能使用truncate而应该使用不带where子句的delete语句,由于truncate不记录在日志中,不能够激活触发器

删除后可以恢复吗?哪些删除是可以恢复的?

数据库删除后的数据想要恢复分三种情况:

1.有没有备份?

2.有没有开启binlog?

3.如果两者都没开,只能使用第三方恢复软件,或者找专业的数据恢复公司


5.编码实战



undefined_腾讯视频

PPT

6.扩展思考

关于alter语句

alter语句属于drop语句的分支


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

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !

师兄带你入门!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL SELECT 语句 一、查询SQL SELECT 语法 (1)SELECT 列名称 FROM 表名称 (2...
    有钱且幸福阅读 5,759评论 0 33
  • 系统用户: 1.sys system(sys权限最高) 2.sysman(操作企业管理器) 密码是安装的时候输入的...
    3hours阅读 1,621评论 0 0
  • 关系型数据库和SQL SQL语言的三个部分DML:Data Manipulation Language,数据操纵语...
    Awey阅读 1,984评论 0 13
  • mysql和oracle语法都差不多,但还是有差别,查阅资料后我总结了一套完整的sql语句大全,供初学者学习 1....
    谭鱼鱼阅读 1,884评论 0 4
  • 猜字谜 今天我和爸爸散步的时候,突然有一位老爷爷就在后面问我想不想和我做个游戏叫“猜字谜”我说好呀好呀!然后爷爷就...
    犇犇狗阅读 177评论 0 0