创建一个存储过程my_procgender,使其能够查询学生表中男学生或者女学生的学号姓名性别和年龄
时间: 2024-03-01 09:49:30 浏览: 64
好的,以下是存储过程的SQL语句:
```
CREATE PROCEDURE my_procgender(IN gender CHAR)
BEGIN
SELECT stu_id, stu_name, stu_gender, YEAR(CURDATE())-YEAR(stu_birthday) AS age
FROM student
WHERE stu_gender = gender;
END
```
这个存储过程名为`my_procgender`,有一个输入参数`gender`,用于指定查询男学生(`gender='M'`)或女学生(`gender='F'`)。查询结果包括学号、姓名、性别和年龄。其中,年龄通过当前日期和学生生日计算得出。
例如,要查询女学生的信息,可以执行存储过程如下:
```
CALL my_procgender('F');
```
注意,在执行存储过程前,需要先创建`student`表,并插入一些测试数据。
相关问题
创建一个带入参的存储过程my_procgender,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系,并执行
好的,以下是创建存储过程的SQL语句:
```
CREATE PROCEDURE my_procgender(IN gender CHAR(2))
BEGIN
SELECT student_no, student_name, student_gender, student_age, department_name
FROM student
INNER JOIN department ON student.department_id = department.department_id
WHERE student_gender = gender;
END
```
这个存储过程取一个输入参数gender,然后查询“学生表”中性别为该参数值的学生的相关信息。使用INNER JOIN语句将学生表中的院系ID与院系表中的ID进行匹配,以获得所在院系名称。最后,该存储过程只返回符合条件的记录。
创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系。
具体实现可能因数据库类型和表结构而异,以下是一个SQL Server数据库的示例:
```sql
CREATE PROCEDURE my_proc
AS
BEGIN
SELECT 学号, 姓名, 性别, 年龄, 所在院系
FROM 学生表
WHERE 专业 = '计算机系' AND 性别 = '女'
END
```
上述存储过程名为my_proc,通过SELECT语句从学生表中查询符合条件的学生信息。在该SELECT语句中,WHERE子句用于筛选条件,只选择专业为“计算机系”且性别为“女”的学生。最终查询结果包括学号、姓名、性别、年龄和所在院系。