您的位置:首页 > 数据库

几道经典的SQL笔试题目(有答案)

2011-12-29 08:46 302 查看
几道经典的SQL笔试题目(有答案)

(1)表名:购物信息

购物人 商品名称 数量

A 甲 2

B 乙 4

C 丙 1

A 丁 2

B 丙 5

……

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

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

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

(2)表名:成绩表

姓名 课程 分数

张三 语文 81

张三 数学 75

李四 语文 56

李四 数学 90

王五 语文 81

王五 数学 100

王五 英语 49

……

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

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

答:select * from 成绩表 where 姓名 not in (select distinct 姓名 from 成绩表 where 分数 < 60)

或者:

select * from 成绩表 where 姓名 in (select 姓名 from 成绩表 group by 姓名 having min(分数) >=60)

(3)表名:商品表

名称 产地 进价

苹果 烟台 2.5

苹果 云南 1.9

苹果 四川 3

西瓜 江西 1.5

西瓜 北京 2.4

……

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

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

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

(4)表名:高考信息表

准考证号 科目 成绩

2006001 语文 119

2006001 数学 108

2006002 物理 142

2006001 化学 136

2006001 物理 127

2006002 数学 149

2006002 英语 110

2006002 语文 105

2006001 英语 98

2006002 化学 129

……

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

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

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

(5)表名:高考信息表

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

2006001 108 119 98 127 136

2006002 149 105 110 142 129

……

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

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

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

(四部分)

(一)表名:club

id gender age

67 M 19

68 F 30

69 F 27

70 F 16

71 M 32

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

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

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

(二)表名:team

ID(number型) Name(varchar2型)

1 a

2 b

3 b

4 a

5 c

6 c

要求:执行一个删除语句,当Name列上有相同时,只保留ID这列上值小的

例如:删除后的结果应如下:

ID(number型) Name(varchar2型)

1 a

2 b

5 c

请写出SQL语句。

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

(三)表名:student

name course score

张青 语文 72

王华 数学 72

张华 英语 81

张青 物理 67

李立 化学 98

张燕 物理 70

张青 化学 76

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

答:select * from student where name in (select name from student

where name like '张%' group by name having avg(score) > 75)
SQL Server中学员信息表--STUDENT(字段包括: 姓名﹑年龄和居住地址)如图三:

图三

用SQL语句查询年龄小于平均年龄的学员的姓名、居住地址。

select s.studentName,s.studentAddress from STUDENT s

where s.studentAge < (Select avg(studentAge) from STUDENT)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: