当前位置: 首页 > news >正文

MySQL~mysql基础应用相关题

整卷阅览:

 

 想要获取试卷原版请点击以下链接下载:

https://download.csdn.net/download/qq_53142796/88168133icon-default.png?t=N6B9https://download.csdn.net/download/qq_53142796/88168133

 解题过程:

数据库:studentdb

数据库表如下:

 题目一:数据内容基本操作(每题4分,共20分)

1. 创建数据库studentdb

代码如下:

CREATE DATABASE studentdb;USE studentdb;

 

 2. studentdb 数据库中创建student表和score表,包括主外键关系

代码如下:

-- 创建student表
CREATE TABLE IF NOT EXISTS student (STUID INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20) NOT NULL,PHONE VARCHAR(20),SEX VARCHAR(2),BIRTHDAY DATE,SCLASS VARCHAR(50)
);-- 创建score表
CREATE TABLE IF NOT EXISTS score (SCOREID INT PRIMARY KEY AUTO_INCREMENT,STUID INT,ENGLISH INT,MATH INT,FOREIGN KEY (STUID) REFERENCES student(STUID)
);

 

 

3. 插入一条学生信息:姓名:李冰,电话:18866567880,性别:男,出生日期:1980-05-22

代码如下:

INSERT INTO student (NAME, PHONE, SEX, BIRTHDAY)
VALUES ('李冰', '18866567880', '男', '1980-05-22');
SELECT * FROM student;

 

 

4. 修改学生编号为22的英语成绩为88

代码如下:

INSERT INTO student (STUID, NAME, PHONE, SEX, BIRTHDAY)
VALUES (22, '张三', '17866567770', '女', '1982-05-20');INSERT INTO score (STUID, ENGLISH)
VALUES (22, 80);SELECT * FROM student;
SELECT * FROM score;UPDATE score
SET ENGLISH = 88
WHERE STUID = 22;SELECT * FROM score;

 

 

5. 删除学生编号为35的学生信息

代码如下:

INSERT INTO student (STUID, NAME, PHONE, SEX, BIRTHDAY)
VALUES (35, '李四', '14086567770', '男', '1981-05-20');SELECT * FROM student;DELETE FROM student
WHERE STUID = 35;

 

题目二:查询操作(每题5分)

1. 查询所有性别为男的学生信息

代码如下:

INSERT INTO student (NAME, PHONE, SEX, BIRTHDAY)
VALUES ('王五', '15066567880', '男', '1988-08-22'),
('王柳', '14366567880', '男', '1982-08-22'),
('马七', '19466567880', '女', '1995-09-22'),
('马坝', '14276567880', '男', '1995-04-22'),
('张和', '18366567880', '男', '1980-05-22'),
('张武心', '19866567880', '男', '1995-01-22'),
('张二虎', '18766567880', '男', '1995-05-22');SELECT * FROM student;SELECT *
FROM student
WHERE SEX = '男';

 

 

2. 查询所有英语成绩和数学成绩都及格的成绩信息

代码如下:

ALTER TABLE score
ADD COLUMN MATH INT,
ADD COLUMN ENGLISH INT;INSERT INTO score (STUID, MATH, ENGLISH)
VALUES (36, 85, 95), -- 插入王五的成绩(37, 80, 90), -- 插入王柳的成绩(38, 90, 85), -- 插入马七的成绩(39, 85, 90), -- 插入马坝的成绩(40, 85, 95), -- 插入张和的成绩(41, 90, 95), -- 插入张武心的成绩(42, 75, 85); -- 插入张二虎的成绩SELECT * FROM score;SELECT *
FROM score
WHERE ENGLISH >= 60 AND MATH >= 60;

 

 

 

3. 查询出生日期在1995年的学生信息

代码如下:

SELECT *
FROM student
WHERE YEAR(BIRTHDAY) = 1995;

 

4. 学校里面需要在每个月的1号为该月过生日的同学采购生日礼物,于是我们需要一张报表用于查询该年度每个月过生日的同学数,从而计算出每个月生日礼需要的经费,假设每一个同学的生日礼成本为88元钱,需要统计信息:月份、人数、生日礼费用,请用SQL实现

代码如下:

SELECT MONTH(BIRTHDAY) AS 月份, COUNT(*) AS 人数, COUNT(*) * 88 AS 生日礼费用
FROM student
WHERE YEAR(BIRTHDAY) = 1995 
GROUP BY MONTH(BIRTHDAY);

 

 

5. 学校里面需要选拔一批英语超过95分的学生参加市里面的英语大赛,并且还要求成绩从高到低进行显示,方便筛选。学校教务处需要得到信息:学生编号、学生姓名、分数,请用SQL实现:

