mysql问题:建立存储过程或函数输入名字后,求某个同学以获得学分。
时间: 2024-12-21 14:28:48 浏览: 12
在MySQL中,你可以创建存储过程(Stored Procedure)或用户自定义函数(User Defined Function,UDF)来处理这类需求。假设你有一个包含学生信息的表(如`students`),其中包含了学生的姓名(`name`)和他们获取的学分(`credits`)。如果你想要编写一个存储过程,允许查询特定同学的学分,可以按照以下步骤操作:
1. **创建存储过程**:
```sql
DELIMITER //
CREATE PROCEDURE GetCreditsByName(IN studentName VARCHAR(100))
BEGIN
SELECT credits
FROM students
WHERE name = studentName;
END //
DELIMITER ;
```
在这个例子中,`GetCreditsByName`是你输入的名字,它接受一个参数`studentName`。当调用这个存储过程并传入某位同学的名字时,它会返回对应的学生的学分。
2. **创建用户自定义函数**(如果数据库支持的话):
```sql
DELIMITER //
CREATE FUNCTION GetStudentCredits(p_name VARCHAR(100)) RETURNS INT
RETURNS SQL SECURITY INVOKER
BEGIN
RETURN (SELECT credits
FROM students
WHERE name = p_name);
END //
DELIMITER ;
```
函数`GetStudentCredits`也接受`p_name`作为参数,并返回该同学的学分。
3. **调用存储过程或函数**:
```sql
CALL GetCreditsByName('张三'); -- 存储过程
SELECT GetStudentCredits('李四'); -- 函数
```
阅读全文