大家好,今天来介绍数据库删除语句delete用法的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
数据库删除语句
数据库删除表语句有:delete语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除陪拿操作作为事务记录在日志中保存。drop(删除表):删除内容和定义,释放空间。truncate(清空表中的数据):删除内容、释放空间但不删芦厅搭除定义(保留表的数据结构)。
数据库删除表语句有:
1、delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存。
2、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉。以后要新增数据是不可能的,除非新增一个表。
3、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与伏芦drop不同的是,只是清空表数据而已。
SQL实战新手入门:删除数据DELETE语句(1)
删除数据 DELETE语句( )
删除不需要的信息与一开始时录入这些信息同等重要 在LIBRARY数据库的例悉扮子中 可能丢失或出售了一本图书 那么这本图书的信息也就无须再保存在数据库中 SQL提供了DELETE语句用于处理删除记录的情形 要删除一个表中的所有记录 可以使用下面的语句
DELETE FROM myLibrary;
在一些RDBMS中 无须使用FROM关键字 只需要给出表名即可 但某些RDBMS则坚持要求使用FROM关键字 执行上面的DELETE语句之后 表中的记录将被全部删除 在数据库中只剩下一个空表 读者可以从 wrox 或者 agilitator 下载相同的INSERT脚本 重新填充表中的记录
删除的记录还可以恢复吗?这要视情况而定 为了取消对RDBMS中数据执行的操作 必须在一个事务上下文中执行所有操作 最后 要么提交所有的更改(使之永久化) 要么回滚这些操作(将数据恢复为初始状态) 第 章将讨论关于事务支持的问题
如果将DELETE语句与之前介绍过的WHERE子句结合 就可以使删除操作具有更多的选择性 要删除特定的记录集合 只需要在WHERE子句中定义删除记录的标准 下面的查询将不加区分地删备粗除满足WHERE子句中删除条件的所有记录
DELETE FROM myLibrary
WHERE publisher = Wiley ;
执行上面的DELETE语句之后 将删除表中所有由Wiley出版社出版的图睁滚灶书 但这也许并不是我们需要的操作 如何才能从表中成百上千的记录中删除一条特定的记录呢?这就需要指定一组匹配条件 使得满足所有条件的记录在表中是唯一的 例如下面的例子
DELETE FROM myLibrary
WHERE publisher = Wiley AND pages = ;
这样的筛选条件一定是唯一的吗?实际上 尽管可能性不大 但对于一个较大的数据库来说 存在一条以上的记录同时满足以上两个条件也并非不可能 更好的办法是使用ISBN号 因为它是唯一的
DELETE FROM myLibrary
WHERE i * n= ;
如果记录中不存在一个可作为唯一标识的标志 又该如何处理呢?有其他几种办法可以确保一条记录在表中的唯一性(请参见第 章和第 章) 但这里先介绍一个特殊列的概念 与其他列相比 特殊列的作用是唯一地标识表中的一条记录 也称为主键 假如在将记录输入到表中时已经对这些记录进行了编号 那么这些编号就是引用特定记录的一个简便的办法 假如特殊列不允许出现重复的编号 那么在删除单条记录时就不存在歧义 遗憾的是 定义这样的列需要修改表的结构
试一试删除表中的记录
下面将删除Microsoft SQL Server 创建的表中的某些记录 请先重复本章第一个 试一试 练习中步骤( )到步骤( )的操作 以便为输入并执行SQL命令做好准备工作
( ) 下面的查询将删除MYLIBRARY表中的所有记录
USE library;
DELETE myLibrary
( row(s) affected)
( ) 单击位于上方工具栏中的Execute按钮 如之前的图 所示
( ) 重新插入下面的记录
USE library;
INSERT INTO myLibrary (title author book_language publisher pages author
publish_date i * n)VALUES ( SQL Bible Alex Kriegel English Wiley
Boris M Trukhnov April )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i * n) VALUES ( Microsoft SQL Server Weekend Crash Course Alex Kriegel
English Wiley October )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i * n) VALUES ( Mindswap Robert Sheckley English Orb Books May
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i * n) VALUES ( Jonathan Livingston Seagull Richard Bach English MacMillan
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i * n) VALUES ( A Short History of Nearly Everything Bill Bryson
English Broadway October )
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
lishixinzhi/Article/program/SQL/201311/16480
SQL实战新手入门:删除数据DELETE语句(2)
删除数据 DELETE语句( )
( ) 单击上方工具栏中的Execute按钮 如之前的图 所示谈逗枣
( ) 删除一组满足指定匹配条件的记录 删除不是Wiley出版社出版的图书 输入下面的SQL语句 并单击Execute按钮
含拆 DELETE myLibrary
WHERE publisher Wiley ;
( row(s) affected)
示例说明
提交给数据库引擎的SQL命令指示数据库删除MYLIBRARY表中的所有记录 执行该命令将从数据库中删除 条记录 为了继续练习 必须重新插入这些记录 使MYLIBRARY表中具有可用的数据
步骤( )演示了如何根据查询的WHERE子句中指定的条件选择性地从MYLIBRARY表中删除某些记录 在MYLIBRARY表的 条记录中 只有满足删除条件WHERE publisher Wiley 的 条记录被删除
要在表中添加一个新列 一种办法就是先删除整个表 然后再从头开始创建一个包含新列的表 实际上 在很长一段时间内 这都是很多RDBMS添加新列的唯一办法 现在 只需要修改表 插入一个新列即可(或者就修改列而言 也可以移除一个列) 尽管修改表的语法比较复杂 而且不同RDBMS之间存在显著的差别 但基本的语法却非常简单
ALTER TABLE myLibrary
ADD COLUMN book_id INTEGER;
上面的语句将向MYLIBRARY表中添加一个空列 该列的数据类型为INTEGER(对于计算机而言 它最擅长理解的就是数值 实际上计算机能理解的也就只有数值) 人类可读的所有字符 声音和图片在计算机内部都是以长长的二进制数值来表示的 和 构成的序列 要将数据添加到新列中 必须使用UPDATE语句 本章 节将专门介绍该语句
对于添加新列 某些RDBMS可能会具有显著不同的语法 例如 Microsoft SQL Server的ALTER语句中不需要使用COLUMN关键字 该语句本身就可以推断出需要添加什么 因此在SQL Server中 上面的指宽语句将是
ALTER TABLE myLibrary
ADD book_id INTEGER;
要从表中删除不需要的记录也非常简单 只需要使用DROP语句即可
ALTER TABLE myLibrary
DROP COLUMN book_id;
删除一个列时 只要知道该列的列名和包含该列的表名 无须知道数据类型 也无须有任何其他的限定符 当修改一个表的结构时 需要考虑一下它所造成的后果 特别是当表非空或者列已经被数据库中的其他表使用时 请参考本书第 章 第 章和第 章的相关内容
请注意DELETE语句与DROP语句的区别 使用DELETE语句可以删除表中的数据 而使用DROP语句将销毁数据库对象 例如表 视图 存储过程或数据库本身 在第 章中将介绍 这两个语句属于SQL语言的不同分支 它们分别属于数据操作语言和数据定义语言
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
lishixinzhi/Article/program/SQL/201311/16479
sql中如何使用DELETE语句删除表中的行
1、sql中使用DELETE 语句删除表中的行。按条件删除数据的基本语法是“DELETE FROM 表名称 WHERE 列名称 = 值”,这里以学生表举列,学生有姓名(name)和年龄(age)两列:
2、首先需要笑备猜查询张三的数据,输入sql语句“SELECT * FROM student WHERE `name` = ‘张三’”,即可查询到张三的数据:
3、然后输入删除碰型滚让学生张三数据的sql语句“DELETE FROM student WHERE `name` = ‘张三’就删除成功了: