目录
PTA 10-9 查询年龄18-20之间的学生信息(MSSQL)
PTA 10-14 查询平均成绩高于75分的学生(MSSQL)
PTA 10-16 查询选修‘C语言’课程的学生(MSSQL)
PTA 10-17 查询没有选修'C语言'课程的学生(MSSQL)
PTA 10-25 查询平均分高于60分的课程(MSSQL)
PTA 10-33 查询xscj表中的学号,姓名,计算机三项信息,结果按计算机成绩的降序排列。
PTA 10-34 查询xscj表中的计算机成绩在80至90之间(包含80和90分)的同学的学号,姓名,计算机三项信息。
PTA 10-38 统计xscj表中计算机课程成绩在90至100之间的人数(包含90和100)
PTA 10-39 查询xsda表中的学号、姓名、性别三项信息,结果按照女生优先的顺序显示。
PTA 10-45 查询zgda表中的工号,姓名,性别,职称4项信息,显示结果时首先按照女性在前的顺序,如果性别相同则按照职称的升序排列。
PTA 10-60 查询S001学生选修而S003学生未选修的课程
PTA 10-79 spj-查询供应工程 j1 零件 p1 的供应商
PTA 10-83 2-1-(c) 查询在1990年拍摄过电影的所有影星,或者拍摄过电影名中含有"3"的电影的所有影星
PTA 10-84 2-1-(e) 查询所有的男影星或者住址中含有4的影星
PTA 10-85 2-1-(d) 查询净资产至少200万美元的所有行政长官
PTA 10-86 2-2-(a)查询价格低于1600美元的个人计算机的型号(model)、速度(speed)及硬盘容量(hd)
PTA 10-87 2-2-(b)查询价格低于1600美元的个人计算机的型号、速度及硬盘容量,将"speed"改为"兆赫","hd"改为"吉字节"
PTA 10-89 2-2-(d)查询费用高于2000美元的便携式电脑的型号)、内存容量以及屏幕尺寸
PTA 10-90 spj-查询供应工程 j1 的红色零件的供应商
PTA 10-95 2-2-(f)查询具有1GB以上的硬盘容量而价格低于2000美元的所有个人计算机的型号、速度以及硬盘容量
PTA 10-98 3-1-(a) 查询电影“M3”中的男影星
PTA 10-99 3-1-(b) 查询st1制片公司的总裁
PTA 10-1 查询选修‘C语言’课程的学生
检索出所有选修'C语言'课程的学生成绩记录,输出结果集按照成绩降序排序。
分别尝试用以下几种方式实现。
1)采用连接查询
2)采用嵌套查询
3)采用EXIST查询
select stu.sname as 姓名,sc.grade as 成绩
from sc
join cou on cou.cno=sc.cno
join stu on stu.sno=sc.sno
and cou.cname='C语言'
order by 成绩 desc;
PTA 10-2 查询平均分高于80分的学生
查询选修课程成绩的平均分高于80分的学生姓名。
select stu.sname
from stu
join sc on stu.sno=sc.sno
group by sc.sno
having avg(grade)>80
PTA 10-3 查询平均成绩最高的前3名同学
查询平均成绩最高的前3名同学的学号,姓名,性别及年龄。假设当前为2020年,年龄仅按年计算.
提示:可使用"limit n"语句实现 "top n" 。
select sc.sno as 学号,
sname as 姓名,
sex as 性别,
2020-year(birdate) as 年龄,
avg(grade) as 平均成绩
from sc
join stu on stu.sno=sc.sno
group by sc.sno
order by avg(grade) desc
limit 3;
PTA 10-7 spj-查询供应工程 j1 的供应商
本题目要求编写SQL语句,在SPJ
数据库中,查询供应工程号为j1
的供应商号 sno
提示:请使用SELECT语句作答。
select sno
from spj
where jno='j1'
group by sno
PTA 10-9 查询年龄18-20之间的学生信息(MSSQL)
检索出 stu
表中年龄在18-20之间的学生记录。
注意: 计算年龄时以年计算,不考虑出生月份。假定当前日期为‘2020-03-01'。
提示:MSSQLServer 评测SQL语句。
select sno as 学号,
sname as 姓名,
sex as 性别,
mno as 专业,
2020-year(birdate) as 年龄,
memo as 备注
from stu
where 2020-year(birdate)>=18
and 2020-year(birdate)<=20
PTA 10-10 查询姓‘李’的学生记录(MSSQL)
检索出stu
表中所有姓‘李’的学生记录。
select sno as 学号,
sname as 姓名,
sex as 性别,
mno as 专业,
birdate as 出生日期,
memo as 备注
from stu
where sname like N'李%'
PTA 10-11 查询部分专业的学生(MSSQL)
select stu.sno as 学号,
stu.sname as 姓名,
stu.sex as 性别,
major.mname as 专业
from stu inner join major on
stu.mno=major.mno
where major.mno = '01' or major.mno='02'
order by stu.sno asc
PTA 10-14 查询平均成绩高于75分的学生(MSSQL)
本题目要求编写SQL语句,在sc表
中查询平均成绩高于75分的学生。
select sno as '学号',avg(grade) as '平均成绩'
from sc
group by sno
having avg(grade)>75
PTA 10-15 查询未登记成绩的学生(MSSQL)
检索出sc
表中‘C001’课程未登记成绩的学生学号
select sno
from sc
where cno='C001' and grade is null
PTA 10-16 查询选修‘C语言’课程的学生(MSSQL)
本题目要求编写SQL语句,
检索出所有选修'C语言'课程的学生成绩记录,输出结果集按照成绩降序排序。
提示:MSSQLServer 评测SQL语句。
分别尝试用以下几种方式实现。
1)采用连接查询
2)采用嵌套查询
3)采用EXIST查询
select sname 姓名,grade 成绩
from sc
join cou on cou.cno=sc.cno
join stu on sc.sno=stu.sno
where cou.cname =N'C语言'
order by grade desc;
PTA 10-17 查询没有选修'C语言'课程的学生(MSSQL)
本题目要求编写SQL语句,
检索出没有选修'C语言'课程的学生记录,输出结果集按照学号升序排序。
提示:MSSQLServer 评测SQL语句。
select stu.sno 学号,sname 姓名
from stu
where stu.sno not in (select sc.sno from sc,cou where sc.cno=cou.cno and cname=N'C语言')
order by stu.sno asc;
PTA 10-18 查询同专业的学生(MSSQL)
本题目要求编写SQL语句,
检索Student
表中与‘张三’在同一个专业的学生记录。
提示:MSSQLServer 评测SQL语句。
select sno as 学号, sname as 姓名
from stu
where mno in(select mno from stu where sname=N'张三')
and sname<>N'张三';
PTA 10-25 查询平均分高于60分的课程(MSSQL)
本题目要求编写SQL语句,
查询平均分高于60分的课程的课程名。
提示:MSSQLServer 评测SQL语句。
select sc.cno as 课程号,
cname as 课程名
from sc
join cou on
cou.cno=sc.cno
group by sc.cno,cname
having avg(sc.grade)>60
PTA 10-26 查询成绩最高的前三名同学(MSSQL)
本题目要求编写SQL语句,
查询‘C语言’课程成绩最高的前三名同学。
提示:MSSQLServer 评测SQL语句。
select top 3 stu.sname as 姓名,
sc.grade as 成绩
from sc join cou on
cou.cno=sc.cno
join stu on
stu.sno=sc.sno
where cou.cname=N'C语言'
order by sc.grade desc;
PTA 10-27 查询课程成绩最高二人(MSSQL)
本题目要求编写SQL语句,
检索C002号课程的成绩最高的二人学号,姓名与成绩
提示:MSSQLServer 评测SQL语句。
select top 2 stu.sno,sname,grade
from stu join sc on stu.sno=sc.sno
where sc.cno=N'C002'
order by grade desc;
PTA 10-32 查询xsda表中所有女生的记录
请编写SQL语句,检索出xsda
表中所有符合性别为”女”
的记录。
select 学号,姓名,性别,出生日期,身高
from xsda
where 性别=N'女';
PTA 10-33 查询xscj表中的学号,姓名,计算机三项信息,结果按计算机成绩的降序排列。
select 学号,姓名,计算机
from xscj
order by 计算机 desc;
PTA 10-34 查询xscj表中的计算机成绩在80至90之间(包含80和90分)的同学的学号,姓名,计算机三项信息。
select 学号,姓名,计算机
from xscj
where 计算机 between 80 and 90;
PTA 10-36 计算xscj表中计算机课程的最低分
select min(计算机) as 计算机最低分
from xscj
PTA 10-38 统计xscj表中计算机课程成绩在90至100之间的人数(包含90和100)
select count(计算机) as 计算机优秀人数
from xscj
where 计算机 between 90 and 100;
PTA 10-39 查询xsda表中的学号、姓名、性别三项信息,结果按照女生优先的顺序显示。
select 学号,姓名,性别
from xsda
order by 性别 desc;
PTA 10-40 统计xsda表中男女生的人数
select 性别,count(性别) as 人数
from xsda
group by 性别;
10-41 计算xsda表中男女生的平均身高
select 性别,avg(身高) as 平均身高
from xsda
group by 性别;
PTA 10-42 计算xsda表中最高同学的身高
select max(身高) as 最高同学的身高
from xsda;
PTA 10-43 计算xsda表中最矮同学的身高
select min(身高) as 最矮同学的身高
from xsda;
PTA 10-44 查询zgda表中所有女教授的信息
select 工号,姓名,性别,出生日期,院系,职称
from zgda
where 性别=N'女' and 职称=N'教授';
PTA 10-45 查询zgda表中的工号,姓名,性别,职称4项信息,显示结果时首先按照女性在前的顺序,如果性别相同则按照职称的升序排列。
select 工号,姓名,性别,职称
from zgda
order by 性别 desc,职称 asc;
PTA 10-47 sql-select-sample
select id,name
from Student
where id>50;
PTA 10-48 查询学生表所有学生记录
select * from stu;
PTA 10-50 查询学生表中的女生信息
检索出 stu
表中所有的女生记录。注意:sex为1时表示 男生,sex为0时表示女生。
select sno 学号,sname 姓名
from stu
where sex=0;
PTA 10-51 查询学生表中大于19岁的女生
检索出stu
表中所有年龄大于19岁的女生的记录。注意:sex为1时表示 男生,sex为0时表示女生。
计算年龄时以年计算,不考虑出生月份。
提示:假定当前日期为‘2020-03-01'
select sno as 学号,
sname as 姓名,
sex as 性别,
mno as 专业,
2020-year(birdate) as 年龄,
memo as 备注
from stu
where sex=0 and 2020-year(birdate)>19;
PTA 10-56 查询平均成绩高于75分的学生
select sno as 学号,avg(grade) as 平均成绩
from sc
group by sno
having avg(grade)>75;
PTA 10-60 查询S001学生选修而S003学生未选修的课程
select cno as 课程号
from sc
where cno in(select cno from sc where sno='S001')
and cno not in(select cno from sc where sno='S003');
PTA 10-63 查询平均分高于60分的课程
select cou.cno as 课程号,
cou.cname as 课程名
from cou
join sc on
sc.cno=cou.cno
group by sc.cno
having avg(sc.grade)>60;
PTA 10-65 查询课程成绩最高二人
select stu.sno,sname,grade
from sc
join stu on
stu.sno=sc.sno
where cno='C002'
order by grade desc
limit 2;
PTA 10-72 单表查询:根据运费查询订单信息
select orderid,customerid,employeeid
from orders
where Freight>10 and Freight<50;
PTA 10-79 spj-查询供应工程 j1 零件 p1 的供应商
select distinct sno
from spj
where jno='j1' and pno='p1';
PTA 10-80 2-1(a) 查询st1制片公司的地址
检索出 Studio
表中制片公司st1
的地址。
select address
from Studio
where name='st1';
PTA 10-81 2-1(b)查询影星S1的出生日期
select birthdate
from MovieStar
where name='s1';
PTA 10-82 A1-1查询联系人信息
select CompanyName,ContactName
from customers
where City='London';
PTA 10-83 2-1-(c) 查询在1990年拍摄过电影的所有影星,或者拍摄过电影名中含有"3"的电影的所有影星
select starName from StarsIn
where movieTitle like '%3' or movieYear=1990
group by starName asc;
PTA 10-84 2-1-(e) 查询所有的男影星或者住址中含有4的影星
select name
from MovieStar where gender='M'or address like '%4';
PTA 10-85 2-1-(d) 查询净资产至少200万美元的所有行政长官
select MovieExec.name from MovieExec
join Studio on
Studio.presCertID=MovieExec.certID
where netWorth>200 and presCertID=0003;
PTA 10-86 2-2-(a)查询价格低于1600美元的个人计算机的型号(model)、速度(speed)及硬盘容量(hd)
select model,speed,hd
from pc
where price<1600;
PTA 10-87 2-2-(b)查询价格低于1600美元的个人计算机的型号、速度及硬盘容量,将"speed"改为"兆赫","hd"改为"吉字节"
select model,speed as 兆赫,hd as 吉字节
from pc
where price<1600;
PTA 10-88 2-2-(c)查询打印机的制造商
select distinct maker
from product
where type=N'打印机';
PTA 10-89 2-2-(d)查询费用高于2000美元的便携式电脑的型号)、内存容量以及屏幕尺寸
select model,ram,screen
from laptop
where price>2000;
PTA 10-90 spj-查询供应工程 j1 的红色零件的供应商
select spj.sno
from spj
where spj.pno in(select p.pno from p where color=N'红')
and
spj.jno='j1';
PTA 10-92 2-2-(e)查询所有彩色打印机的元组
select model,color,type,price
from printer
where color=1;
PTA 10-95 2-2-(f)查询具有1GB以上的硬盘容量而价格低于2000美元的所有个人计算机的型号、速度以及硬盘容量
select model,speed,hd
from pc
where price<2000;
PTA 10-98 3-1-(a) 查询电影“M3”中的男影星
select name from MovieStar
join StarsIn on
name=starName
where gender='M' and movieTitle like 'M3';
PTA 10-99 3-1-(b) 查询st1制片公司的总裁
select MovieExec.name from MovieExec
join Studio on
presCertID=certID
where Studio.name=N'st1' and presCertID=0001;
PTA 10-101 A1-2根据所在国家查找订单信息
select OrderID,CustomerID
from orders
where ShipCountry in ('Germany','Brazil','France');