《MySQL必知必会学习笔记》:更新和删除数据
来源:互联网 发布:sql server服务器ip 编辑:程序博客网 时间:2024/06/10 01:25
更新和删除数据
上篇博文介绍了下插入数据的几种方式。这篇博文就来讲述下更新和删除数据。
更新数据
更新(修改)表中的数据,使用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学习笔记 第八讲:增加、删除、更新数据和备份还原
- Mysql必知必会(笔记)【插入数据,更新和删除数据,创建和操纵表,视图】
- MySQL学习笔记8(插入、更新、删除数据)
- MySQL数据库学习12-更新和删除数据
- mysql 学习笔记-插入、更新、删除
- mysql(六、 插入,更新和删除数据)
- MySQL 数据的插入、更新和删除
- [MYSQL -20]更新和删除数据
- 《MySQL入门很简单》学习笔记(11)之第11章插入、更新与删除数据(关键词:数据库/MySQL/插入数据/更新数据/删除数据)
- MySQL基础教程13-Mysql更新数据和删除数据
- MySQL学习之插入、更新和删除
- MySQL入门很简单-学习笔记 - 第11章 插入、更新与删除数据
- MySQL学习笔记之四:插入、更新与删除数据
- SQL 学习之 更新和删除数据
- MySQL插入数据与更新和删除数据.md
- 48.笔记 MySQL学习——多表删除和更新
- poj 1131 进制转换 Java高精度
- LinuxCNC+EtherCAT(1.1)~在debian上进行移植Etherlab的Master
- Hadoop - HDFS
- HINSTANCE HANDLE HWND 的区别及一般方法
- 自己工作中遇到的问题及解决总结
- 《MySQL必知必会学习笔记》:更新和删除数据
- 经典0-1背包基础注释
- Linux下搭建eclipse环境
- SDL画线 16位
- 关于OC中的小数精确计算---NSDecimalNumber
- Ubuntu14.04安装google浏览器
- Android中的Surface和SurfaceView之我见
- CodeForces 366B:Dima and To-do List【水】
- Linux服务器如何查看CPU占用率、内存占用、带宽占用