SELECT * FROM 테이블명1
INNER JOIN 테이블명2
ON 외래키 참조(테이블명1.컬럼 = 테이블명2.컬럼)
WHERE 조건
※ 주의사항
- INNER JOIN 사용 시, 어떤 테이블의 컬럼 값으로 정렬할 지 모르기 때문에 이를 명시해줘야 한다.(테이블명. 컬럼명)
3개 테이블 조인
- 일반적으로 연관성 없는 두 개의 테이블을 동시에 조회하는 경우 외래 참조용 테이블 하나를 정의하여 관련이 없는 두 테이블을 동시에 조회할 수 있도록 정의한다.
EX)
SELECT S.stdName, S.addr, SC.clubName -- , SC.roomNo → 요거는 에러 발생.(이 컬럼은 clubtbl에만 있기 때문에 clubtbl과 조인을 해줘야 조회 가능)
FROM stdtbl S
-- stdtbl & stdclubtbl의 left 조인. → 결과1
LEFT OUTER JOIN stdclubtbl SC -- stdtbl 의미
ON S.stdName = SC.stdName;
SELECT S.stdName, S.addr, C.clubName, C.roomNo
FROM stdtbl S
-- stdtbl & stdclubtbl의 left 조인. → 결과1
LEFT OUTER JOIN stdclubtbl SC -- stdtbl 의미
ON S.stdName = SC.stdName
-- 결과1 & clubtbl의 left 조인 → 결과2
LEFT JOIN clubtbl C -- stdtbl 조건에 맞지 않는 데이터 까지 조회
ON C.clubName = SC.clubName
ORDER BY S.stdName;
SELECT * FROM 테이블명1, 테이블명2로 조회가 가능하다.EX)
-- SELF 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 = '우대리';
DELIMITER // : 종료 문자를 ;(세미클론) → //으로 변경
CREATE PROCEDURE 프로시저명()
BEGIN
호출 구문
END //
DELIMITER ;
DROP PROCEDURE 프로시저명;
DELIMITER //
CREATE TRIGGER trg_deletedMemberTbl -- 트리거명
AFTER DELETE -- 삭제 후 작동하도록 지정(AFTER 행위)
ON memberTbl -- 트리거를 부착할 테이블
FOR EACH ROW -- 각 행마다 적용
BEGIN
INSERT INTO deletedMEmberTbl
VALUES(OLD.memberId,OLD.memberName, OLD.memberAddress, CURDATE());
END //
DELIMITer ;
DROP TRIGGER 트리거명;