Join, SQL Programming


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
一対の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; 
Procerが存在する場合は削除します.
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';
スイッチドアに似ています.条件に対応するセクションの次の内容を実行します.