PTA - 数据库合集6

目录

10-1 查询选修‘C语言’课程的学生

10-2 查询平均分高于80分的学生

10-3 查询平均成绩最高的前3名同学

10-4 批量插入学生记录

10-5 修改女生成绩

10-7 spj-查询供应工程 j1 的供应商

10-8 spj-查询至少使用s1供应商所供应的全部零件的工程

10-9 查询年龄18-20之间的学生信息(MSSQL)

10-10 查询姓‘李’的学生记录(MSSQL)

10-11 查询部分专业的学生(MSSQL)


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

### PTA 平台上的数据库相关填空题 PTA (Programming Teaching Assistant) 是一个在线编程教学辅助平台,广泛应用于高校计算机课程的教学中。对于数据库相关的练习题目,在该平台上通常会设计一系列针对SQL句理解和应用的填空题来帮助学生掌握知识点。 #### SQL 基础法填空示例 为了让学生熟悉基本的 `SELECT` 句结构,可能会有如下形式的填空题: ```sql -- 查询 student 表中的所有记录 SELECT ___ FROM student; ``` 此类题目旨在考察对简单查询命令的理解和记忆能力[^1]。 #### 数据库概念理解型填空 除了具体的SQL操作外,还会涉及到一些理论性的内容,比如关系模型的概念: - 关系模式由三部分组成:属性集合、域以及___【完整性约束条件】___ 这类问题有助于加深学习者对于基础理论的认识水平[^2]。 #### 实际应用场景下的综合运用 更进一步,则会出现结合实际场景的应用类题目,例如给定业务背景后要求完成特定功能的数据检索表达式的编写: 假设有一个名为 orders 的订单表,其中包含 order_id, customer_name 和 total_amount 字段,请写出一条能够获取总金额大于等于500元的所有订单信息并按照时间降序排列的结果集的SQL句: ```sql SELECT * FROM orders WHERE total_amount >= 500 ORDER BY ___ DESC ; ``` 通过这种方式可以有效检验学员能否灵活运用所学知识解决具体问题的能力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羊 : )

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值