最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

MySQL觸發(fā)器,out,自己和老師的答案,儲存過程,if,elseif,四表查詢【詩書畫唱】

2020-08-20 15:14 作者:詩書畫唱  | 我要投稿

本期看點和重點


使用存儲過程查詢id大于3的學(xué)生數(shù)量
create?procedure?qq6(out?shuliang?int)
begin
select?count(*)?into?shuliang?from?stu1?where?stu1.s_id>3;
end;
set?@shuliang=0;
call?qq6(@shuliang);
select?@shuliang;
select?*?from?banji1


個人對out的儲存過程的理解


用into來給自己聲明的變量賦值等,比如上面的SQL語句中,?count(*)?into?shuliang

就是表示把查到的?count(*) 內(nèi)容,賦值給自己命名的變量shuliang。




1.查詢編號大于指定的數(shù)字(比如3),如果大于指定的數(shù)字就查詢商品名稱,小于指定的數(shù)字就查詢商品名稱和數(shù)量


create procedure ifNum(num int)

begin

if(num>3)then

select spname from sp? where spid=num ;


else

select spname,spshuliang from sp? where spid=num;

end if;

end;

--drop procedure ifNum

call ifNum(2);

call ifNum(4);

2.查詢商品數(shù)量大于指定商品數(shù)量(比如3)的商品信息,如果商品數(shù)量

大于指定商品數(shù)量(比如3),就查詢商品的商品信息,

如果商品數(shù)量小于指定商品數(shù)量(比如3),就查詢前5條商品信息



create procedure ifSPNum(num int)

begin

if(num>3)then

select * from sp? where spid=num ;


else

select * from sp? limit 5;

end if;

end;

--drop procedure ifSPNum

call ifSPNum(2);

call ifSPNum(4);


常見例子:

create?procedure?qweq01(num?int)
begin
if(num=3)then
select?*?from?shangpin;
elseif(num>3)then
select?*?from?dingdan;
else
select?*?from?yonghu;
end?if;
end;












老師寫的答案(執(zhí)行下面的語句前,先要建其要用得表和相關(guān)的數(shù)據(jù)等):


1創(chuàng)建存儲過程,查詢商品表,傳入一個數(shù)字ID,查詢大于這個數(shù)字ID的商品信息
select?*?from?shangpin
create?procedure?qwe06(id?int)
begin
select?*?from?shangpin?where?sp_id>id;
end;
call?qwe06(7)
2創(chuàng)建存儲過程,傳入一個數(shù)字,查詢每個商品的銷售總數(shù)量大于這個數(shù)字的商品是那些
create?procedure?qwe07(shuzi?int)
begin
select?dingdan.sp_id,sum(dingdan.sp_buynum)?from?shangpin?
inner?join?dingdan?on?shangpin.sp_id=dingdan.sp_id
group?by?dingdan.sp_id?having?sum(dingdan.sp_buynum)>shuzi;
end;
call?qwe07(30)
輸出參數(shù):
3查詢張三買了幾件商品
create?procedure?qwe08(out?maideshuliang?int)
begin
select?sum(dingdan.sp_buynum)?into?maideshuliang?from?yonghu?inner?join?dingdan
?on?yonghu.yh_id=dingdan.sp_id
where?yonghu.yh_name='張三';
end;
set?@maideshulinag=0;
call?qwe08(@maideshuliang);
select?@maideshuliang;
4查詢商品數(shù)量最高的商品名稱和數(shù)量
select?*?from?shangpin?
create?procedure?qwe09(out?name?varchar(100),out?shuliang?int)
begin
select?shangpin.sp_name,sum(shangpin.sp_num)
into?name,shuliang?from?shangpin?group?by?shangpin.sp_name
order?by?sum(shangpin.sp_num)?desc?limit?1;
end;?




set?@name='',@shuliang=0;
call?qwe09(@name,@shuliang);
select?@name,@shuliang;





創(chuàng)建四個表,進行SQL語句的操作:


下面是老師的答案:


1.使用存儲過程查詢學(xué)生姓名,生日,班級名稱
create?procedure?qq1()
begin
select??stu1.s_name,stu1.s_birthday,banji1.b_name?from?stu1?inner?join?banji1?on
stu1.s_id=banji1.s_id;
end;
call?qq1
2.使用存儲過程給班級表增加一條語句
create?procedure?qq2()
begin
insert?into?banji1(b_name,s_id,t_id)?values('八班',1,2);
insert?into?banji1(b_name,s_id,t_id)?values('七班班',2,3);
end;
call?qq2
select?*?from?banji1
3.使用存儲過程查詢每個班級的學(xué)生人數(shù)和班級名稱
create?procedure?qq3()
begin
select?count(*)?as?'總?cè)藬?shù)',banji1.b_name?as?'班級名稱'?from?stu1
inner?join?banji1?on?stu1.s_id=banji1.s_id?group?by?banji1.b_name;
end;
call?qq3
4.使用存儲過程查詢年齡在20以上的學(xué)生信息
create?procedure?qq3()
begin
select?*?from?stu1?where?(year(now())-year(stu1.s_birthday))>20;
end;
drop?procedure?qq3
call?qq3
5.使用存儲過程查詢編號在3到5之間的學(xué)生姓名和班級
create?procedure?qq4()
begin
select?*?from?stu1?inner?join?banji1?on?banji1.s_id=stu1.s_id
where?stu1.s_id?between?3?and?5;
end;
call?qq4
6.使用存儲過程得到兩個數(shù)字的和
create?procedure?qq5(num1?int?,num2?int,out?he?int)
begin
set?he=num1+num2;
end;
set?@he=0;
call?qq5(10,20,@he);
select?@he;
7.使用存儲過程查詢id大于3的學(xué)生數(shù)量
create?procedure?qq6(out?shuliang?int)
begin
select?count(*)?into?shuliang?from?stu1?where?stu1.s_id>3;
end;
set?@shuliang=0;
call?qq6(@shuliang);
select?@shuliang;
select?*?from?banji1


