MySQL训练
创建表
create table book(
bid int primary key auto_increment,
b_name char(32) not null unique,
auth char(10) not null ,
press varchar(50) not null ,
price float(10,2) not null,
p_date Date not null
);
添加数据
insert into book(b_name,auth,press,price,p_date) values('倚天屠龙记','egon','北京工业地雷出版社',70,'2019-7-1'),('九阳神功','alex','人民音乐不好听出版社',5,'2018-7-4'),('九阴真经','yuan','北京工业地雷出版社',62,'2017-7-12'),('九阴白骨爪','jinxin','人民音乐不好听出版社',40,'2019–8-7'),('独孤九剑','alex','北京工业地雷出版社',12,'2017-9-1'),('降龙十巴掌','egon','知识产权没有用出版社',20,'2019-7-5'),('葵花宝典','yuan','知识产权没有用出版社',33,'2019–8-2');
1.查询egon写的所有书和价格
select b_name,price from book where auth='egon';
2.找出最贵的图书的价格
select b_name,max(price) from book;
3.求所有图书的均价
select avg(price) as '平均价格' from book;
4.将所有图书按照出版日期排序
select * from book order by p_date; # 升序
5.查询alex写的所有书的平均价格
select group_concat(b_name),avg(price) from book where auth='alex';
6.查询人民音乐不好听出版社出版的所有图书
select b_name from book where press='人民音乐不好听出版社';
7.查询人民音乐出版社出版的alex写的所有图书和价格]
select b_name,price from book where auth='alex' and press='人民音乐不好听出版社';
8.找出出版图书均价最高的作者
select auth,avg(price) price from book group by auth order by avg(price) desc limit 1 ;
9.找出最新出版的图书的作者和出版社
select auth,press from book order by p_date limit 1;
10.显示各出版社出版的所有图书
select press,group_concat(b_name) from book group by press;
11.查找价格最高的图书,并将它的价格修改为50元
update book set price=50 where b_name in (select b_name from (select b_name, max(price) from book) as t);
12.删除价格最低的那本书对应的数据
delete from book order by price limit 1;
13.将所有alex写的书作业修改成alexsb
update book set auth='alexsb' where auth='alex' ;
14.select year(publish_date) from book
自己研究上面sql语句中的year函数的功能,完成需求:
将所有2017年出版的图书从数据库中删除
delete from book where year(p_date)='2017';
15.有文件如下,请根据链接自学pymysql模块,使用python写代码将文件中的数据写入数据库
学python从开始到放弃|alex|人民大学出版社|50|2018-7-1
学mysql从开始到放弃|egon|机械工业出版社|60|2018-6-3
学html从开始到放弃|alex|机械工业出版社|20|2018-4-1
学css从开始到放弃|wusir|机械工业出版社|120|2018-5-2
学js从开始到放弃|wusir|机械工业出版社|100|2018-7-30