创建游标,查询张姓学生在各系的分布以及姓名性别年龄
时间: 2024-03-09 18:48:22 浏览: 55
使用游标浏览学生记录
好的,以下是使用游标查询张姓学生在各系的分布以及姓名性别年龄的 SQL 语句:
```
DECLARE @name VARCHAR(20)
DECLARE @gender VARCHAR(2)
DECLARE @age INT
DECLARE @department_name VARCHAR(20)
DECLARE student_cursor CURSOR FOR
SELECT s.name, s.gender, s.age, d.department_name
FROM student s, department d
WHERE s.department_id = d.department_id
AND s.name LIKE '张%'
ORDER BY d.department_name ASC;
OPEN student_cursor;
FETCH NEXT FROM student_cursor INTO @name, @gender, @age, @department_name;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '姓名:' + @name + ',性别:' + @gender + ',年龄:' + CAST(@age AS VARCHAR(2)) + ',系别:' + @department_name;
FETCH NEXT FROM student_cursor INTO @name, @gender, @age, @department_name;
END;
CLOSE student_cursor;
DEALLOCATE student_cursor;
```
这个 SQL 语句会创建一个游标 `student_cursor`,并使用之前的 SQL 语句查询所有姓张的学生信息。然后,通过 `FETCH NEXT` 语句将每个学生的姓名、性别、年龄和系别名称依次赋值给对应的变量。接着,在一个 `WHILE` 循环中,将每个学生的信息打印出来。最后,关闭游标并释放资源。
需要注意的是,游标虽然能够完成这个查询,但是它的性能可能不如直接查询语句。所以,在实际的生产环境中,应该尽量避免使用游标。
阅读全文