更新和删除数据

上篇博文介绍了下插入数据的几种方式。这篇博文就来讲述下更新和删除数据。

更新数据

更新(修改)表中的数据,使用update语句。

更新数据一般采用如下两种方式:

  • 更新表中特定行的数据。
  • 更新表中所有行的数据。

作为一个老师,可能在登入成绩时,将某人的成绩登错了,应该怎么来修改呢?例如:更新student2表中name=’z’的mathScore成绩为99分的语句如下:

update student2 set mathScore=99 where name='z';

在更新数据时,一定要加上 where子句,否则,就会将表中所有的行数据进行了相同的更新。

如下就是更新了表中所有行的mathScore了99;

update student2 set mathScore=99;

因此,在使用update更新(修改)表中的数据时,一定要谨慎。因此在MySQL中是没有撤销命令的。

ignore关键字:如果用update语句更新多行,并且在更新这些行中的一行或多行时出一个错误,则整个update操作被取消(错误发生前更新的所有行被恢复到它们原来的值)。为了即使发生错误,因为继续进行更新,可使用ignore关键字,如下所有:
update ignore student2 …;

删除数据。

删除数据,使用delete语句。

删除数据一般采用如下两种方式:

  • 删除表中特定行的数据。
  • 删除表中所有行的数据。

例如:将表student2中的name=’z’的行数据删除,语句如下:

delete from student2 where name='z';


注意:一定要有where子句。否则会删除表中的所有行。

如下就是在没有where子句的删除语句。

delete from student2 ;//删除表中所有行数据。

如果我们真的要删除某个表中的数据时,《MySQL必知必会》这本书上介绍建议我们使用 truncate关键字来做。说这样性能会快点,因此,delete删除表中的数据是一行一行的删除,而truncate是直接删除此表,再新建一个表。

实践结果如下,

从结果可以看出,truncate student2 语句的执行时间比 delete from student2要慢一些;

分析了下原因:可能是表中的数据只有3行,而创建表需要的时间也是比较大的,因此效果就没有体现出来。如果数据比较多,创建表的时间相比删除很多行数据就可以被忽略了,truncate将会效果更好。

用delete只能以行为单位进行删除,如果我们要删除某列的值,应该怎么做呢?

解决方法是:利用update设置他为NULL(假如表定义允许NULL值);

例如

update student2 set mathScore=NULL where name='z';

小结

使用update或delete时所遵循的习惯如下:

1、除非确实打算更新和删除每一行,否则绝对不要使用不带where子句的update或delete语句。

2、在对update或delete语句使用where子句前,最好先用select进行测试,保证它过滤的你想要过滤的数据,以防编写的where子句不正确。

MySQL没有撤销按钮。应该非常小心的使用update和delete,否则会错误的更新和删除了表中的数据。

《MySQL必知必会学习笔记》:更新和删除数据相关推荐

  1. mysql删除新添加数据,MySQL添加、更新与删除数据

    添加.更新与删除数据 添加数据 为表中所有字段添加数据 INSERT INTO 表名(字段名1,字段名2,--) VALUES(值1,值2,--); insert into 表名 values(值1, ...

  2. 《MySQL必知必会》学习笔记十(增删改语句使用)------掌握部分

    MySQL必知必会知识预览 第一章--了解SQL 第二章--MySQL简介 第三章--使用MySQL 第四章--检索数据 第五章--排序检索数据 第六章--过滤数据 第七章--数据过滤 第八章--用通 ...

  3. mysql必知必会_5天学完《MySQL必知必会》学习笔记之第四天

    本篇知识点 更新删除数据.创建操纵表.视图.存储过程 更新和删除数据 使用UPDATE语句更新(修改)表中的数据: 更新表中特定行(使用WHERE语句 更新表中所有行 UPDATE语句以要更新的表名开 ...

  4. 5天学会mysql_5天学完《MySQL必知必会》学习笔记之第四天

    本篇知识点 更新删除数据.创建操纵表.视图.存储过程 更新和删除数据使用UPDATE语句更新(修改)表中的数据:更新表中特定行(使用WHERE语句 更新表中所有行 UPDATE语句以要更新的表名开始, ...

  5. MySQL必知必会 学习笔记

    mysql必知必会 了解mysql 什么是数据库 数据库:保存有组织的数据的容器(通常是一个文件或一组文件) 表 表是一种结构化的文件,可用来存储某种特定类型的数据 主键 一列(或一组列),其值能够唯 ...

  6. MYSQL必知必会学习笔记(二)

    MYSQL必知必会四-五章--检索.排序 书中部分代码展示: ##第四第五章 SELECT prod_name FROM products; /*从products表中检索一个叫prod_name的列 ...

  7. mysql必知必会学习笔记(一)

    MYSQL必知必会第三章--了解数据库和表 书中部分代码展示: CREATE DATABASE crashcourse; /*创建名为 crashcourse 的新数据库*/SHOW DATABASE ...

  8. 如何用mysql创建orders表_《MySQL必知必会》学习笔记

    本书所用的表: 68.png 67.png 66.png 65.png 64.png 63.png 第一章:了解SQL 数据库:保存有组织的数据的容器(通常是一个文件或一组文件). 数据库软件:DBM ...

  9. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)

    站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...

最新文章

  1. 01H5-fe-html5-003智能表单下
  2. python图片内容长度识别_教你如何用几行Python代码识别图片文字--就是这么简单!...
  3. HDU 3966-Aragorn's Story 树链剖分+树状数组
  4. Storm精华问答 | storm与Hadoop区别?
  5. oracle 存储过程获取当前日期
  6. c语言可以调用汇编语言吗,C语言与汇编语言混编方式
  7. TreeSet有序集合
  8. 爬虫协程比线程爬取速度更快?
  9. 状态空间模型与传递函数的转换关系+例题
  10. 【状压DP】易懂讲解状态压缩/状态压缩DP
  11. linux应用程序故障排查,为Linux应用程序排查故障的另类方法
  12. Tinder 和 Potluck 的卡片风格实现
  13. AI落地的新范式,就“藏”在下一场软件基础设施的重大升级里
  14. 一年前,我来国企搞IT
  15. java怎么判断field类型_java技巧:反射判断field类型方法
  16. python爬虫疫情可视化
  17. [1064]旅途时间
  18. 热管理设计Taitherm (ex-Radtherm) v12.1.1 Win64 Linux64 2CD
  19. 一个Android下的自动下载歌词的代码
  20. 工程机械液压系统的组成及功能概述

热门文章

  1. 计算机一级wpsoffice知识点,2018年全国计算机一级wps office考试考什么内容
  2. Eigen/Matlab库矩阵运算方法
  3. 快手2020校园招聘秋招笔试--算法B试卷
  4. 【weex】第一次尝试,weex windows下的环境搭建到第一个完整的app
  5. 抖音超火:勇敢牛牛,不怕困难表情包全集
  6. 35岁,成就寥寥,为时已晚?(I am 35 and I haven't achieved much in life. Is it too late?)...
  7. IAP的无线版(stm32无线下载程序)(基于有线升级)
  8. React之mobx、mobx-react 入门
  9. Instant economics 即时经济 经济学人中英双语对照精读笔记
  10. 自学编程5个月找到了月薪12K的工作,我的方法值得大家借鉴