PHP学习网
当前位置: 首页 > 数据库 > sql学习笔记 >

MYSQL 的基本操作(删除数据)

时间:2009-07-13 22:42 点击:
除了更新现有的记录之外,你可能需要采取的另外一个步骤是彻底从数据库中删除记录。要执行该操作,可以使用DELETE命令。 DELETE FROM tablename 这样编写的命令将删除表中的每一条记录

除了更新现有的记录之外,你可能需要采取的另外一个步骤是彻底从数据库中删除记录。要执行该操作,可以使用DELETE命令。

DELETE FROM tablename

这样编写的命令将删除表中的每一条记录,再次使之为空。一旦删除了一条记录,就无法再取回它。

文本框:
图5-31  user_id将用于在DELETE查询中引用这条记录
在大多数情况下,你都希望删除单个行,而不是删除所有行。为了执行该操作,可以使用WHERE子句:

DELETE FROM tablename WHERE condition

删除记录

(1) 找到要删除记录的主键(参见图5-31)。

SELECT user_id FROM users

WHERE first_name='Peter'

AND last_name='Tork';

就像UPDATE示例一样,首先需要确定要为删除使用哪个主键。

(2) 预览在执行删除时将会发生什么(参见图5-32)。

图5-32  要预览DELETE查询的效果,首先运行一个语法上类似的SELECT查询

SELECT * FROM users

WHERE user_id = 8;

文本框:
图5-33  从表中删除一条记录
防止错误删除的一种确实很好的技巧是,首先使用SELECT *而不是DELETE运行查询。这个查询的结果将表示哪些行将会受到删除的影响。

(3) 删除记录(参见图5-33)。

DELETE FROM users

WHERE user_id = 8 LIMIT 1;

文本框:
图5-34  其user_id是8的记录不再是这个表的一部分
如同更新一样,MySQL将报告查询的成功执行,以及有多少行将会受到影响。此时,无法恢复已删除的记录,除非事先备份了数据库。

即使SELECT查询(参见第(2)步和图5-32)只返回一行,也要格外小心,将LIMIT 1子句添加到DELETE查询中。

(4) 确认进行了更改(参见图5-34)。

SELECT user_id, first_name, last_name

FROM users ORDER BY user_id ASC;

也可以通过运行第(1)步中的查询来确认更改。

ü提示

l    清空一个表的首选方式是使用TRUNCATE:

TRUNCATE TABLE tablename

l    要删除表中的所有数据以及表本身,可以使用DROP TABLE:

DROP TABLE tablename

l    要删除整个数据库(包括其中的每一个表及其所有数据),可以使用:

DROP DATABASE databasename

------分隔线----------------------------