有时候,会需要删除某些行,或者修改其内容。这是候便需要用到DELETE语句和UPDATE语句。

1.  DELETE 语句的基本格式如下所示:

DELETE  FROM tbl_name
WHERE which rows to delete;

其中,WHERE子句是可选的,它用于指定需要删除掉哪些行。如果没有WHERE 子句,那么将删除表里面的所有行。这意味着,越简单的DELETE语句越危险,例如下面的语句:

DELETE FROM tbl_name

它会彻底删除表里的内容,因此务必要小心使用。

如果不清楚某条DELETE语句到底会删除哪些行,那么最好把这条语句的WHERE子句放到一条SELECT 语句里,看看这条SELECT 语句能查出哪些行。这有助于确认:它们的确是你想要删除的那些行,而且只有这些,不能多也不能少。

如下是一个使用示例:

mysql> select * from student;
+--------+-----+------------+
| name | sex | student_id |
+--------+-----+------------+
| Jim | M | |
| Tom | M | |
| Lily | F | |
| Lucy | F | |
| Travis | M | |
| Steve | M | |
+--------+-----+------------+
rows in set (0.00 sec) mysql> delete from student where sex='F';
Query OK, rows affected (0.01 sec) mysql> select * from student;
+--------+-----+------------+
| name | sex | student_id |
+--------+-----+------------+
| Jim | M | |
| Tom | M | |
| Travis | M | |
| Steve | M | |
+--------+-----+------------+
rows in set (0.00 sec)

2. 如果想要修改已有记录行,则需要使用UPDATE语句,其基本格式如下:

UPDATE  tbl_name

SET  which columns to change

WHERE which rows to update;

这里的WHERE子句的情况与DELETE语句里的相似,它是可选的,因此在没有指定它时,会更新表里的每一行。例如,下面的语句会把每一位学生的 name 更改为 George:

mysql> UPDATE student SET name='George';

很显然,必须谨慎对待这类查询,所以通常情况下都需要加上一个WHERE子句,用它来更具体地指出需要更行那些行。

假设在 student 表里添加了一行,但忘记指定 sex 列的内容,默认地,该列会被设置为 'F':

mysql> INSERT INTO student (name)
-> VALUES('Julian');
Query OK, row affected (0.00 sec) mysql> SELECT * FROM student;
+--------+-----+------------+
| name | sex | student_id |
+--------+-----+------------+
| Jim | M | |
| Tom | M | |
| Travis | M | |
| Steve | M | |
| Hellen | M | |
| Julian | F | |
+--------+-----+------------+
rows in set (0.00 sec)

此时,可以用一条UPDATE语句来进行修复,其中包含一条WHERE子句,用以标识需要更新的那一行:

mysql> UPDATE student
-> SET sex='M'
-> WHERE name='Julian';
Query OK, row affected (0.00 sec)
Rows matched: Changed: Warnings: mysql> SELECT * FROM student;
+--------+-----+------------+
| name | sex | student_id |
+--------+-----+------------+
| Jim | M | |
| Tom | M | |
| Travis | M | |
| Steve | M | |
| Hellen | M | |
| Julian | M | |
+--------+-----+------------+
rows in set (0.00 sec)

最新文章

  1. 使用safari对webview进行调试
  2. [转载]SVN使用教程
  3. mysql查看表使用的数据库引擎
  4. response.sendRedirect()重新定向的乱码问题
  5. HDU 5001-Walk(概率dp)
  6. 出栈入栈动画demo
  7. Spark源码的编译过程详细解读(各版本)
  8. .NET程序集(Assembly)
  9. lnmp pathinfo问题
  10. Bool的转录功能
  11. 2017年5月12日15:10:46 rabbitmq不支持非阻塞调用服务器
  12. Mysql drop function xxxx ERROR 1305 (42000): FUNCTION (UDF) xxxx does not exist
  13. nginx gzip 以及 tcp 反向代理的 model
  14. (第8篇)实时可靠的开源分布式实时计算系统——Storm
  15. 【Python】【进程&线程】
  16. Centos 7搭建Gitlab服务器超详细(转)
  17. 2018/03/30 每日一个Linux命令 之 创建用户/密码
  18. e659. 缩放,剪取,移动,翻转图形
  19. 在 Xamarin.Forms 实现页面全屏显示
  20. 301重定向方法大全及SEO中网址规范化,看着不错先收下

热门文章

  1. JS 与 OC 交互
  2. jsoup 抓取省市区
  3. 51nod 1812 树的双直径 题解【树形DP】【贪心】
  4. 一些排序 (python实现)
  5. linux下获取系统时间 和 时间偏移
  6. vscode安装golang插件失败问题
  7. input中的内容改变时触发的事件
  8. android volley 发送 POST 请求
  9. MySQL 主重复 时时
  10. 在VIM中添加行号的方法