MySQL
190906 while 구구단 프로시저
猫猫
2019. 9. 9. 12:17
반응형
create table gugutbl ( txt varchar(100)); -- 구구단 테이블 정의
delimiter $$ -- 프로시저 정의 시작
create procedure wgugu() -- 구구단 프로시저 만든담
begin -- 시작
declare i int; -- n단
declare k int; -- n
declare str varchar(100); -- 출력해야되서 저장할 변수 str
set i = 2; -- 2단부터
set k= 1; -- 1~9 까지
while (i<10) do -- 2~9까지 곱함
set str = ''; -- str은 처음에 공백으로
while (k<10) do -- 1~9까지 돌거야.
set str = concat(str,' ',i,'x',k,'=',i*k); -- str(공백 i X k = i*k) 로 출력될거 공백은 띄어쓰기용
set k = k+1; -- k값을 증가시키자
end while; -- 1~9 까지의 while 끝
set i = i +1; -- 1~9까지 돌았으니 i단 증가
set k = 1; -- i *1 부터 해야하니까 k는 1로 초기화
insert into gugutbl values(str); -- 2*1 부터 gugutbl에 밀어넣자
end while; -- 구구단 끝
end $$ -- 구구단 프로시저 정의 끝
delimiter ;
call wgugu(); -- 구구단 실행해줘
mysql> select * from gugutbl; -- 구구단 보여주셈
결과물
+----------------------------------------------------------------+
| txt |
+----------------------------------------------------------------+
| 2x1=2 2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18 |
| 3x1=3 3x2=6 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27 |
| 4x1=4 4x2=8 4x3=12 4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36 |
| 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 5x6=30 5x7=35 5x8=40 5x9=45 |
| 6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 6x7=42 6x8=48 6x9=54 |
| 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 7x8=56 7x9=63 |
| 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 8x9=72 |
| 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 |
+----------------------------------------------------------------+
8 rows in set (0.00 sec)
반응형