《MySQL必知必会学习笔记》:更新和删除数据
更新和删除数据
上篇博文介绍了下插入数据的几种方式。这篇博文就来讲述下更新和删除数据。
更新数据
更新(修改)表中的数据,使用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必知必会学习笔记》:更新和删除数据相关推荐
- mysql删除新添加数据,MySQL添加、更新与删除数据
添加.更新与删除数据 添加数据 为表中所有字段添加数据 INSERT INTO 表名(字段名1,字段名2,--) VALUES(值1,值2,--); insert into 表名 values(值1, ...
- 《MySQL必知必会》学习笔记十(增删改语句使用)------掌握部分
MySQL必知必会知识预览 第一章--了解SQL 第二章--MySQL简介 第三章--使用MySQL 第四章--检索数据 第五章--排序检索数据 第六章--过滤数据 第七章--数据过滤 第八章--用通 ...
- mysql必知必会_5天学完《MySQL必知必会》学习笔记之第四天
本篇知识点 更新删除数据.创建操纵表.视图.存储过程 更新和删除数据 使用UPDATE语句更新(修改)表中的数据: 更新表中特定行(使用WHERE语句 更新表中所有行 UPDATE语句以要更新的表名开 ...
- 5天学会mysql_5天学完《MySQL必知必会》学习笔记之第四天
本篇知识点 更新删除数据.创建操纵表.视图.存储过程 更新和删除数据使用UPDATE语句更新(修改)表中的数据:更新表中特定行(使用WHERE语句 更新表中所有行 UPDATE语句以要更新的表名开始, ...
- MySQL必知必会 学习笔记
mysql必知必会 了解mysql 什么是数据库 数据库:保存有组织的数据的容器(通常是一个文件或一组文件) 表 表是一种结构化的文件,可用来存储某种特定类型的数据 主键 一列(或一组列),其值能够唯 ...
- MYSQL必知必会学习笔记(二)
MYSQL必知必会四-五章--检索.排序 书中部分代码展示: ##第四第五章 SELECT prod_name FROM products; /*从products表中检索一个叫prod_name的列 ...
- mysql必知必会学习笔记(一)
MYSQL必知必会第三章--了解数据库和表 书中部分代码展示: CREATE DATABASE crashcourse; /*创建名为 crashcourse 的新数据库*/SHOW DATABASE ...
- 如何用mysql创建orders表_《MySQL必知必会》学习笔记
本书所用的表: 68.png 67.png 66.png 65.png 64.png 63.png 第一章:了解SQL 数据库:保存有组织的数据的容器(通常是一个文件或一组文件). 数据库软件:DBM ...
- mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)
站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...
最新文章
- 01H5-fe-html5-003智能表单下
- python图片内容长度识别_教你如何用几行Python代码识别图片文字--就是这么简单!...
- HDU 3966-Aragorn's Story 树链剖分+树状数组
- Storm精华问答 | storm与Hadoop区别?
- oracle 存储过程获取当前日期
- c语言可以调用汇编语言吗,C语言与汇编语言混编方式
- TreeSet有序集合
- 爬虫协程比线程爬取速度更快?
- 状态空间模型与传递函数的转换关系+例题
- 【状压DP】易懂讲解状态压缩/状态压缩DP
- linux应用程序故障排查,为Linux应用程序排查故障的另类方法
- Tinder 和 Potluck 的卡片风格实现
- AI落地的新范式,就“藏”在下一场软件基础设施的重大升级里
- 一年前,我来国企搞IT
- java怎么判断field类型_java技巧:反射判断field类型方法
- python爬虫疫情可视化
- [1064]旅途时间
- 热管理设计Taitherm (ex-Radtherm) v12.1.1 Win64 Linux64 2CD
- 一个Android下的自动下载歌词的代码
- 工程机械液压系统的组成及功能概述
热门文章
- 计算机一级wpsoffice知识点,2018年全国计算机一级wps office考试考什么内容
- Eigen/Matlab库矩阵运算方法
- 快手2020校园招聘秋招笔试--算法B试卷
- 【weex】第一次尝试,weex windows下的环境搭建到第一个完整的app
- 抖音超火:勇敢牛牛,不怕困难表情包全集
- 35岁,成就寥寥,为时已晚?(I am 35 and I haven't achieved much in life. Is it too late?)...
- IAP的无线版(stm32无线下载程序)(基于有线升级)
- React之mobx、mobx-react 入门
- Instant economics 即时经济 经济学人中英双语对照精读笔记
- 自学编程5个月找到了月薪12K的工作,我的方法值得大家借鉴