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 19:02:48 浏览: 317
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(Sld,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名Sage出生年月Ssex学生性别 --2.课程表 Course(Cld,Cname,Tld) --Cld课程编号,Cname课程名称Tld教师编号 --3.教师表 Teacher(Tld,Tname) --TId 教师编号Tname 教师姓名 :--4.成绩表 SC(Sld,CIdscore) --SId学生编号Cld课程编号score分数 day01 10查询没学过"张三"老师讲授的任一门课程的学生姓名 29.查询任何一门课程成绩在70分以上的姓名、课程名称和分数
查询没学过"张三"老师讲授的任一门课程的学生姓名:
```
SELECT DISTINCT Student.Sname
FROM Student, Course, Teacher, SC
WHERE Student.SId = SC.Sld
AND Course.CId = SC.Cld
AND Course.Tld = Teacher.TId
AND Teacher.Tname != '张三';
```
查询任何一门课程成绩在70分以上的姓名、课程名称和分数:
```
SELECT Student.Sname, Course.Cname, SC.score
FROM Student, Course, SC
WHERE Student.Sld = SC.Sld
AND Course.CId = SC.Cld
AND SC.score >= 70;
```
阅读全文