Join, SQL Programming

HakJun·2022년 2월 21일
1

Database

목록 보기
10/16

Union

각각 데이터 추출을 통해 나온 값들을 종합해서 보여준다. 다만 칼럼의 개수나, 타입이 비슷해야한다.

SELECT S.stdName, S.addr, C.clubName, C.roomNo
   FROM stdtbl S 
      LEFT OUTER JOIN stdclubtbl SC
          ON S.stdName = SC.stdName
      LEFT OUTER JOIN clubtbl C
          ON SC.clubName = C.clubName
UNION 
SELECT S.stdName, S.addr, C.clubName, C.roomNo
   FROM  stdtbl S
      LEFT OUTER JOIN stdclubtbl SC
          ON SC.stdName = S.stdName
      RIGHT OUTER JOIN clubtbl C
          ON SC.clubName = C.clubName;

Cross join
1대 N 관계를 모두 갖는 형식으로, 한 열에 대해 상대 N개의 데이터를 모두 JOIN하는 형식이다.

SELECT * 
   FROM buytbl 
     CROSS JOIN usertbl ;

Self join
테이블 자신에 대해서 join을 하는 방식이다.

SELECT A.emp AS '부하직원' , B.emp AS '직속상관', B.empTel AS '직속상관연락처'
   FROM empTbl A
      INNER JOIN empTbl B
         ON A.manager = B.emp
   WHERE A.emp = '우대리';

NOT IN & IN
해당 뒤 절에 미포함, 포함 되는 결과값들을 추출한다.

SELECT name, CONCAT(mobile1, mobile2) AS '전화번호' FROM usertbl
   WHERE name NOT IN ( SELECT name FROM usertbl WHERE mobile1 IS NULL) ;

SELECT name, CONCAT(mobile1, mobile2) AS '전화번호' FROM usertbl
   WHERE name IN ( SELECT name FROM usertbl WHERE mobile1 IS NULL) ;

sql 프로그래밍

DROP PROCEDURE IF EXISTS ifProc2; 

프로시져가 존재하면 삭제한다.

DECLARE hireDATE DATE;

hireDate를 date타입의 변수로 선언한다.

SET curDATE = CURRENT_DATE()

curDate를 CURRENT_DATE()값으로 설정

IF (days/365) >= 5 THEN~

조건이 참이라면 THEN~절을 시행한다.

 CASE 
		WHEN point >= 90 THEN
			SET credit = 'A';
		WHEN point >= 80 THEN
			SET credit = 'B';

switch문과 유사하다. 조건에 해당하는 절의 then이후내용을 수행한다.

profile
백엔드 & 전공 공부

0개의 댓글