mysql练习

1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名

name   kecheng   fenshu 
张三     语文       81
张三     数学       75
李四     语文       76
李四     数学       90
王五     语文       81
王五     数学       100
王五     英语       90

# 1.查询有成绩小于等于80的学生的姓名
select distinct  name  from tb_test1 where fenshu <= 80;

#2.查询不在小于等于80分的学生的姓名
select distinct name from  tb_test1 where name not in(
  select distinct  name  from tb_test1 where fenshu <= 80
);

2.原表: 
courseid coursename score 
------------------------------------- 
1         java         70 
2         oracle       90 
3         xml          40 
4         jsp          30 
5        servlet       80 
------------------------------------- 
为了便于阅读, 查询此表后的结果显式如下( 及格分数为60): 
courseid coursename score mark 
--------------------------------------------------- 
1 java 70 pass 
2 oracle 90 pass 
3 xml 40 fail 
4 jsp 30 fail 
5 servlet 80 pass 
--------------------------------------------------- 
写出此查询语句

#用if写
select s.*, if(s.score >= 60,'pass','fail')  mark  from tb_score s;
#用case写
select s.*, case when s.score >= 6 then 'pass' else 'fail'  end mark  from tb_score s; 

3. create table testtable1
(
id number,
department varchar(12) 
)select * from testtable1

insert into testtable1 values(1,'设计')
insert into testtable1 values(2,'市场')
insert into testtable1 values(3,'售后')
/*
结果
id department
1   设计
2   市场
3   售后 
*/
create table testtable2
(
id number,
dptID int,
name varchar(12)
)
insert into testtable2 values(1,1,'张三')
insert into testtable2 values(2,1,'李四')
insert into testtable2 values(3,2,'王五')
insert into testtable2 values(4,3,'彭六')
insert into testtable2 values(5,4,'陈七')
/*
用一条SQL语句,怎么显示如下结果
id dptID department name
1   1      设计        张三
2   1      设计        李四
3   2      市场        王五
4   3      售后        彭六
5   4      黑人        陈七
*/

select  t2.id,ifnull(t1.department,'黑人'), t2.dptID,t2.`name` from  testtable1 t1  right join testtable2 t2
on t1.id = t2.dptID

4.有如下表:

写一条Sql语句查出,如下表:

select name,round(sum(case when course ='hibernate' then score  else 0 end ),0) hibernate ,round(sum(if(course = 'spring',score,0)),0) spring, round(sum(if(course = 'struts',score,0)),0) struts  from  tb_course 
group by name;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值