종류 | 설명 |
---|---|
INNER JOIN | 교집합, A 테이블과 B 테이블이 모두 가지고 있는 데이터만 검색 |
LEFT OUTER JOIN | A테이블의 모든 데이터+A테이블과 B테이블의 중복되는 값 |
RIGHT OUTER JOIN | B테이블의 모든 데이터+A테이블과 B테이블의 중복되는 값 |
FULL OUTER JOIN | A테이블이 가지고 있는 데이터+B테이블이 가지고있는 데이터 |
CROSS JOIN | 모든 경우의 수를 전부 표현해주는 방식. 기준테이블이 A일경우 A의 데이터 한 ROW를 B테이블 전체와 JOIN하는 방식 |
SELF JOIN | 자기자신과 자기자신을 조인한다는 의미 하나의 테이블을 여러번 복사해서 조인한다 |
사진을 클릭하면 프로그래머스 JOIN 문제로 이동합니다.
SELECT b.ANIMAL_ID, b.NAME
FROM ANIMAL_INS a
RIGHT JOIN ANIMAL_OUTS b ON a.ANIMAL_ID = b.ANIMAL_ID
WHERE a.ANIMAL_ID IS NULL
ORDER BY ANIMAL_ID;
SELECT b.ANIMAL_ID, b.NAME
FROM ANIMAL_INS a
RIGHT JOIN ANIMAL_OUTS b ON a.ANIMAL_ID = b.ANIMAL_ID
WHERE a.DATETIME >= b.DATETIME
ORDER BY a.DATETIME;
Limit 연산자를 이용하여 쿼리결과 개수를 제한할 수 있다.
SELECT * FROM 테이블명 Limit 개수(정수);
✔ Limit 다른 사용법
Limit 시작할 레코드 번호, 반환할 결과의 수
ex) 음악 차트에서 20위에서 30위까지 출력하시오.
SELECT * FROM music_chart Limit 19,10;
SELECT a.NAME, a.DATETIME
FROM ANIMAL_INS a
LEFT JOIN ANIMAL_OUTS b ON a.ANIMAL_ID = b.ANIMAL_ID
WHERE b.ANIMAL_ID IS NULL
ORDER BY a.DATETIME
LIMIT 3;
LIKE 연산자는 특정 문자가 포함되어 있는 데이터를 검색할 때 사용한다.
SELECT [컬럼명] FROM [테이블명] WHERE [필드명] LIKE '특정문자열%';
SELECT [컬럼명] FROM [테이블명] WHERE [필드명] LIKE '%특정문자열';
SELECT [컬럼명] FROM [테이블명] WHERE [필드명] LIKE '%특정문자열%';
SELECT [컬럼명] FROM [테이블명] WHERE [필드명] REGEXP '특정문자열|특정문자열2';
SELECT b.ANIMAL_ID, b.ANIMAL_TYPE, b.NAME
FROM ANIMAL_INS a
INNER JOIN ANIMAL_OUTS b ON a.ANIMAL_ID = b.ANIMAL_ID
WHERE a.SEX_UPON_INTAKE LIKE 'Intact%'
AND NOT b.SEX_UPON_OUTCOME LIKE 'Intact%';