教职工表Teacher(Tno, TName, age, sal, mgr, DNo),TNo为教职工编号,TName为教职工姓名,age年龄,sal为月薪,mgr为教职工的上一级领导的职工号,DNo为部门号; 课程表Course(Cno, CName, CCredits, CTno),Cno为课程编号,CName为课程名字,CCredits为课程学分, CTno为该课程上课老师的编号,其中外键CTno来自表Teacher的Tno键; 学生表Student(Sno, CLno, SName, SSex, SBir, Email),其中Sno为学生学号,CLno为系别编号,SName为学生姓名,SSex为学生性别,SBir为学生出生日期; 学生选课表SC(Sno, Cno, Score)。 (2)对jiaoxue数据库进行如下检索 1)查询课程号为001的成绩前五名的学生学号和成绩(假设成绩没有重复)。 2)查询每个系的学生人数以及全部学生总人数(提示:with rollup); 3)查询每个学生的学号、姓名和选课的课程号,每个学生只显示一行数据,如果该学生选了多门课,则所选的课程号放在同一行里,用逗号隔开(提示:group_concat()); 4)查询课程名以英文字母开头的课程信息(提示:正则表达式查询); 5)查询课程名纯英文字母的课程信息(提示:正则表达式查询)。
时间: 2024-03-26 12:39:39 浏览: 223
.分别查询学生表和学生修课表中的全部数据。
1)查询课程号为001的成绩前五名的学生学号和成绩(假设成绩没有重复)。
```
SELECT Sno, Score
FROM SC
WHERE Cno = '001'
ORDER BY Score DESC
LIMIT 5;
```
2)查询每个系的学生人数以及全部学生总人数(提示:with rollup)。
```
SELECT CLno, COUNT(*) AS '学生人数'
FROM Student
GROUP BY CLno WITH ROLLUP;
```
3)查询每个学生的学号、姓名和选课的课程号,每个学生只显示一行数据,如果该学生选了多门课,则所选的课程号放在同一行里,用逗号隔开(提示:group_concat())。
```
SELECT Sno, SName, GROUP_CONCAT(Cno SEPARATOR ',') AS '选课课程号'
FROM SC
JOIN Student ON SC.Sno = Student.Sno
GROUP BY SC.Sno;
```
4)查询课程名以英文字母开头的课程信息(提示:正则表达式查询)。
```
SELECT *
FROM Course
WHERE CName REGEXP '^[a-zA-Z]';
```
5)查询课程名纯英文字母的课程信息(提示:正则表达式查询)。
```
SELECT *
FROM Course
WHERE CName REGEXP '^[a-zA-Z]+$';
```
阅读全文