修改、删除数据记录(DELETE/UPDATE)

来源:岁月联盟 编辑:zhuzhu 时间:2009-01-11
有时,希望除去某些记录或更改它们的内容。DELETE 和 UPDATE 语句令我们能做到这一点。

用update修改记录

UPDATE tbl_name SET 要更改的列

WHERE 要更新的记录

这里的 WHERE 子句是可选的,因此如果不指定的话,表中的每个记录都被更新。

例如,在pet表中,我们发现宠物Whistler的性别没有指定,因此我们可以这样修改这个记录:

mysql> update pet set sex=’f’ where name=” Whistler”;

用delete删除记录

DELETE 语句有如下格式:

DELETE FROM tbl_name WHERE 要删除的记录

WHERE 子句指定哪些记录应该删除。它是可选的,但是如果不选的话,将会删除所有的记录。这意味着最简单的 DELETE 语句也是最危险的。
这个查询将清除表中的所有内容。一定要当心!

为了删除特定的记录,可用 WHERE 子句来选择所要删除的记录。这类似于 SELECT 语句中的 WHERE 子句。

mysql> delete from pet where name=”Whistler”;

可以用下面的语句清空整个表:

mysql>delete from pet;

总结

本节介绍了两个SQL语句的用法。使用UPDATE和DELETE语句要十分小心,因为可能对你的数据造成危险。尤其是DELETE语句,很容易会删除大量数据。使用时,一定小心。

思考题

1、请亲自按照本章所述的步骤,让MySQL服务器在Linux系统启动时,自动启动。并尝试其它启动、重启、关闭服务器的方法。

2、现在有一个位于主机database.domain.net的MySQL服务器,用root用户的身份,密码为newpass,连接到数据库test。如何给出合适的命令行?如果使用选项文件,如何添加选项?

3、在test数据库中建立一个本章举例中所述的表pet,其结构如下所述:

name:30个宽度的定长字符串

owner:30个宽度的定长字符串

species:10个宽度的定长字符串

sex:由m和f组成的非空枚举类型

birth:date类型

death:date类型

4、本章中pet表的数据录入表中:

+----------+--------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

+----------+--------+---------+------+------------+------------+

| Fluffy | Harold | cat | f | 1993-02-04 | NULL |

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |

| Fang | Benny | dog | m | 1990-08-27 | NULL |

| Bowser | Diane | dog | m | 1990-08-31 | 1995-07-29 |

| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |

| Slim | Benny | snake | m | 1996-04-29 | NULL |

| Puffball | Diane | hamster | f | 1999-03-30 | NULL |

+----------+--------+---------+------+------------+------------+

请把数据记录到一个数据文件中,然后使用LOAD DATA INFILE语句装载数据。提示:如果在Windows环境中,那么文件的换行符是”/r/n”。

如果是使用实用程序mysqlimport命令行如何书写。