sql存储过程实例详解
时间: 2023-08-17 18:34:14 浏览: 107
好的,这里是一个SQL存储过程的实例详解:
假设我们有一个学生表(students)和一个课程表(courses),表结构如下:
students表:
| id | name | age |
|----|----------|-----|
| 1 | Tom | 18 |
| 2 | Jerry | 19 |
| 3 | Mickey | 20 |
| 4 | Minnie | 21 |
| 5 | Donald | 22 |
| 6 | Daisy | 23 |
courses表:
| id | name |
|----|------------|
| 1 | Math |
| 2 | English |
| 3 | Physics |
| 4 | Chemistry |
| 5 | History |
我们需要写一个存储过程,查询某个学生选修的课程。
存储过程代码如下:
```sql
CREATE PROCEDURE GetStudentCourses
@StudentName VARCHAR(50)
AS
BEGIN
SELECT c.name AS CourseName
FROM courses c
INNER JOIN student_courses sc ON c.id = sc.course_id
INNER JOIN students s ON sc.student_id = s.id
WHERE s.name = @StudentName
END
```
存储过程接收一个输入参数@StudentName,表示学生的姓名。存储过程查询courses表、student_courses表和students表,找到该学生选修的所有课程,并返回课程名称。
这个存储过程的使用方法如下:
```sql
EXEC GetStudentCourses 'Tom'
```
执行结果如下:
| CourseName |
|------------|
| Math |
| English |
| Physics |
这个存储过程可以根据不同的输入参数查询不同的学生选修的课程,是一个非常通用的查询操作。
阅读全文