学生表:id、name 成绩表:id、科目(语数外)、分数 所有科目大于80分的学生姓名 sql语句
时间: 2023-08-07 22:06:52 浏览: 151
可以使用以下SQL语句:
```
SELECT DISTINCT s.name
FROM 学生表 s
INNER JOIN 成绩表 c ON s.id = c.id
WHERE c.分数 > 80
```
这个语句使用了INNER JOIN连接了学生表和成绩表,筛选出所有分数大于80的成绩记录,并通过DISTINCT去重,最终输出学生的姓名。
相关问题
数据库SQL:一张学生成绩表score,部分内容如下:name course grade 张三操作系统67 张三数据结构86 李四软件工程89 用一条SQL语句查询出每]课都大于80分的学生姓名。
SELECT name FROM score WHERE course IN (SELECT DISTINCT course FROM score WHERE grade > 80) GROUP BY name HAVING COUNT(*) = (SELECT COUNT(DISTINCT course) FROM score WHERE grade > 80)
新建三张表,分别为班级表(classes),学生表(student),学生成绩表(student_score) 对应的字段如下: 班级表: 班级id(class_id),班级名称(class_name),创建时间(create_time) 学生表: 班级id(class_id),学生id(stu_id),学生姓名(stu_name),年龄(age),性别(sex),家庭住址(address),生日(brithday) 学生成绩表: 班级id(class_id),学生id(stu_id),分数(score) 交付内容:三张表的完整建表语句,每张表需包含主键或者索引。
班级表(classes)建表语句:
```sql
CREATE TABLE classes (
class_id INT PRIMARY KEY AUTO_INCREMENT,
class_name VARCHAR(50) NOT NULL,
create_time DATETIME NOT NULL
);
```
学生表(student)建表语句:
```sql
CREATE TABLE student (
stu_id INT PRIMARY KEY AUTO_INCREMENT,
class_id INT NOT NULL,
stu_name VARCHAR(50) NOT NULL,
age INT NOT NULL,
sex CHAR(1) NOT NULL,
address VARCHAR(100) NOT NULL,
birthday DATE NOT NULL,
FOREIGN KEY (class_id) REFERENCES classes (class_id)
);
```
学生成绩表(student_score)建表语句:
```sql
CREATE TABLE student_score (
score_id INT PRIMARY KEY AUTO_INCREMENT,
class_id INT NOT NULL,
stu_id INT NOT NULL,
score DECIMAL(5, 2) NOT NULL,
FOREIGN KEY (class_id) REFERENCES classes (class_id),
FOREIGN KEY (stu_id) REFERENCES student (stu_id)
);
```
在学生表和学生成绩表中,使用了外键关联班级表的班级id字段,保证了数据的完整性和准确性。同时,每张表都设置了主键或者索引来唯一标识每条记录。
阅读全文