单表数据记录的更新、删除

  • update语句进行更新:更新特定的行、更新所有的行

语法格式:

uodate table_name set column_name1=value1, column_name2=value2,..., column_namen=valuenwhere(condition); 

/*更新满足条件的记录;如没有此句则更新所有行

 

案例:

 

为完成此案例,先在表中插入以下内容,执行:

use book;

/*图书类别表*/
/*insert into bookcategory(category,parent_id)values('计算机',0),('医学',0),('编程语言',1),('数据库',1),('儿科学',2);*/

/*图书信息表*/
insert into bookinfo(book_id,book_category_id,book_name,author,price,press,pubdate,store)
values
(20150201,3,'Java编程思想','(美)埃克尔',79.8,default,'2007-04-01',5),
(20150202,4,'PHP和MySQL开发','Luke Welling等',95,default,'2009-04-01',2),
(20150301,3,'Spring源码深度解析','郝佳',69,'人民邮电出版社','2013-09-01',3),
(20160801,5,'中医儿科学','汪受传',136,'人民卫生出版社','2013-09-01',3),
(20170401,5,'小儿推拿秘笈','李德修',24.5,'人民卫生出版社','2011-04-01',4);

/*读者信息表*/
insert into readerinfo(card_id,name,sex,age,tel,balance)
values
(210210199901011111,'张飞','女',18,'13566661111',300),
(210210199901012222,'李月','女',19,'13566662222',300),
(210210199901013333,'王鹏','男',20,'13566663333',300),
(210210199901014444,'刘鑫','男',21,'13566664444',300),
(210210199901015555,'杨磊','男',22,'13566665555',300);

然后实现我们的案例:

/*
身份证号为210210199901011111的读者,2017-11-29借走了图书编号为20150201的这本书,
根据业务需求向借阅信息表插入一条借阅信息,更新读者信息表中的余额和图书信息表的库存,要求如下:
1、借书的期限为1个月,
2、借书的费用为:书的价格*5%
3、图书信息表中图书编号为20150201这本书的库存-1
*/

/*插入借阅信息*/
insert into borrowinfo(book_id,card_id,borrow_date,return_date,status)
values
(20150201,210210199901011111,'2017-11-29','2017-12-29','否');


/*查询书的价格*/
select price from bookinfo where book_id = 20150201;

/*更新余额*/
update readerinfo set balance = balance - 79.80*0.05 where card_id ='210210199901011111';

/*查看读者信息表*/
select *from book.readerinfo;

/*更新库存*/
update bookinfo set store = store -1 where book_id=20150201;

/*查看图书信息表*/
select *from bookinfo;

执行完后,可看到借阅信息表、读者信息表和图书信息表都被更新了。

借阅信息表:

读者信息表:

图书信息表:

 

  • delete语句删除满足条件的记录

语法格式:

delete from table_name [where <condition>]; 

/*需要删除所有记录不加后面的where和条件即可*/

删除表中所有的记录,还可以用truncate table语句(直接删除原来的表,并重新创建一个表)
语法结构:
truncate table table_name;

以删除读者信息表中张飞((身份证号:210210199901011111))的信息为例。

use book;
delete from readerinfo where card_id='210210199901011111';
 

可看到张飞的信息已被删除

再以一需求为案例:
图书管理系统要下架所有关于儿科学的书,实现的需求如下:
1、删除图书信息表中的所有关于儿科学的书。
2、删除图书类别表中儿科学这一类别。

/*查询儿科学类别编号*/

select category_id from bookcategory where category='儿科学';

可看到:

/*删除图书信息表中的所有儿科学的书(即删除类别编号为5的图书信息)*/
delete from bookinfo where book_category_id=5;

可看到儿科学的书信息已被删除:

/*删除图书类别表中儿科学这一类别*/
delete from bookcategory where category='儿科学';


可看到儿科学的类别信息已被删除:

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值