SqlServer中创建存储过程p1,在选课表中根据学号,课程号添加选课信息(学号,姓名,课程号,课程名)
时间: 2024-03-12 22:44:41 浏览: 126
您好!针对您的问题,可以参考下面的SqlServer存储过程代码:
```
CREATE PROCEDURE p1
@学号 INT,
@课程号 INT
AS
BEGIN
DECLARE @姓名 NVARCHAR(20)
DECLARE @课程名 NVARCHAR(20)
-- 根据学号查询姓名
SELECT @姓名 = 姓名 FROM 学生表 WHERE 学号 = @学号
-- 根据课程号查询课程名
SELECT @课程名 = 课程名 FROM 课程表 WHERE 课程号 = @课程号
-- 在选课表中添加选课信息
INSERT INTO 选课表 (学号, 姓名, 课程号, 课程名)
VALUES (@学号, @姓名, @课程号, @课程名)
END
```
以上代码中,首先声明了两个参数@学号和@课程号,分别表示学号和课程号。然后根据学号查询姓名,根据课程号查询课程名,最后在选课表中添加选课信息。注意,这里的学生表和课程表是您自己的表名,需要替换成您实际使用的表名。
希望能够帮到您!
相关问题
SqlServer中创建存储过程p1,在选课表中根据学号,课程号删除选课信息(学号,姓名,课程号,课程名)
好的,您的问题是如何在 SqlServer 中创建存储过程 p1,在选课表中根据学号和课程号删除选课信息(学号,姓名,课程号,课程名)。
下面是一个示例存储过程,它可以在选课表中根据学号和课程号删除选课信息:
```
CREATE PROCEDURE p1
@学号 int,
@课程号 int
AS
BEGIN
DELETE FROM 选课表
WHERE 学号 = @学号 AND 课程号 = @课程号
END
```
在此存储过程中,我们使用了 DELETE 语句来删除选课表中符合条件的行。通过使用 @学号 和 @课程号 参数,我们可以指定要删除的行。请注意,这个示例存储过程中的参数类型和名称应该根据您的实际情况进行修改。
希望这个答案能够解决您的问题。如果您有任何其他问题,请随时提出。
sql 有课程表、教师表、选课表和授课表,课程表包含课程号和课程名称,教师表包含教师姓名和教师编号,选课表包含课程号和学号,授课表包含教师编号和课程号4张表,查询每门课程的课程号、任课教师姓名及其选课人数
你可以使用以下 SQL 语句来实现该查询:
SELECT c.课程号, t.教师姓名, COUNT(s.学号) AS 选课人数
FROM 课程表 c
INNER JOIN 授课表 r ON c.课程号 = r.课程号
INNER JOIN 教师表 t ON r.教师编号 = t.教师编号
LEFT OUTER JOIN 选课表 s ON c.课程号 = s.课程号
GROUP BY c.课程号, t.教师姓名
ORDER BY c.课程号;
这个查询语句的核心部分是通过多个表之间的 INNER JOIN 和 LEFT OUTER JOIN 来关联课程、教师、选课和授课信息。其中,关联课程和授课信息使用 INNER JOIN,关联教师和授课信息使用 INNER JOIN,关联选课和课程信息使用 LEFT OUTER JOIN。最后,使用 GROUP BY 和 COUNT 函数来统计每门课程的选课人数。
阅读全文