MySQL中查询同时参加计算机和英语考试的学生的信息。
时间: 2024-05-08 18:22:31 浏览: 9
假设有以下表结构:
```
students表:
id | name
---|-----
1 | 张三
2 | 李四
3 | 王五
scores表:
id | student_id | subject
---|-----------|--------
1 | 1 | 计算机
2 | 1 | 英语
3 | 2 | 计算机
4 | 3 | 英语
```
则可以使用以下SQL语句查询同时参加计算机和英语考试的学生的信息:
```
SELECT s.id, s.name
FROM students s
JOIN scores sc1 ON s.id = sc1.student_id AND sc1.subject = '计算机'
JOIN scores sc2 ON s.id = sc2.student_id AND sc2.subject = '英语';
```
结果应该为:
```
id | name
---|-----
1 | 张三
```
相关问题
mysql查询同时参加计算机和英语考试的学生的信息
可以使用如下的SQL语句来查询同时参加计算机和英语考试的学生的信息:
```
SELECT * FROM students
WHERE student_id IN (
SELECT student_id FROM scores
WHERE subject = '计算机'
AND student_id IN (
SELECT student_id FROM scores
WHERE subject = '英语'
)
);
```
其中,假设学生信息存储在名为 `students` 的表中,每个学生有一个唯一的 `student_id`,考试成绩存储在名为 `scores` 的表中,每个成绩记录包括学生的 `student_id`,考试科目 `subject` 和成绩 `score` 三个字段。以上SQL语句的逻辑是先查询参加了计算机考试的学生 `A`,再在这个学生集合中查询同时参加了英语考试的学生 `B`,最后返回学生信息表中 `student_id` 在 `B` 中的学生记录。
mysql二级考试教程_全国计算机等级考试二级教程MySQL练习题及答案
以下是一些MySQL二级考试的练习题及答案,供参考:
1. 创建一个名为“student”的数据库,并在其中创建一个名为“score”的表,包含学生的学号(sid)、姓名(name)、课程名称(course)和成绩(score)四个字段。其中,学号和姓名为字符串类型,长度为10个字符;课程名称为字符串类型,长度为20个字符;成绩为整数类型。
```
CREATE DATABASE student;
USE student;
CREATE TABLE score (
sid VARCHAR(10),
name VARCHAR(10),
course VARCHAR(20),
score INT
);
```
2. 向“score”表中插入以下数据:
```
INSERT INTO score (sid, name, course, score) VALUES
('20180001', '张三', '语文', 80),
('20180001', '张三', '数学', 90),
('20180001', '张三', '英语', 85),
('20180002', '李四', '语文', 75),
('20180002', '李四', '数学', 88),
('20180002', '李四', '英语', 92),
('20180003', '王五', '语文', 85),
('20180003', '王五', '数学', 90),
('20180003', '王五', '英语', 95);
```
3. 查询“score”表中每个学生的总成绩和平均成绩,并按总成绩从高到低排序。
```
SELECT sid, name, SUM(score) AS total_score, AVG(score) AS avg_score
FROM score
GROUP BY sid, name
ORDER BY total_score DESC;
```
4. 查询“score”表中英语成绩最高的学生姓名和成绩。
```
SELECT name, score
FROM score
WHERE course = '英语'
ORDER BY score DESC
LIMIT 1;
```
5. 将“score”表中所有学生的成绩加10分。
```
UPDATE score
SET score = score + 10;
```
以上是一些基础的MySQL二级考试练习题及答案,希望能对您有所帮助。