代码如下:

SELECT student.STUID, student.NAME, score.ENGLISH
FROM student
INNER JOIN score ON student.STUID = score.STUID
WHERE score.ENGLISH > 95
ORDER BY score.ENGLISH DESC;

 

 

6. 查询所有性别为女性的学生的学号,姓名和电话

代码如下:

SELECT STUID, NAME, PHONE
FROM student
WHERE SEX = '女';

 

 

7. 查询所有姓的且是三个字的学生信息,请用至少2中方式实现

代码如下:

-- 第一种 -- 
SELECT *
FROM student
WHERE NAME LIKE '张__' AND LENGTH(NAME) = 3;-- 第二种 --
SELECT *
FROM student
WHERE NAME LIKE '张%'
AND SUBSTR(NAME, 2, 3) != '';

 

8. 查询数学成绩的最高分,最低分,平均分

代码如下:

SELECT MAX(MATH) AS 最高分, MIN(MATH) AS 最低分, AVG(MATH) AS 平均分
FROM score;

 

 

9. 查询数学成绩分数最低的学生人数

代码如下:

SELECT COUNT(*)
FROM score
WHERE MATH = (SELECT MIN(MATH) FROM score);

 

10. 查询既有数学成绩又有英语成绩的学生信息

代码如下:

SELECT s.STUID, s.NAME, sc.ENGLISH, sc.MATH
FROM student s
JOIN score sc ON s.STUID = sc.STUID
WHERE sc.ENGLISH IS NOT NULL AND sc.MATH IS NOT NULL;

 

 

 

11. 统计各班的不同性别的学生人数

代码如下:

SELECT SCLASS, SEX, COUNT(*) AS 人数
FROM student;

 

 

12. 查询所有参与考试的学生信息

代码如下:

SELECT DISTINCT student.*
FROM student
JOIN score ON student.STUID = score.STUID;

 

 

13. 查询所有数学成绩与英语成绩差20分以上的学生名单,这些学生将作为偏科学生由学校老师专门进行辅导。需要查询出的信息:学生编号、学生姓名、数学成绩、英语成绩、分数差值,请用SQL实现。

代码如下:

SELECT student.STUID, student.NAME, score.MATH, score.ENGLISH, ABS(score.MATH - score.ENGLISH) AS 分数差值
FROM student
JOIN score ON student.STUID = score.STUID
WHERE ABS(score.MATH - score.ENGLISH) > 20;

 

 

14. 为了将平均分低于80分的班级作为重点关注班级,需要信息:班级名称、平均分数,请用SQL实现。

代码如下:

SELECT student.SCLASS AS 班级名称, AVG((score.ENGLISH + score.MATH) / 2) AS 平均分数
FROM student
JOIN score ON student.STUID = score.STUID
GROUP BY student.SCLASS
HAVING AVG((score.ENGLISH + score.MATH) / 2) < 80;

http://www.lryc.cn/news/112130.html

相关文章:

  • Redis | 哨兵模式
  • MySQL语句性能分析与优化
  • SpringBoot实现数据库读写分离
  • Linux(四)--包软件管理器与Linux上环境部署示例
  • 自监督去噪:Recorrupted-to-Recorrupted原理分析与总结
  • 【css】css实现水平和垂直居中
  • 常见Charles在Windows10抓包乱码问题
  • 汽车维修保养记录查询API:实现车辆健康状况一手掌握
  • 正则表达式学习记录(Python)
  • Ubuntu20.04操作系统安装Docker
  • python制作小程序制作流程,用python编写一个小程序
  • Github 创建自己的博客网站
  • Windows上安装 jdk 环境并配置环境变量 (超详细教程)
  • 高效构建 vivo 企业级网络流量分析系统
  • 认识awk
  • 【C#学习笔记】数组和索引器
  • 常见距离计算的Python实现
  • 开发运营监控
  • 食品小程序的制作教程
  • Kubernetes(K8s)从入门到精通系列之十三:软件负载平衡选项
  • 数据特征选择 | Matlab实现具有深度度量学习的时频特征嵌入
  • 浅谈webpack
  • 【 stable diffusion LORA模型训练最全最详细教程】
  • 蓝桥杯上岸每日N题 第八期 (全球变暖)!!!
  • CSS基础介绍笔记1
  • https请求异常引发(Received fatal alert: unrecognized_name):如何快速解决项目中问题?
  • 小程序 view下拉滑动导致scrollview滑动事件失效
  • 《ROS2》教程
  • 抖音seo源码开发源代码搭建分享
  • MATLAB——使用建立好的神经网络进行分类程序