数据库 使用 笛卡尔积两表联查 查询sql语句

笛卡尔积两表联查语法:select * from 表名 别名1,表名2 别名2 where 别名1.id = 别名2.id

//例
商品表 t_drink
drinkId Int 主键
drinkName String 饮料名称
drinkPrice int 饮料价格
drinkSum int 饮料数量
tid int 类型外键

类型表 t_type
tid int 主键
tname String 类型名称

1)查询价格最高的饮料(5分)
select * from t_drink where drinkPrice = ( select max (drinkPrice) from t_drink)

select max (drinkPrice),drinkName from t_drink group by drinkName

2)删除所有低于平均价格的饮料(5分)

delete from t_drink where drinkPrice < (select avg(drinkPrice) from t_drink)

3)查询每类饮料中 最高饮料的价格(5分)

select max(t1.drinkPrice),t2.tname from t_drink t1,t_type t2 where t1.tid = t2.tid
group by t2.tname

4)查询每类饮料的平均单价 大于 20的饮料种类(5分)
select avg(t1.drinkPrice),t2.tname from t_drink t1,t_type t2 where t1.tid = t2.tid
group by t2.tname having avg(t1.drinkPrice) > 20

5)(oracle)使用分页语句查询名称包含”可乐”并且数量在100以上的饮料,查询出表中的第33页数据:每页显示55条;(10分)
select from(
select * ,rownum rn from t_drink where drinkName like ‘%可乐%’ and drinkSum > 100
)where rn > 33
55-55 and rn <= 33*55

你可能感兴趣的:(java)