-- 排序:用order by子句
-- 27、 查询各种图书详细信息,并按价格(降序)排列,若价格相同按ISBN(升序)排列。
select * from 图书详情 order by 价格,ISBN asc;
-- 28、 将所有”女“读者按住址升序排序。
select * from 读者 where 性别="女" order by 住址 asc;
-- 29、 列出价格最高的三种图书信息
select * from 图书详情 order by 价格,ISBN asc limit 3;
-- 聚合函数查询可以实现数据集合的汇总或是求平均值等各种运算:
-- 30、 查询图书价格的平均值,平均值显示列标题为“平均价格”。
select avg(价格) as 平均价格 from 图书详情;
-- 31、 查询读者的人数。
select count(*) from 读者;
-- 32、 查询读者部门个数(相同的按一种计算)。
select DISTINCT count(部门) from 读者;
-- 33、 查询价格在40以上的图书种类数
select * from 图书详情 where 价格>40;
-- 分组查询:
-- 34、 分别统计男、女性读者人数。
select count(*) from 读者 where 性别="女" ;
select count(*) from 读者 where 性别="男" ;
-- 35、 统计各出版社书籍平均价格、总价值,按平均价格降序排列
select 出版社, avg(价格) as 平均价格, sum(价格) as 总价值 from 图书详情 group by 出版社 order by avg(价格),sum 价格) desc;
-- 36、 求价格在30以上的各出版社的图书平均价格
select 出版社, avg(价格) as 平均价格 from 图书详情 where 价格>30 group by 出版社 order by avg(价格) desc;
-- 组条件子句:HAVING关键字可以对查询和统计的结果进行进一步的筛选
-- 37、 查询有4种以上价格在30以上图书的出版社及其图书平均价格。
select 出版社, avg(价格) as 平均价格 from 图书详情 where 价格>30 group by 出版社 limit 4;
-- 将查询结果保存为新表:mysql中用create table 新表名 select语句
-- 38、 求信息工程学院读者的详细信息,并将这些信息另存到数据表“信工读者信息表”中。
create table 信工读者信息表(
借书证编号 varchar(50) primary key,
身份证号 varchar(50) unicode not null ,
姓名 varchar(50) unique not null ,
性别 char(2) not null ,
部门 varchar(50) not null ,
住址 varchar(50) not null ,
电话 varchar(50) unique,
电子邮件 varchar(50) unique ,
读者类别编号 char(2)
);
insert into 信工读者信息表 select * from 读者 where 部门 = '信息工程学院';