SQL练习+答案(一)

xiaoxiao2021-02-28  111

1. 表结构

表名:购物信息

购物人商品名称数量A甲2B乙4C丙1A丁2B丙5

…… (其他用户实验的记录大家可自行插入)

2. 问题

给出所有购入商品为两种或两种以上的购物人记录

3. 答案

select * from 购物信息 where 购物人 in (select 购物人 from 购物信息 group by 购物人 having count(*) >= 2);

1. 表结构

表名:成绩表

姓名课程分数张三语文81张三数学75李四语文56李四数学90王五语文81王五数学100王五英语49

……

2. 问题

给出成绩全部合格的学生信息(包含姓名、课程、分数),注:分数在60以上评为合格

3. 答案

select * from 成绩表 where 姓名 not in (select distinct 姓名 from 成绩表 where 分数 < 60) 或者: select * from 成绩表 where 姓名 in (select 姓名 from 成绩表 group by 姓名 having min(分数) >=60)

1. 表结构

表名:商品表

名称产地进价苹果烟台2.5苹果云南1.9苹果四川3西瓜江西1.5西瓜北京2.4

…… (其他用户实验的记录大家可自行插入)

2. 问题

给出平均进价在2元以下的商品名称

3. 答案

select 名称 from 商品表 group by 名称 having avg(进价) < 2

1. 表结构

表名:高考信息表

准考证号科目成绩2006001语文1192006001数学1082006002物理1422006001化学1362006001物理1272006002数学1492006002英语1102006002语文1052006001英语982006002化学129

…… (其他用户实验的记录大家可自行插入)

2. 问题

给出高考总分在600以上的学生准考证号

3. 答案

select 准考证号 from 高考信息表 group by 准考证号 having sum(成绩) > 600

1. 表结构

表名:高考信息表

准考证号数学语文英语物理化学2006001108119981271362006002149105110142129

…… (其他用户实验的记录大家可自行插入)

2. 问题

给出高考总分在600以上的学生准考证号

3. 答案

select 准考证号 from 高考信息表 where (数学+语文+英语+物理+化学) > 600

1. 表结构

表名:club

idgenderage67M1968F3069F2770F1671M32

…… (其余测试数据请自行插入)

2. 问题

查询出该俱乐部里男性会员和女性会员的总数

3. 答案

select gender,count(id) from club group by gender

1. 表结构

表名:team

ID(number型)Name(varchar2型)1a2b3b4a5c6c

2. 问题

执行一个删除语句,当Name列上有相同时,只保留ID这列上值小的 例如:删除后的结果应如下:

ID(number型)Name(varchar2型)1a2b5c

请写出SQL语句。

3. 答案

delete from team where id not in (select min(id) from team group by name)

1. 表结构

表名:student

namecoursescore张青语文72王华数学72张华英语81张青物理67李立化学98张燕物理70张青化学76

2. 问题

查询出“张”姓学生中平均成绩大于75分的学生信息

3. 答案

select * from student where name in (select name from student where name like '张%' group by name having avg(score) > 75)

(待续)

原作者:sunshine0990

转载请注明原文地址: https://www.6miu.com/read-36818.html

最新回复(0)