CMD 관리자 권한 -> 파일경로 설정(cd \파일경로) -> mysql 접속 -> source db파일.sql 
하면 db내용 불러옮

Inner join -> 다 빼옴
outer join -> 필요한 부분만 뺴오기
cross join -> 행의 갯수 찾는용정도?

concat() 문자열을 이어줌

 

 

-- 프로시저 만들고 부르기
use testdb;

drop procedure if EXISTS userproc1;
delimiter $$
create PROCEDURE userproc1(IN username varchar(8))
begin
select * from usertbl where name = username;
end $$
delimiter ;

call userproc1('JSH');

-- 입력 매개 변수가 2개이상
use testdb;
drop procedure if EXISTS userproc1;
delimiter $$
create PROCEDURE userproc1(IN userYear int , IN userHeight int)
begin
select * from usertbl where birthYear > useryear and height > userHeight;
end $$
delimiter ;

call userproc1(1990, 173);

-- IF Else문
use testdb;
drop procedure if exists ifelseproc;
delimiter $$

create procedure ifelseproc(in username varchar(8))
begin
declare byear int; -- 변수 선언
    select birthyear into byear from usertbl where name = username;
    
    if(byear >= 1980) then
select '80년대생이야';
else
select '80년대생이 아니야';
end if;
end $$
delimiter ;

call ifelseproc('JSH');

-- Case문
use testdb;
drop procedure if exists caseproc;
delimiter $$

create procedure caseproc(in username varchar(8))
begin
declare byear int;
    declare tti char(3);
    select birthyear into byear from usertbl where name = username;    
    case
when (byear%12=4) then set tti = '쥐';
when (byear%12=5) then set tti = '소';
when (byear%12=6) then set tti = '호랑이';
when (byear%12=7) then set tti = '토끼';
when (byear%12=8) then set tti = '용';
when (byear%12=9) then set tti = '뱀';
when (byear%12=10) then set tti = '말';
when (byear%12=11) then set tti = '양';
when (byear%12=0) then set tti = '원숭이';
when (byear%12=1) then set tti = '닭';
when (byear%12=2) then set tti = '개';
when (byear%12=3) then set tti = '돼지';
        else set tti = '원숭이';
end case;
    select concat(username, '의 띠 ==>',tti);
end $$
delimiter ; 
call caseproc('JSH');

-- while문
use testdb;
drop procedure if exists gugutbl;
create table gugutbl (txt varchar(100));

drop procedure if exists whileproc;
delimiter $$

create procedure whileproc()
begin
declare str varchar(100);
declare i int;
declare k int;
set i = 2;
    
while(i<10) do
set str = '';
set k = 1;
    
while (k<10) do
set str = concat(str, '  ', i, 'x', k, '=', i*k);
set k = k+1;
end while;
set i = i +1;
insert into gugutbl values(str);
end while;
end $$
delimiter ;

call whileproc();
select*from gugutbl;

'DB' 카테고리의 다른 글

DB VIEW 활용법 - 정리해야 됌  (0) 2022.04.26
예약어 글자 크게 하기  (0) 2022.04.22
DB에 쓰이는 쿼리문  (0) 2022.04.22
ERD 모델링해보기  (0) 2022.04.13
MY-SQL 설치 및 설정  (0) 2022.04.11

+ Recent posts