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) ;
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이후내용을 수행한다.