-
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='儿科学';
可看到儿科学的类别信息已被删除: