目录
修改(Update)
删除(Delete)
本文主要介绍的是表的修改的删除,如果需要了解新增和查询的可以看:MYSQL 表的增删改查(上)-CSDN博客
修改(Update)
语法:
update 表名 set 列名 = 值 [where...] [order by...] [limit...];
这里选择和上篇文章一样的exam类,先进行全列查询看一下,
我们能够通过update方法来进行表中数据的修改。
例如,把 孙权同学 的数学成绩 修改为80;
执行的语句为:
update exam set math = 80 where name = '孙权';
其中 update exam set math = 80 是用来修改数据的,而 where name = ‘孙权’;是用来确定修改位置的。
注意: 注意关键字update的拼写,不是updata。
从修改后返回修改成功的标识里,能看到有一行匹配,那么如果有两行匹配会怎么样?
正好表里有两个孙悟空,如果 孙悟空 的数学成绩 改为88是什么结果?
可以看到,有2行结果匹配,并且两行结果均被改变。
多列修改
这里其实和前面的多列查询有些相似,是把set后面的一个语句换成多个。
例如,把宋公明的语文成绩改为60,数学成绩改为77。
注意:update操作时,如果不加where条件,修改的将是整张表的所有记录,是非常危险的操作。
通过一个例题可以把排序查询,条件查询和修改练习在一起:
把总成绩倒数前三的 3位同学 的 数学成绩 减去30分;
首先我们可以先看一下哪三位同学的总成绩为倒数前三,为了方便比较,这里把总分为null的给省略了,故只查询到10行。
select * from exam where chinese + math + english is not null order by chinese + math + english asc;
现在我们要进行该问题:
select * from exam where chinese + math + english is not null order by chinese + math + english asc;
可以看到前三列的数学成绩均减去30。
删除(Delete)
语法:
delete from 表名 [where...] [order by...] [limit...];
删除部分不是很难,但是对于删除方法的使用还是要谨慎再谨慎。
例如,还是上面的exam表,要把 孙悟空同学的成绩删去,按照习惯,我们先把表全列查询一下,
然后进行删除:
从结果可以看到,查询的行数从11行变成了9行,并且删除后的表中没有孙悟空同学。
到这里,表的增删改查简单部分算是结束,感谢支持。