简单的sql的查询,删除重复记录,oracle分页,mysql分页等

新建三张表:
t_student(id,stuname,sex,age,areaid,classid)

t_area(id,areaname)

t_class(id,className)


--查询出学生名以及学生所在班级名
select s.stuname,s.sex,s.age,c.classname from t_student s left join t_class c on s.classid=c.id;
--查询年龄在18-30之间的女生姓名以及所在的班级名
select s.stuname,s.sex,s.age,c.classname from t_student s left join t_class c on s.classid=c.id where s.age between 18 and 30 and s.sex=0;
--查询年龄在18-30之间的山东女生姓名以及所在的班级名并且按照年龄进行升序排列
select s.stuname,s.sex,s.age,c.className from t_student s left join t_area a on s.areaid=a.id left join t_class c on s.areaid=c.id where s.age between 18 and 30 and s.sex=0 order by s.age asc;
--查询年龄在18-30之间的姓张的女生姓名以及所在的班级名并且按照年龄进行升序排列
select s.stuname,c.classname,s.age,s.sex from t_student s inner join t_class c on s.classid=c.id where s.age between 18 and 30 and s.sex=0 and s.stuname like '张%' order by s.age asc;
--查询男女生各自的人数以及平均年龄
select sex,count(*),avg(age) from t_student group by sex;
--查询各班男女生的人数以及平均年龄
select s.sex,count(*),avg(s.age),c.classname from t_student s left join t_class c on s.classid=c.id group by s.sex;
--查询各班中各个地区男女生人数
select count(*),s.sex,a.areaname,c.classname from t_student s left join t_area a on s.areaid=a.id left join t_class c on s.classid=c.id group by s.sex,a.areaname,c.classname;
--删除学生表中的重复记录[姓名,年龄,地区相同的]
delete  from t_student s left join t_area a on s.areaid=a.id where s.id Not In
(Select Max(s.ID),a.areaname,s.stuname,s.age From t_student left join t_area a Group By a.areaname,s.stuname,s.age);

-----------
delete from t_student where 
Id not in 
(select t.* from (select max(s.id) from t_student s  group by s.age,s.stuname,s.areaid) t ) 

--删除山西姓李的未成年男生
delete from t_student where id in(select id from t_area  where areaname='山西') and stuname like'李%' and age>18 and sex=1

--oracle的分页,查询未成年的男生并按照年龄进行倒叙排列,并进行分页。
【每页有13条数据,查询第33页的数据】
select * from (
select s.*,rownum rn from
(select stuname,sex,age from t_student where sex = 1 and age < 18  Group by age desc) s 
where  rownum <= 442)
where rn >= 430;

--mysql的分页,查询未成年的男生并按照年龄进行倒叙排列,并进行分页。
【每页有13条数据,查询第33页的数据】
select s.* from 
(select stuname,sex,age from t_student where sex = 1 and age < 18  Group by age desc ) s
limit 429,13

微博:http://blog.sina.com.cn/s/blog_17c4f363a0102xci2.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值