mysql系列(五)通过SQL语句更新和删除表中的数据

前言

上一章讲了怎么向表中插入数据,本文接着讲怎么更新数据和删除数据。学习本章前可以先学习上一章内容:mysql系列(四)插入数据,或者向你的数据库依次导入两个sql脚本:student.sql 和 insert.sql

1.更新数据

更新数据使用UPDATE语句,可以更新表中特定的行,也可以更新所有的行。注意不要省略WHERE子句,因为这样会更新表中的所有数据。

UPDATE语句非常容易使用,基本的UPDATE语句由三部分组成,分别是:

  • 要更新的表
  • 列名和他们的新值
  • 确定要更新行的过滤条件
UPDATE t_student SET student_name="张三丰" WHERE id= 1;

可以看到id=1的student_name列已经改为“张三丰”了:

更新多个列时,只需要用逗号分隔 列=值 组合:

UPDATE t_student SET student_name="张三",age=20 WHERE id= 1;

运行以上sql语句后,如图可以看到这两个列已经改变了:

  • UPDATE中可以使用子查询
  • 为了删除某个列值,可以设置它为NULL(假如表定义允许NULL值)
  • 使用UPDATE更新多行时,如果有一行发生错误,则整个UPDATE操作被取消。如果想即使发生错误也继续更新,可以使用IGNORE关键字。

2.删除数据

为了从一个表中删除数据,使用DELETE子句。可以删除表中特定的行,也可以删除所有行。

不要省略WHERE子句,否则将删除所有行。

DELETE FROM t_student WHERE student_name="张三";

运行以上sql语句后,如图可以看到student_name=”张三”的行已经没有了:

  • 删除表的内容而不是表:DELETE语句从表中删除行甚至是所有行,但是不包括表本身。
  • 更快的删除:如果想从表中删除所有行,可以使用TRUNCATE TABLE语句。它比DELETE速度更快,同样也能完成删除所有行的操作。(TRUNCATE实际上是删除原来的表并重新创建一个表,而不是逐行删除表中的数据)

更新或者删除的指导原则:

  • 除非确实打算删除或者更新所有行,否则绝对不要使用不带WHERE子句的UPDATE或者DELETE语句。
  • 保证每个表都有主键。
  • 先用SELECT进行测试,保证过滤的是正确的记录,以防编写的WHERE子句不正确。
  • 使用强制实施引用完整性的数据库,这样的MySQL将不允许删除具有与其他表相关联的数据的行。

猜你喜欢

转载自blog.csdn.net/zjx2016/article/details/80516736