MySQL~mysql基础应用相关题

整卷阅览:

MySQL~mysql基础应用相关题_第1张图片

 MySQL~mysql基础应用相关题_第2张图片

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

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

 解题过程:

数据库:studentdb

数据库表如下:

MySQL~mysql基础应用相关题_第3张图片

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

1. 创建数据库studentdb

代码如下:

CREATE DATABASE studentdb;

USE studentdb;

MySQL~mysql基础应用相关题_第4张图片

 

 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)
);

 MySQL~mysql基础应用相关题_第5张图片

 

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

代码如下:

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

MySQL~mysql基础应用相关题_第6张图片

 

 

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;

MySQL~mysql基础应用相关题_第7张图片

 MySQL~mysql基础应用相关题_第8张图片

 

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;

MySQL~mysql基础应用相关题_第9张图片

 

题目二:查询操作(每题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 = '男';

MySQL~mysql基础应用相关题_第10张图片

 MySQL~mysql基础应用相关题_第11张图片

 

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;

MySQL~mysql基础应用相关题_第12张图片

 MySQL~mysql基础应用相关题_第13张图片

 MySQL~mysql基础应用相关题_第14张图片

 

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

代码如下:

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

MySQL~mysql基础应用相关题_第15张图片

 

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

代码如下:

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

MySQL~mysql基础应用相关题_第16张图片

 

 

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;

MySQL~mysql基础应用相关题_第17张图片

 

 

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

代码如下:

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

MySQL~mysql基础应用相关题_第18张图片

 

 

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

代码如下:

-- 第一种 -- 
SELECT *
FROM student
WHERE NAME LIKE '张__' AND LENGTH(NAME) = 3;

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

MySQL~mysql基础应用相关题_第19张图片

 

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

代码如下:

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

MySQL~mysql基础应用相关题_第20张图片

 

 

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

代码如下:

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

MySQL~mysql基础应用相关题_第21张图片

 

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;

MySQL~mysql基础应用相关题_第22张图片

 

 

 

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

代码如下:

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

MySQL~mysql基础应用相关题_第23张图片

 

 

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

代码如下:

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

MySQL~mysql基础应用相关题_第24张图片

 

 

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;

MySQL~mysql基础应用相关题_第25张图片

 

 

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;

MySQL~mysql基础应用相关题_第26张图片

你可能感兴趣的:(mysql数据库,mysql,数据库)