個人對out的儲存過程的理解等:


用into來給自己聲明的變量賦值等,比如上面的SQL語句中,?count(*)?into?shuliang

就是表示把查到的?count(*) 內(nèi)容,賦值給自己命名的變量shuliang。


8.使用存儲過程刪除班級表的班級id為3的數(shù)據(jù),返回班級表剩余的數(shù)據(jù)條數(shù)
create?procedure?qq7(out?shuliang?int)
begin
delete?from?banji1?where?b_id=4;
select?count(*)?into?shuliang?from?banji1;
end;
set?@shuliang=0;
call?qq7(@shuliang);
select?@shuliang;
9.創(chuàng)建一個存儲過程,實現(xiàn)兩個數(shù)字的交換
create?procedure?qq8(inout?num1?int,inout?num2?int)
begin
declare?num3?int?default?0;
set?num3=num1;
set?num1=num2;
set?num2=num3;
end;
set?@num1=10,@num2=20;
call?qq8(@num1,@num2);
select?@num1,@num2;
10.創(chuàng)建一個存儲過程,查詢每個班級里有多少學(xué)生
create?procedure?qq9()
begin
select?banji1.b_name,count(*)?from?banji1?group?by?banji1.b_name;?
end;
call?qq9
11.創(chuàng)建一個存儲過程,查詢每個學(xué)生的平均成績
create?procedure?qq10()
begin
select?stu1.s_name,avg(cj1.c_chengji)?from?stu1?inner?join?cj1?on?stu1.s_id=cj1.s_id
group?by?stu1.s_name;
end;
call?qq10
12.創(chuàng)建一個存儲過程,查詢每個老師教多少名學(xué)生
create?procedure?qq11()
begin
select?teacher1.t_name,count(*)?from?banji1?inner?join?teacher1?on?banji1.t_id=teacher1.t_id
group?by?teacher1.t_name;
end;
call?qq11
drop?procedure?qq12
select?*?from?banji1?inner?join?teacher1?on?banji1.t_id=teacher1.t_id
13.創(chuàng)建一個存儲過程,查詢每個學(xué)生的最高分和最低分
create?procedure?qq12()
begin
select?stu1.s_name,max(cj1.c_chengji),min(cj1.c_chengji)?from
? cj1?inner?join?stu1?on?stu1.s_id=cj1.s_id?group?by?stu1.s_name;
end;
call?qq12
14.創(chuàng)建一個存儲過程,查詢平均分大于60的學(xué)生
create?procedure?qq13()
begin
select?stu1.s_name,avg(cj1.c_chengji)?from
? cj1?inner?join?stu1?on?stu1.s_id=cj1.s_id?group?by?stu1.s_name
having?avg(cj1.c_chengji)>60;
end;
call?qq13
15.創(chuàng)建一個存儲過程,查詢平均分最高分比最低分高多少
create?procedure?qq14()
begin
select(
(select?avg(cj1.c_chengji)?from?cj1?group?by?cj1.s_id?order?by?avg(cj1.c_chengji)?desc?limit?1)-
(select?avg(cj1.c_chengji)?from?cj1?group?by?cj1.s_id?order?by?avg(cj1.c_chengji)??limit?1)
);
end;
call?qq14



MySQL觸發(fā)器,out,自己和老師的答案,儲存過程,if,elseif,四表查詢【詩書畫唱】的評論 (共 條)

分享到微博請遵守國家法律
永寿县| 云浮市| 长葛市| 宜宾县| 遵化市| 汉川市| 海口市| 云浮市| 乌拉特后旗| 洛宁县| 合江县| 峨眉山市| 永清县| 稷山县| 吴江市| 平泉县| 南投县| 鄂托克前旗| 宁都县| 龙井市| 桂阳县| 韶关市| 扬州市| 北海市| 益阳市| 图片| 磴口县| 阿荣旗| 河间市| 甘泉县| 女性| 沐川县| 砀山县| 眉山市| 大理市| 丰台区| 永平县| 汉阴县| 炎陵县| 吉木萨尔县| 互助|