这篇文章主要介绍了MySQL中如何更新数据以及删除数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。


(1)、更新数据

MySQL中使用update语句更新表中的记录,可以更新特定的行或者同事更新所有的行,基本语法如下:

updatetable_namesetcolumn_name1=value1,column_name2=value2,.....,column_namen=valuenwhere(condition);

【例1】在person表中,更新id值为11的记录,将age字段值改为15,将name字段值改为LimMing,SQL语句如下;

mysql>updateperson->setage=15,name='LiMing'->whereid=11;QueryOK,1rowaffected(0.05sec)Rowsmatched:1Changed:1Warnings:0mysql>select*frompersonwhereid=11;+----+--------+------+---------+|id|name|age|info|+----+--------+------+---------+|11|LiMing|15|student|+----+--------+------+---------+1rowinset(0.00sec)

保证update以where子句结束,通过where子句指定被更新的记录所需要满足的条件,如果忽略where子句,MySQL将更新表中所有的行。

【例2】在person表中,更新age值为19-22的记录,将info字段值都改为student,SQL语句如下:

mysql>select*frompersonwhereagebetween19and22;+----+---------+------+------------+|id|name|age|info|+----+---------+------+------------+|1|Green|21|Lawyer||2|Suse|22|dancer||4|Willam|20|sportsman||7|Dale|22|cook||9|Harry|21|magician||10|Harriet|19|pianist|+----+---------+------+------------+6rowsinset(0.00sec)mysql>updatepersonsetinfo='student'whereagebetween19and22;QueryOK,0rowsaffected(0.00sec)Rowsmatched:0Changed:0Warnings:0mysql>select*frompersonwhereagebetween19and22;+----+---------+------+---------+|id|name|age|info|+----+---------+------+---------+|1|Green|21|student||2|Suse|22|student||4|Willam|20|student||7|Dale|22|student||9|Harry|21|student||10|Harriet|19|student|+----+---------+------+---------+6rowsinset(0.00sec)


(2)、删除数据

从数据表删除数据使用delete语句,允许使用where子句指定删除条件。delete语句的基本语法格式如下;

deletefromtable_name[where<condition>]

table_name指定要执行删除操作的表。

"where"为可选参数,指定删除条件,如果没有,delete语句将删除表中的所有记录。

【例1】在person表中,删除id等于11的记录。

mysql>select*->fromperson->whereid=11;+----+--------+------+---------+|id|name|age|info|+----+--------+------+---------+|11|LiMing|15|student|+----+--------+------+---------+1rowinset(0.00sec)mysql>deletefromperson->whereid=11;QueryOK,1rowaffected(0.05sec)mysql>select*->fromperson->whereid=11;Emptyset(0.00sec)

【例2】在person表中,使用delete语句同时删除多条记录,在前面update语句中将age字段值为19-22的记录的info字段值修改为student,在这里删除这些记录,SQL语句如下:

mysql>select*frompersonwhereagebetween19and22;+----+---------+------+---------+|id|name|age|info|+----+---------+------+---------+|1|Green|21|student||2|Suse|22|student||4|Willam|20|student||7|Dale|22|student||9|Harry|21|student||10|Harriet|19|student|+----+---------+------+---------+6rowsinset(0.00sec)mysql>deletefrompersonwhereagebetween19and22;QueryOK,6rowsaffected(0.05sec)mysql>select*frompersonwhereagebetween19and22;Emptyset(0.00sec)

【例3】删除person表中所有记录,SQL语句如下:

mysql>select*fromperson;+----+---------+------+-----------+|id|name|age|info|+----+---------+------+-----------+|3|Mary|24|Musician||5|Laura|25|NULL||6|Evans|27|secretary||8|Edison|28|singer||12|Beckham|31|police|+----+---------+------+-----------+5rowsinset(0.00sec)mysql>deletefromperson;QueryOK,5rowsaffected(0.05sec)mysql>select*fromperson;Emptyset(0.00sec)

如果想删除表中的所有记录,还可以使用truncate table语句,truncate将直接删除原来的表,并重新创建一个表,其语法格式为truncate table table_name。truncate直接删除表而不是删除记录,因此执行速度比delete快。

感谢你能够认真阅读完这篇文章,希望小编分享的“MySQL中如何更新数据以及删除数据”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!