目录
10-8 spj-查询至少使用s1供应商所供应的全部零件的工程
10-1 查询选修‘C语言’课程的学生
分数 10
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写SQL语句,
检索出所有选修'C语言'课程的学生成绩记录,输出结果集按照成绩降序排序。
分别尝试用以下几种方式实现。
1)采用连接查询
2)采用嵌套查询
3)采用EXIST查询
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL,
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`)
);
CREATE TABLE `cou` (
`cno` char(4) NOT NULL,
`cname` varchar(30) NOT NULL,
`credit` smallint(6) DEFAULT NULL,
`ptime` char(5) DEFAULT NULL,
`teacher` char(10) DEFAULT NULL,
PRIMARY KEY (`cno`)
) ;
CREATE TABLE `sc` (
`sno` char(4) NOT NULL,
`cno` char(4) NOT NULL,
`grade` decimal(6,1) DEFAULT NULL,
PRIMARY KEY (`sno`,`cno`),
CONSTRAINT `fk_sc_cno` FOREIGN KEY (`cno`) REFERENCES `cou` (`CNO`),
CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);
表样例
请在这里给出上述表结构对应的表样例。例如
stu
表:
cou
表:
sc
表:
输出样例:
请在这里给出输出样例。例如:
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
10-2 查询平均分高于80分的学生
分数 10
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写SQL语句,
查询选修课程成绩的平均分高于80分的学生姓名。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL,
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`)
);
CREATE TABLE `sc` (
`sno` char(4) NOT NULL,
`cno` char(4) NOT NULL,
`grade` decimal(6,1) DEFAULT NULL,
PRIMARY KEY (`sno`,`cno`),
CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);
表样例
请在这里给出上述表结构对应的表样例。例如
stu
表:
sc
表:
输出样例:
请在这里给出输出样例。例如:
SELECT
stu.sname
FROM
sc ,stu
WHERE
sc.sno=stu.sno
GROUP BY
sc.sno
HAVING
sum(sc.grade) / COUNT(sc.sno) >80
10-3 查询平均成绩最高的前3名同学
分数 10
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写SQL语句,
查询平均成绩最高的前3名同学的学号,姓名,性别及年龄。
提示:可使用"limit n"语句实现 "top n" 。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL,
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`)
);
CREATE TABLE `sc` (
`sno` char(4) NOT NULL,
`cno` char(4) NOT NULL,
`grade` decimal(6,1) DEFAULT NULL,
PRIMARY KEY (`sno`,`cno`),
CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
);
表样例
请在这里给出上述表结构对应的表样例。例如
``stu```表:
sc
表:
输出样例:
请在这里给出输出样例。例如:
SELECT
stu.sno 学号,stu.sname 姓名,stu.sex 性别,year(now())-year(stu.birdate)-2 年龄,avg(sc.grade) 平均成绩
FROM
stu
JOIN
sc
ON
stu.sno=sc.sno
GROUP BY
sc.sno
ORDER BY
avg(sc.grade) DESC
LIMIT
3
10-4 批量插入学生记录
分数 10
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写Insert语句,
将stu
表中的软件工程专业(专业号mno为'02')的学生记录批量插入到一个学生简表softstu表
中。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL, --专业号
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`),
);
CREATE TABLE `softstu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL
);
表样例
请在这里给出上述表结构对应的表样例。例如
stu
表:
输出样例:
softstu表
如下:
INSERT INTO
softstu(sno,sname)
SELECT
sno,sname
FROM
stu
WHERE
mno='02';
10-5 修改女生成绩
分数 10
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写UPDATE语句,
把所有低于75分的女生成绩提高5%;
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL,
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`)
);
CREATE TABLE `sc` (
`sno` char(4) NOT NULL,
`cno` char(4) NOT NULL,
`grade` decimal(6,1) DEFAULT NULL,
PRIMARY KEY (`sno`,`cno`),
CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
)
表样例
请在这里给出上述表结构对应的表样例。例如
stu
表:
sc
表:
输出样例:
例如:
修改女生成绩后的sc
表如下:
UPDATE
sc
SET
grade = grade * 1.05
WHERE
grade < 75 AND sno IN(
SELECT
sno
FROM
stu
WHERE
sex='0'
)
10-7 spj-查询供应工程 j1 的供应商
分数 10
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写SQL语句,在SPJ
数据库中,查询供应工程号为j1
的供应商号 sno
提示:请使用SELECT语句作答。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE j (
jno char(3) NOT NULL, -- 工程项目号
jname varchar(10) DEFAULT NULL,
city varchar(10) DEFAULT NULL,
PRIMARY KEY ( jno )
) ;
CREATE TABLE p (
pno char(3) NOT NULL, -- 零件号
pname varchar(10) DEFAULT NULL,
color char(2) DEFAULT NULL,
weight smallint DEFAULT NULL,
PRIMARY KEY ( pno )
) ;
CREATE TABLE s (
sno char(3) NOT NULL, -- 供应商号
sname varchar(10) DEFAULT NULL,
status char(2) DEFAULT NULL,
city varchar(10) DEFAULT NULL,
PRIMARY KEY ( sno )
) ;
CREATE TABLE spj (
sno char(3) NOT NULL,
pno char(3) NOT NULL,
jno char(3) NOT NULL,
qty smallint DEFAULT NULL,
PRIMARY KEY ( sno , pno , jno ),
CONSTRAINT fk_jno FOREIGN KEY ( jno ) REFERENCES j ( jno ),
CONSTRAINT fk_pno FOREIGN KEY ( pno ) REFERENCES p ( pno ),
CONSTRAINT fk_sno FOREIGN KEY ( sno ) REFERENCES s ( sno )
);
表样例
请在这里给出上述表结构对应的表样例。例如
s
表:
p
表:
j
表:
spj
表:
输出样例:
请在这里给出输出样例。例如:
SELECT DISTINCT
spj.sno
FROM
spj
JOIN
j
ON
spj.jno=j.jno
JOIN
p
ON
spj.pno=p.pno
JOIN
s
ON
s.sno=spj.sno
WHERE
j.jno='j1'
ORDER BY
sno ASC
10-8 spj-查询至少使用s1供应商所供应的全部零件的工程
分数 10
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写SQL语句,在SPJ
数据库中,查询至少用了s1
供应商所供应的全部零件的工程号jno
。
提示:请使用SELECT语句作答。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `j` ( -- 工程项目表
`jno` char(3) NOT NULL,-- 工程项目号
`jname` varchar(10) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
PRIMARY KEY (`jno`)
);
CREATE TABLE `p` ( -- 零件表
`pno` char(3) NOT NULL, -- 零件号
`pname` varchar(10) DEFAULT NULL,
`color` char(2) DEFAULT NULL,
`weight` smallint(6) DEFAULT NULL,
PRIMARY KEY (`pno`)
);
CREATE TABLE `s` ( -- 供应商表
`sno` char(3) NOT NULL, -- 供应商号
`sname` varchar(10) DEFAULT NULL,
`status` char(2) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
PRIMARY KEY (`sno`)
);
CREATE TABLE `spj` ( -- 零件供应表
`sno` char(3) NOT NULL,
`pno` char(3) NOT NULL,
`jno` char(3) NOT NULL,
`qty` smallint(6) DEFAULT NULL,
PRIMARY KEY (`sno`,`pno`,`jno`),
CONSTRAINT `fk_jno` FOREIGN KEY (`jno`) REFERENCES `j` (`jno`),
CONSTRAINT `fk_pno` FOREIGN KEY (`pno`) REFERENCES `p` (`pno`),
CONSTRAINT `fk_sno` FOREIGN KEY (`sno`) REFERENCES `s` (`sno`)
);
表样例
请在这里给出上述表结构对应的表样例。例如
s
表:
p
表:
j
表:
spj
表:
输出样例:
请在这里给出输出样例。例如:
SELECT jno
FROM spj
WHERE sno='s1' AND pno IN (
SELECT pno
FROM spj
WHERE sno='s1'
GROUP BY pno
)
GROUP BY jno
HAVING COUNT(jno)=
(SELECT COUNT(a.pno) sum_pno
FROM (SELECT pno
FROM spj
WHERE sno='s1'
GROUP BY pno
)a
)
10-9 查询年龄18-20之间的学生信息(MSSQL)
分数 5
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写SQL语句,
检索出 stu
表中年龄在18-20之间的学生记录。
注意: 计算年龄时以年计算,不考虑出生月份。假定当前日期为‘2020-03-01'。
提示:MSSQLServer 评测SQL语句。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE stu(
sno char(4) NOT NULL,
sname char(8) NOT NULL,
sex smallint DEFAULT NULL,
mno char(2) DEFAULT NULL,
birdate datetime DEFAULT NULL,
memo text,
PRIMARY KEY (sno)
);
表样例
请在这里给出上述表结构对应的表样例。例如
stu
表:
输出样例:
请在这里给出输出样例。例如:
SELECT
sno 学号,sname 姓名,sex 性别,mno 专业,year('2020-03-01')-year(birdate) AS 年龄,memo 备注
FROM
stu
WHERE
year('2020-03-01')-year(birdate)
BETWEEN
18
AND
22
10-10 查询姓‘李’的学生记录(MSSQL)
分数 5
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写SQL语句,
检索出stu
表中所有姓‘李’的学生记录。
提示:MSSQLServer 评测SQL语句。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE stu(
sno char(4) NOT NULL,
sname nvarchar(8) NOT NULL,
sex smallint DEFAULT NULL,
mno char(2) DEFAULT NULL,
birdate datetime DEFAULT NULL,
memo ntext,
PRIMARY KEY (sno)
);
表样例
请在这里给出上述表结构对应的表样例。例如
stu
表:
输出样例:
请在这里给出输出样例。例如:
SELECT
sno 学号,sname 姓名,sex 性别,mno 专业,birdate 出生日期,memo 备注
FROM
stu
WHERE
sname LIKE N'李%'
10-11 查询部分专业的学生(MSSQL)
分数 10
全屏浏览题目
切换布局
作者 张庆
单位 集美大学
本题目要求编写SQL语句,
检索出 stu
表中‘计算机工程’或‘软件工程’专业的学生的记录,结果集按学号升序排序。
提示:MSSQLServer 评测SQL语句。
表结构:
定义表结构的SQL语句。如:
CREATE TABLE major (
mno char(2) NOT NULL,
mname varchar(20) NOT NULL,
PRIMARY KEY (mno)
);
CREATE TABLE stu (
sno char(4) NOT NULL,
sname char(8) NOT NULL,
sex smallint DEFAULT NULL,
mno char(2) DEFAULT NULL,
birdate datetime DEFAULT NULL,
memo text,
PRIMARY KEY (sno),
CONSTRAINT fk_stu_mno FOREIGN KEY (mno) REFERENCES major (mno)
);
表样例
请在这里给出上述表结构对应的表样例。例如
stu
表:
major
表:
输出样例:
请在这里给出输出样例。例如:
SELECT
sno 学号,sname 姓名,sex 性别,mname 专业
FROM
stu JOIN major ON stu.mno = major.mno
WHERE
major.mno = '01'
OR
major.mno = '02'
ORDER BY
sno