使用MySQL3、创建存储过程,存储过程名为proc_depart,利用这个存储过程在学生基本信息表student中修改系名称,把修改前的旧系名和修改后的新系名作为参数传递给存储过程。 执行存储过程,将软件工程系改为软件系。
时间: 2024-03-01 15:28:26 浏览: 59
首先,你需要在MySQL3中创建存储过程proc_depart,代码如下:
```
DELIMITER //
CREATE PROCEDURE proc_depart(IN old_dept VARCHAR(50), IN new_dept VARCHAR(50))
BEGIN
UPDATE student SET department = new_dept WHERE department = old_dept;
END //
DELIMITER ;
```
这个存储过程有两个输入参数,分别是旧系名和新系名。它会在学生基本信息表student中查找所有旧系名,并将它们修改为新系名。
然后,你可以执行这个存储过程,将软件工程系改为软件系,代码如下:
```
CALL proc_depart('软件工程系', '软件系');
```
执行完毕后,所有在学生基本信息表student中的软件工程系都会被修改为软件系。
相关问题
(5分)1、创建存储过程,存储过程名为proc_depart,利用这个存储过程在学生基本信息表 student中修改系名称,把修改前的旧系名和修改后的新系名作为参数传递给存储过程。 执行存储过程,将软件工程系改为软件系。 (5分)2、创建一个存储过程,根据给定的字符串,逐一显示字符串中的每个字符。 执行存储过程(字符串自己设定)。
很高兴为您解答。以下是您所需的代码:
1、创建存储过程proc_depart,用于修改学生基本信息表student中的系名称:
```sql
CREATE PROCEDURE proc_depart
@old_depart nvarchar(50),
@new_depart nvarchar(50)
AS
BEGIN
UPDATE student
SET depart = @new_depart
WHERE depart = @old_depart
END
```
执行存储过程,将软件工程系改为软件系:
```sql
EXEC proc_depart '软件工程系', '软件系'
```
2、创建一个存储过程,用于逐一显示给定字符串中的每个字符:
```sql
CREATE PROCEDURE proc_showChar
@str nvarchar(max)
AS
BEGIN
DECLARE @i int = 1
DECLARE @len int = LEN(@str)
WHILE @i <= @len
BEGIN
PRINT SUBSTRING(@str, @i, 1)
SET @i = @i + 1
END
END
```
执行存储过程,逐一显示字符串中的每个字符:
```sql
EXEC proc_showChar 'Hello, world!'
```
(1)创建存储过程Stu_proc_number,使用Student表中的学生人数来初始化一个局部变量,并调用这个存储过程。 (2)创建添加学生记录的存储过程Stu_proc_add,并调用该存储过程。 (3)创建存储过程Stu_proc_age,比较两学生的年龄,若前者比后者大就输出 0,否则输出1,并执行该存储过程。 (4)创建一存储过程Stu_proc_course,用来传入的参数:课程号,判断该课程是否已有学生选修。若有,存储过程返回1,若没有,存储过程返回0。 (5)创建一存储过程Stu_proc_snograde,根据学生学号查询某学生选修了的课程的名称及成绩,学号为参数输入,并调用该存储过程。 (6)展开EDUC数据库,鼠标单击“存储过程”,选择右边列表中刚刚建立的存储过程名,双击或右击之,出现属性对话框,可以查看存储过程的定义语句,必要时可进行修改。
很好,以下是对应的SQL语句和存储过程定义:
(1)创建存储过程Stu_proc_number
```
CREATE PROCEDURE Stu_proc_number
AS BEGIN
DECLARE @StuNum INT
SELECT @StuNum = COUNT(*) FROM Student
PRINT '学生人数为:' + CAST(@StuNum AS VARCHAR(10))
END
```
调用该存储过程:
```
EXEC Stu_proc_number
```
(2)创建添加学生记录的存储过程Stu_proc_add
```
CREATE PROCEDURE Stu_proc_add
@StuName VARCHAR(20),
@StuAge INT,
@StuGender VARCHAR(2),
@StuMajor VARCHAR(20)
AS BEGIN
INSERT INTO Student(StuName, StuAge, StuGender, StuMajor)
VALUES(@StuName, @StuAge, @StuGender, @StuMajor)
END
```
调用该存储过程:
```
EXEC Stu_proc_add '张三', 20, '男', '计算机科学'
```
(3)创建存储过程Stu_proc_age
```
CREATE PROCEDURE Stu_proc_age
@StuID1 INT,
@StuID2 INT
AS BEGIN
DECLARE @Age1 INT, @Age2 INT
SELECT @Age1 = StuAge FROM Student WHERE StuID = @StuID1
SELECT @Age2 = StuAge FROM Student WHERE StuID = @StuID2
IF @Age1 > @Age2
PRINT '0'
ELSE
PRINT '1'
END
```
调用该存储过程:
```
EXEC Stu_proc_age 1, 2
```
(4)创建一存储过程Stu_proc_course
```
CREATE PROCEDURE Stu_proc_course
@CourseID INT
AS BEGIN
IF EXISTS(SELECT * FROM SC WHERE CourseID = @CourseID)
PRINT '1'
ELSE
PRINT '0'
END
```
调用该存储过程:
```
EXEC Stu_proc_course 1
```
(5)创建一存储过程Stu_proc_snograde
```
CREATE PROCEDURE Stu_proc_snograde
@StuID INT
AS BEGIN
SELECT Course.CourseName, SC.Score FROM SC
INNER JOIN Course ON SC.CourseID = Course.CourseID
WHERE SC.StuID = @StuID
END
```
调用该存储过程:
```
EXEC Stu_proc_snograde 1
```
(6)展开EDUC数据库,鼠标单击“存储过程”,选择右边列表中刚刚建立的存储过程名,双击或右击之,出现属性对话框,可以查看存储过程的定义语句,必要时可进行修改。
阅读全文