MySQL数据中如何实现插入、更新与删除
小编给大家分享一下MySQL数据中如何实现插入、更新与删除,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
案例:创建表books,对数据进行插入、更新和删除操作,掌握数据表的基本操作。books表结构以及表中的记录如下表:
案例操作过程:
(1)创建数据表books,并按照表8.1所示的结构定义各个字段。
(2)将表8.2中的记录插入books表中。分别使用不同的方法插入记录。
(3)将小说类型(novel)的书的价格都增加5。
(4)将名称为EmmaT的书的价格改为40,并将note说明改为drama。
(5)删除库存为0的记录。
(免费学习推荐:mysql视频教程)
(1)、创建数据表books,并按照表8.1所示的结构定义各个字段。
mysql>createtablebooks->(->idint(11)notnullauto_incrementprimarykey,->namevarchar(50)notnull,->authorsvarchar(100)notnull,->pricefloatnotnull,->pubdateyearnotnull,->discountfloat(3,2)notnull,->notevarchar(255)null,->numint(11)notnulldefault0->);QueryOK,0rowsaffected(0.05sec)mysql>select*frombooks;Emptyset(0.05sec)
可以看到表为空,下面向表中插入记录:
(2)、将表8.2中的记录插入books表中。分别使用不同的方法插入记录。①指定所有字段名称插入记录,SQL语句如下;
mysql>insertintobooks->(id,name,authors,price,pubdate,discount,note,num)->values(1,'TaleofAAA','Dicks',23,'1995',0.85,'novel',11);QueryOK,1rowaffected(0.05sec)
②不指定字段名称插入记录,SQL语句如下:
mysql>insertintobooks->values(2,'EmmaT','Janelura',35,'1993',0.70,'joke',22);QueryOK,1rowaffected(0.05sec)mysql>select*frombooks;+----+-------------+-----------+-------+---------+----------+-------+-----+|id|name|authors|price|pubdate|discount|note|num|+----+-------------+-----------+-------+---------+----------+-------+-----+|1|TaleofAAA|Dicks|23|1995|0.85|novel|11||2|EmmaT|Janelura|35|1993|0.70|joke|22|+----+-------------+-----------+-------+---------+----------+-------+-----+2rowsinset(0.00sec)
③同时插入多条记录
mysql>insertintobooks->values(3,'StoryofJane','JaneTim',40,'2001',0.81,'novel',0),->(4,'LoveyDay','GeorgeByron',20,'2005',0.85,'novel',30),->(5,'OldLand','HonoreBlade',30,'2010',0.60,'law',0),->(6,'TheBattle','UptonSara',33,'1999',0.65,'medicine',40),->(7,'RoseHood','RichardKale',28,'2008',0.90,'cartoon',28);QueryOK,5rowsaffected(0.05sec)Records:5Duplicates:0Warnings:0mysql>select*frombooks;+----+---------------+--------------+-------+---------+----------+----------+-----+|id|name|authors|price|pubdate|discount|note|num|+----+---------------+--------------+-------+---------+----------+----------+-----+|1|TaleofAAA|Dicks|23|1995|0.85|novel|11||2|EmmaT|Janelura|35|1993|0.70|joke|22||3|StoryofJane|JaneTim|40|2001|0.81|novel|0||4|LoveyDay|GeorgeByron|20|2005|0.85|novel|30||5|OldLand|HonoreBlade|30|2010|0.60|law|0||6|TheBattle|UptonSara|33|1999|0.65|medicine|40||7|RoseHood|RichardKale|28|2008|0.90|cartoon|28|+----+---------------+--------------+-------+---------+----------+----------+-----+7rowsinset(0.00sec)(3)、将小说类型(novel)的书的价格都增加5。
mysql>updatebooks->setprice=price+5->wherenote='novel';QueryOK,3rowsaffected(0.05sec)Rowsmatched:3Changed:3Warnings:0mysql>selectid,name,price,note->frombooks->wherenote='novel';+----+---------------+-------+-------+|id|name|price|note|+----+---------------+-------+-------+|1|TaleofAAA|28|novel||3|StoryofJane|45|novel||4|LoveyDay|25|novel|+----+---------------+-------+-------+3rowsinset(0.00sec)(4)、将名称为EmmaT的书的价格改为40,并将note说明改为drama。
mysql>updatebooks->setprice=40,note='drama'->wherename='EmmaT';QueryOK,1rowaffected(0.05sec)Rowsmatched:1Changed:1Warnings:0mysql>selectname,price,note->frombooks->wherename='EmmaT';+-------+-------+-------+|name|price|note|+-------+-------+-------+|EmmaT|40|drama|+-------+-------+-------+1rowinset(0.00sec)(5)、删除库存为0的记录。
mysql>delete->frombooks->wherenum=0;QueryOK,2rowsaffected(0.05sec)mysql>select*->frombooks->wherenum=0;Emptyset(0.00sec)
几个小问题
1、插入记录时可以不指定字段名称吗?
不管使用哪种insert语法,都必须给出values的正确数目。如果不提供字段名,则必须给每个字段提供一个值,否则将产生一条错误信息。
如果要在insert操作中省略某些字段,那么这些字段需要满足一定条件:该列定义为允许空值;或表定义时给出默认值,若不给出则使用默认值。
2、更新或者删除表时必须指定where子句吗?
所有的update和delete语句全都在where子句中指定了条件。如果省略where子句,则update或delete将被应用到表中所有的行。因此,除非确实打算更新或删除所有记录,否则要注意使用不带where子句的update或delete语句。
建议在对表进行更新和删除操作之前,使用select语句确认需要删除的记录,以免造成无法挽回的结果。
以上是“MySQL数据中如何实现插入、更新与删除”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。