sql server查询每门课程的课程号、任课教师姓名及其选课人数
时间: 2023-10-02 13:06:24 浏览: 1103
你需要执行以下 SQL 查询语句来实现这个需求:
```
SELECT c.课程号, t.姓名, COUNT(*) AS 选课人数
FROM 课程表 c
INNER JOIN 教师表 t ON c.任课教师编号 = t.教师编号
INNER JOIN 选课表 s ON c.课程号 = s.课程号
GROUP BY c.课程号, t.姓名
```
这个查询语句会把课程表、教师表和选课表进行联结,然后计算每门课程的选课人数并且显示对应的课程号和任课教师的姓名。
相关问题
利用sql server语言,对一个学生管理系统数据库,包括学生表stu(学号,姓名,性别,年龄,系别),课程表course(课程号,课程名,开课地点,任课老师),选课表score(学号,课程号,成绩),教师表teacher(教师编号,教师姓名,职称)和教授表teaching(课程号,教师编号,开课时间,开课地点),创建一个触发器delstudent_ trigger,当删除一条学生记录时,把这个学生所有的选课记录都删除掉
好的,以下是针对你的要求编写的SQL Server触发器:
```
CREATE TRIGGER delstudent_trigger
ON stu
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
DELETE score
FROM score
INNER JOIN deleted ON score.学号 = deleted.学号;
END
```
这个触发器会在stu表中的一条记录被删除之后触发,然后使用INNER JOIN连接score表和被删除的记录,把所有相关的选课记录都一并删除掉。请注意,这个触发器只会删除与被删除的学生相关的选课记录,而不会删除其他学生的选课记录。
使用SQLserver建立一个学生选课系统 , 编写应用程序完成系统开发。 建立基本表: 1. 学生(学号,姓名,性别,年龄,系别) 2. 课程(课程号,课程名,开课系,任课教师) 3. 学习(学号,课程号,成绩) 【实践要求】 要求有以下子系统: ( 1 )基本信息查询子系统 要求:能够显示出学生表、课程表、带参数学生详细信息和选课情况 ( 2 )学生、课程信息维护子系统 要求:能够维护学生表和课程表 ( 3 )学生选课子系统 要求:考虑参照完整性以及用户自定义完整性,实现学生选课功能 ( 4 )系统维护
好的,对于这个问题,我可以给出一些SQL Server的建表和基本操作的示例代码,供您参考。
1. 建立学生表:
```
CREATE TABLE student (
student_id INT PRIMARY KEY,
student_name VARCHAR(50),
student_gender VARCHAR(10),
student_age INT,
student_department VARCHAR(50)
);
```
2. 建立课程表:
```
CREATE TABLE course (
course_id INT PRIMARY KEY,
course_name VARCHAR(50),
course_department VARCHAR(50),
course_teacher VARCHAR(50)
);
```
3. 建立学习表:
```
CREATE TABLE study (
student_id INT,
course_id INT,
score INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES student(student_id),
FOREIGN KEY (course_id) REFERENCES course(course_id)
);
```
4. 实现基本信息查询子系统:
```
-- 显示学生表
SELECT * FROM student;
-- 显示课程表
SELECT * FROM course;
-- 显示带参数的学生详细信息
SELECT * FROM student WHERE student_id = @student_id;
-- 显示选课情况
SELECT student.student_name, course.course_name, study.score
FROM student
INNER JOIN study ON student.student_id = study.student_id
INNER JOIN course ON course.course_id = study.course_id;
```
5. 实现学生、课程信息维护子系统:
```
-- 添加学生
INSERT INTO student (student_id, student_name, student_gender, student_age, student_department) VALUES (@student_id, @student_name, @student_gender, @student_age, @student_department);
-- 修改学生信息
UPDATE student SET student_name = @student_name, student_gender = @student_gender, student_age = @student_age, student_department = @student_department WHERE student_id = @student_id;
-- 删除学生
DELETE FROM student WHERE student_id = @student_id;
-- 添加课程
INSERT INTO course (course_id, course_name, course_department, course_teacher) VALUES (@course_id, @course_name, @course_department, @course_teacher);
-- 修改课程信息
UPDATE course SET course_name = @course_name, course_department = @course_department, course_teacher = @course_teacher WHERE course_id = @course_id;
-- 删除课程
DELETE FROM course WHERE course_id = @course_id;
```
6. 实现学生选课子系统:
```
-- 添加选课记录
INSERT INTO study (student_id, course_id, score) VALUES (@student_id, @course_id, @score);
-- 修改选课记录
UPDATE study SET score = @score WHERE student_id = @student_id AND course_id = @course_id;
-- 删除选课记录
DELETE FROM study WHERE student_id = @student_id AND course_id = @course_id;
```
7. 实现系统维护子系统:
```
-- 备份数据库
BACKUP DATABASE [database_name] TO DISK = 'backup_file_path';
-- 恢复数据库
RESTORE DATABASE [database_name] FROM DISK = 'backup_file_path';
-- 初始化数据库
DROP DATABASE [database_name];
CREATE DATABASE [database_name];
```
以上是一些示例代码,具体情况可能需要根据实际情况进行调整。希望对您有所帮助!
阅读全文