Mysql中 数据表: 学生表Student( Sid ,Sname ,Sage ,Ssex) --SId学生编号,Sname学生姓名,Sage出生年月,Ssex学生性别 教师表Teacher( Tid ,Tname) --TId教师编号,Tname教师姓名 课程表Course(Cid ,Cname Tid) --CId课程编号,Cname课程名称,TId教师编号 成绩表SC( Sid ,Cid ,Score) --SId学生编号,CId课程编号,score分数 1、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分;2、检索“004”课程分数小于60,按分数降序排列的同学学号; 3、查询姓‘李’的老师的个数; 4、查询没学过“叶平”老师课的同学的学号、姓名;
时间: 2024-02-15 21:02:48 浏览: 44
1. 查询各科成绩最高和最低的分:
```mysql
-- 最高分
SELECT Cid, MAX(Score) AS '最高分'
FROM SC
GROUP BY Cid;
-- 最低分
SELECT Cid, MIN(Score) AS '最低分'
FROM SC
GROUP BY Cid;
```
2. 检索“004”课程分数小于60,按分数降序排列的同学学号:
```mysql
SELECT Sid
FROM SC
WHERE Cid = '004' AND Score < 60
ORDER BY Score DESC;
```
3. 查询姓‘李’的老师的个数:
```mysql
SELECT COUNT(*)
FROM Teacher
WHERE Tname LIKE '李%';
```
4. 查询没学过“叶平”老师课的同学的学号、姓名:
```mysql
SELECT Student.Sid, Sname
FROM Student
LEFT JOIN SC ON Student.Sid = SC.Sid
WHERE SC.Sid IS NULL OR SC.Cid NOT IN (
SELECT Cid
FROM Course
WHERE Tid = (
SELECT Tid
FROM Teacher
WHERE Tname = '叶平'
)
);
```
相关问题
[简答题] 对于上题的教务管理数据库: --1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号 --3.教师表 Teacher(TID,Tname) --TID 教师编号,Tname 教师姓名 --4.成绩表 SC(SID,CID,score) --SID 学生编号
,CID 课程编号,score 成绩
以上教务管理数据库中的四个表可以通过以下 SQL 语句进行创建:
```sql
CREATE TABLE Student (
SID INT PRIMARY KEY,
Sname VARCHAR(20),
Sage DATE,
Ssex VARCHAR(2)
);
CREATE TABLE Course (
CID INT PRIMARY KEY,
Cname VARCHAR(20),
TID INT,
FOREIGN KEY (TID) REFERENCES Teacher(TID)
);
CREATE TABLE Teacher (
TID INT PRIMARY KEY,
Tname VARCHAR(20)
);
CREATE TABLE SC (
SID INT,
CID INT,
score INT,
PRIMARY KEY (SID, CID),
FOREIGN KEY (SID) REFERENCES Student(SID),
FOREIGN KEY (CID) REFERENCES Course(CID)
);
```
其中,Student 表的主键为 SID,Course 表的主键为 CID,Teacher 表的主键为 TID,SC 表的主键为 (SID, CID)。Course 表中的 TID 列为外键,引用自 Teacher 表的 TID 列。SC 表中的 SID 列和 CID 列都为外键,分别引用自 Student 表的 SID 列和 Course 表的 CID 列。这样设计可以保证数据的完整性和一致性。
有以下四张表: 1).学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 2).课程表 Course(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号 3).教师表 Teacher(TID,Tname) --TID 教师编号,Tname 教师姓名 4).成绩表 SC(SID,CID,score) --SID 学生编号,CID 课程编号,score 分数 请写出以下
SQL语句:
1. 查询所有学生的姓名、年龄和性别:
```
SELECT Sname, Sage, Ssex FROM Student;
```
2. 查询所有课程的名称和对应的教师姓名:
```
SELECT Cname, Tname FROM Course, Teacher WHERE Course.TID = Teacher.TID;
```
3. 查询所有选修了某门课程的学生的姓名和成绩:
```
SELECT Student.Sname, SC.score FROM Student, SC WHERE Student.SID = SC.SID AND SC.CID = '某门课程编号';
```
4. 查询某个学生的所有成绩及其对应的课程名称:
```
SELECT Course.Cname, SC.score FROM Course, SC WHERE Course.CID = SC.CID AND SC.SID = '某个学生编号';
```