'프로그래미기초'에 해당되는 글 1건
- 2020.04.14 :: [SQL] JOIN VIEW,별명알아보자
JOIN 의 개념
서로 다른 테이블을 공통 컬럼을 기준으로 합치는(결합하는) 테이블 단위 연산
조인의 결과 테이블은 이전 테이블의 컬럼 수의 합과 같다.
SELECT * FROM 테이블 1 JOIN 테이블 2 ON 테이블1.컬럼명 = 테이블2.컬럼명 ...
조인 시 서로 다른 테이블에 같은 컬럼명이 존재하면 구분을 위해 테이블명.컬럼명으로 사용해서 표시
예제
- city 테이블과 country 테이블을 조인하시오. (city.CountryCode = country.Code)
- 국가코드와 해당 나라의 GNP 를 표시하시오
결과 확인
- SELECT * FROM city JOIN country ON city.CountryCode = country.Code;
- SELECT city.CountryCode, country.GNP FROM city join country ON
city.CountryCode = country.Code;
JOIN 의 종류
조인 시 NULL 값을 허용하는 내부 조인(불가)과 외부조인(허용)으로 구분
INNER JOIN / LEFT JOIN / RIGHT JOIN / FULL JOIN
INNER JOIN
조인 시 NULL 값을 허용하지 않음
(NULL 값을 가진 레코드는 조인결과에 빠짐)
LEFT JOIN
조인 시 JOIN 의 왼쪽 테이블의 NULL 값을 포함해서 표시
RIGHT JOIN
조인 시 JOIN 의 오른쪽 테이블의 NULL 값을 포함해서 표시
FULL JOIN
MySQL 은 지원하지 않음
예제
- city 테이블에 국가코드가 없는 도시가 있는지 확인
- country 테이블에는 존재하지만 도시가 하나도 없는 나라가 있는지 확인
- 이 때 INNER JOIN / LEFT JOIN / RIGHT JOIN 의 차이점으로 확인
결과 확인
- SELECT COUNT(*) FROM city WHERE CountryCode is NULL;
- SELECT COUNT(*) FROM city LEFT JOIN country ON city.CountryCode = country.Code;
(country 값이 존재하지 않는 city 는 포함)
- SELECT COUNT(*) FROM city RIGHT JOIN country ON city.CountryCode = country.Code;
(country 중 도시 수가 하나도 없는 country 는 포함)
별명(ALIAS)
SQL 쿼리 결과 생성 시 컬럼명에 대한 별명을 사용해 표시하는 기능
SELECT 테이블명1.컬럼명1 AS 별명1, 테이블명2.컬럼명2 AS 별명2 FROM ....
조인할 때 많이 사용된다
예제
- city 테이블과 country 테이블을 조인해서 국가코드 'KOR' 인 나라의 축약표시명(Abbr) 과 정식명(Full Name)을 표시하시오
결과 확인
- SELECT city.CoutryCode AS Abbr, country.Name AS FullName FROM city JOIN country on city.CountryCode = country.Code WHERE city.CountryCode = 'KOR';
뷰 (VIEW)
SQL 쿼리의 결과값을 임시 테이블로 저장해서 사용할 수 있음
사용 용도가 끝나면 명시적으로 삭제해야 함 (DROP VIEW ....)
CREATE VIEW 뷰명 AS SELECT ...
예제
CREATE VIEW sampleView AS SELECT city.CountryCode AS Abbr, country.Name AS FullName FROM city JOIN country ON city.CountryCode = country.Code WHERE city.CountryCode = 'KOR';
SELECT * FROM sampleView;
'SQL' 카테고리의 다른 글
[SQL] 일부결과 및 집합함수 (0) | 2020.04.14 |
---|---|
[SQL] 연산 논리 (기초 배우기 ) (0) | 2020.04.14 |
[SQL] SQL 이란 무엇일까? (기초배우기 정의,종류) (0) | 2020.04.14 |
[SQL] 설치하기 / 다운로드 (0) | 2020.04.11 |