现有学生信息表、学生成绩表,当学生成绩有一科目不合格该学生的信息不在展示,sql应该怎么写
时间: 2023-06-12 16:08:08 浏览: 66
假设学生信息表名为 `students`,学生成绩表名为 `scores`,不合格科目的成绩为小于等于60分,可以使用如下 SQL 语句查询合格学生的信息和成绩:
```
SELECT s.name, s.age, s.gender, sc.subject, sc.score
FROM students s
JOIN scores sc ON s.id = sc.student_id
WHERE sc.score > 60
```
这个 SQL 查询语句使用了 `JOIN` 子句将学生信息表和学生成绩表关联起来,然后使用 `WHERE` 子句过滤掉不合格的成绩,只展示合格学生的信息和成绩。其中 `s.id` 和 `sc.student_id` 是两个表之间的关联字段。
相关问题
.创建一张学生科目成绩表,包含信息有:姓名、科目、成绩。
在关系型数据库中,可以使用SQL语句创建一张学生科目成绩表,例如:
```sql
CREATE TABLE student_score (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
subject VARCHAR(50) NOT NULL,
score FLOAT NOT NULL,
PRIMARY KEY (id)
);
```
以上SQL语句创建了一个名为`student_score`的表,包含了三个字段:`name`表示学生姓名,`subject`表示科目,`score`表示成绩。其中,`id`作为主键用来标识每个记录的唯一性。`AUTO_INCREMENT`关键字表示每次插入新记录时自动递增。`NOT NULL`表示该字段不能为空。`FLOAT`表示成绩的数据类型为浮点数,可以存储小数。
sql将平均成绩低于70的学生信息存放在低于70分平均成绩表中
可以使用以下SQL语句实现将平均成绩低于70的学生信息存放在低于70分平均成绩表中:
```
INSERT INTO 低于70分平均成绩表 (学生姓名, 平均成绩)
SELECT 学生姓名, AVG(成绩) AS 平均成绩
FROM 学生成绩表
GROUP BY 学生姓名
HAVING AVG(成绩) < 70;
```
其中,`学生姓名`和`成绩`是学生成绩表中的字段名,`低于70分平均成绩表`是需要创建的表名。这个SQL语句会计算每个学生的平均成绩,然后将平均成绩低于70的学生信息插入到新创建的表中。