티스토리 뷰
1. IN,EXISTS - 역할
IN - 특정 컬럼에 여러 개의 값이 포함되었는지 체크
EXISTS - 특정 컬럼에 값이 존재하는지 체크
2. IN,EXISTS - 기본 테이블
◈ TEST_TABLE_ONE
IDX | NAME | AMT |
1 | 테스트1 | 1000 |
2 | 테스트2 | 2000 |
3 | 테스트3 | 3000 |
4 | 테스트4 | 4000 |
5 | 테스트5 | 1000 |
6 | 테스트6 | 2000 |
7 | 테스트7 | 3000 |
8 | 테스트8 | 4000 |
◈ TEST_TABLE_TWO
IDX | NAME | CHECK_YN |
1 | 테스트1 | Y |
2 | 테스트2 | Y |
3 | 테스트3 | |
4 | 테스트4 | |
5 | 테스트5 | Y |
6 | 테스트6 | Y |
7 | 테스트7 | |
8 | 테스트8 |
3. IN - SQL 문장
◈ SQL
1 | SELECT * FROM TEST_TABLE_ONE WHERE AMT IN ('1000','2000'); |
1 2 | SELECT * FROM TEST_TABLE_ONE WHERE NAME IN (SELECT NAME FROM TEST_TABLE_TWO WHERE CHECK_YN IN ('Y')); |
◈ 결과 테이블
IDX | NAME | AMT |
1 | 테스트1 | 1000 |
2 | 테스트2 | 2000 |
5 | 테스트5 | 1000 |
6 | 테스트6 | 2000 |
◈ 설명
AMT 컬럼이 1000,2000인 경우를 검색합니다
4. EXISTS - SQL 문장
◈ SQL
1 2 3 4 5 | SELECT * FROM TEST_TABLE_ONE A WHERE EXISTS (SELECT AMT FROM TEST_TABLE_TWO B WHERE CHECK_YN='Y' AND A.NAME=B.NAME) |
◈ 결과 테이블
IDX | NAME | AMT |
1 | 테스트1 | 1000 |
2 | 테스트2 | 2000 |
5 | 테스트5 | 1000 |
6 | 테스트6 | 2000 |
◈ 설명
TEST_TALBE_TWO에서 CHECK_YN에 'Y' 인 사람이 존재하는 사람의 AMT값을 조회하여 출력합니다
5. IN,EXISTS - 특징
IN : 특정 값들이 포함되어 있는지 검사 ( 값 , 서브쿼리 입력 가능 )
EXISTS : 특정 값들이 존재되어 있는지 검사 (서브쿼리만 입력 가능 )
EXISTS가 IN 보다 좋은 점 : 성능이 월등히 탁월함 (쿼리 조회속도가 빠름)
'[개발]프로그래밍 > sql' 카테고리의 다른 글
[oracle] IS NULL - NULL 처리 (0) | 2016.09.20 |
---|---|
[oracle] LIKE - 특정 문자를 포함한 검색 (0) | 2016.09.20 |
[oracle] LEFT, RIGHT, FULL OUTER JOIN - 테이블 조인 (5) | 2016.09.12 |
[mysql] CONCAT - 문자열을 하나로 이어줌 (0) | 2016.09.07 |
[mysql] GROUP_CONCAT - 구분자를 활용한 문자열 묶음 (0) | 2016.09.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday