多测师课堂011_mysql之存储过程(练习和答案)高级讲师肖sir
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了多测师课堂011_mysql之存储过程(练习和答案)高级讲师肖sir,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3953字,纯文字阅读大概需要6分钟。
内容图文
![多测师课堂011_mysql之存储过程(练习和答案)高级讲师肖sir](/upload/InfoBanner/zyjiaocheng/870/434866816c814345a77582dfb08e489c.jpg)
Create table student
(
Id varchar(255), #学号
Name varchar(255), #姓名
Roomid varchar(255), #班级
Sex char(1), #性别
Degree varchar(3) #成绩
);
Insert into student values('1','amy','8','0','65');
Insert into student values('2','bob','4','1','80');
Insert into student values('3','candy','6','0','70');
Insert into student values('4','danny','8','1','90');
Insert into student values('5','edward','8','1','95');
Insert into student values('6','frank','7','1','100');
1:创建一个存储过程,实现查询表student中的记录信息,并执行存储过程
delimiter //
drop procedure if exists aaaa;
CREATE procedure aaaa()
begin
SELECT * from student;
END
//
call aaaa()
2:创建一个存储过程,根据给定的学生学号返回该学生的姓名
delimiter //
drop procedure if EXISTS bbbb;
CREATE procedure bbbb(in n int)
begin
SELECT `Name` from student where Id=n;
END
//
call bbbb(1)
3:创建一个存储过程,根据所给的班级的编号,统计该班人数,并将人数以输出变量返回给用户。
delimiter//
-- drop PROCEDURE if EXISTS stu_count;
-- CREATE PROCEDURE stu_count(in rid INT,OUT cb int )
-- BEGIN
-- SELECT COUNT(room_id) INTO cb FROM student3 WHERE room_id = rid;
-- end
-- //
--
-- SET @rid = 8;
-- call stu_count(@rid,@cb);
--SELECT @cb;
4:创建一个存储过程,根据所给的学号查询该学生的考试分数是否超过了85分, 若超过则输出“ 考得好”, 否则输出 “考得不好”。
delimiter//
-- drop PROCEDURE if EXISTS kao;
-- CREATE PROCEDURE kao(in s_no INT )
-- BEGIN
-- DECLARE i int ;
-- SELECT degree INTO i FROM student3 WHERE id = s_no;
-- if i > 85 THEN
-- SELECT "考的好";
-- else
-- SELECT "考得不好";
-- end if;
-- end
-- //
call kao(2)
delimiter//
create PROCEDURE gg (in n varchar(255))
BEGIN
declare i VARCHAR(3) default 85;
declare m VARCHAR(3);
set m:=(select Degree from student where Id=n);
if m>i THEN
select "考得好";
ELSE
select "考得不好";
end IF;
END
////
-- -- delimiter //
-- -- drop procedure if exists d;
-- -- create procedure d(in n int,out m int)
-- -- begin
-- -- select Degree into m from student001 where Id=n;
-- -- if m>=85 THEN
-- -- select '考得好';
-- -- else
-- -- select '考得不好';
-- -- end if;
-- -- end
-- -- //
call d(6,@m);
-- delimiter //
-- drop procedure if exists d;
-- create procedure d(in n int,out m int)
-- begin
-- select Degree into m from student001 where Id=n;
-- select if( m>85 ,'考得好','考的不好');
-- end
-- //
call d(2,@m);
实验5:创建一个存储过程,对表student增加两条记录。
delimiter //
drop procedure if EXISTS eeee;
CREATE procedure eeee(in n int)
BEGIN
insert into student VALUES(n,n,n,n,n);
insert into student VALUES(n,n,n,n,n);
END
//
call eeee(1);
SELECT * from student
6:请撰写一个存储过程,输出各班学生的平均成绩。
delimiter //
drop procedure if EXISTS ffff;
CREATE procedure ffff()
begin
SELECT Roomid,avg(Degree) from student GROUP BY Roomid;
END
//
CALL ffff()
7:请撰写一个存储过程,能根据用户输入的学号,输出学生的姓名、性别到两个参数变量中,以供其它程序使用。
delimiter //
drop procedure if exists gg;
create procedure gg(in n int,out m varchar(255),out l varchar(255))
BEGIN
select name into m from student where id=n;
select sex into l from student where id=n;
END
//
call gg(1,@m,@l);
select @m,@l
8:撰写一个存储过程,根据用户输入的学号,输出学生的姓名、年龄两个参数到新表temp中Create table temp(Sex varchar(255),Degree varchar(255));
#create table temp(sex varchar(255),degree varchar(255));
#SELECT * FROM temp ;
-- delimiter //
-- drop procedure if exists hh;
-- create procedure hh(in n int)
-- BEGIN
-- insert into temp select sex,degree from student001 where id=n ;
-- END//
#call hh(4)
#select * from temp ;
delimiter //
drop procedure if exists hh;
create procedure hh(in n int,out a char(20), out b char(20))
BEGIN
select sex ,degree into a,b from student001 where id=n ;
insert into temp (sex,degree)values (a,b) ;
END//
call hh(2,@a,@b);
select @a,@b;
select * from temp ;
--
9:请撰写一个存储过程,求1+2+3+…x的值。
delimiter //
drop procedure if exists iiii;
create procedure iiii(in n int)
begin
declare a int;
set a=(n+1)*n/2;
SELECT a;
END
//
内容总结
以上是互联网集市为您收集整理的多测师课堂011_mysql之存储过程(练习和答案)高级讲师肖sir全部内容,希望文章能够帮你解决多测师课堂011_mysql之存储过程(练习和答案)高级讲师肖sir所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。