티스토리 뷰

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)
반응형

'MySQL' 카테고리의 다른 글

190909 mysql trigger  (0) 2019.09.09
190909 고객등급 프로시저  (0) 2019.09.09
190830 mysql in, out 프로시저  (0) 2019.09.09
mysql max_allowed_packet 에러  (0) 2019.09.03
190830 기본 명령문 예제  (0) 2019.08.30