有时,希望除去某些记录或更改它们的内容。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”。