SQL Server / Query / JOIN

JOIN으로 여러 개의 테이블의 데이터를 연결하여 조회할 수 있다.

다음과 같은 두 개의 테이블이 있다고 하자. country에는 나라의 이름이, city에는 도시의 이름이 있다. 

INNER JOIN

  • country 테이블의 country_no와 city 테이블의 country_no가 같은 것을 연결한다.
  • 두 테이블에 모두 존재하는 데이터를 출력한다.
select
  country.country_name,
  city.city_name
from country
inner join city on country.country_no = city.country_no
;

LEFT JOIN

  • country 테이블의 country_no와 city 테이블의 country_no가 같은 것을 연결한다.
  • country 테이블에 있는 데이터는 모두 출력하고, city 테이블에 연결된 값이 있으면 그 값을 출력한다.
select
  country.country_name,
  city.city_name
from country
left join city on country.country_no = city.country_no
;

RIGHT JOIN

  • country 테이블의 country_no와 city 테이블의 country_no가 같은 것을 연결한다.
  • city 테이블에 있는 데이터는 모두 출력하고, country 테이블에 연결된 값이 있으면 그 값을 출력한다.
select
  country.country_name,
  city.city_name
from country
right join city on country.country_no = city.country_no
;

  • 다음과 결과는 같다.
select
  country.country_name,
  city.city_name
from city
left join country on country.country_no = city.country_no
;

FULL JOIN

  • country 테이블의 country_no와 city 테이블의 country_no가 같은 것을 연결한다.
  • 두 테이블의 모든 데이터를 출력하는데, 연결된 것이 있다면 같은 행에 출력한다.
select
  country.country_name,
  city.city_name
from country
full join city on country.country_no = city.country_no
;

 

CROSS JOIN

  • country 테이블의 값 하나하나에 city 테이블의 모든 값을 출력한다.
select
  country.country_name,
  city.city_name
from country
cross join city
;

같은 카테고리의 다른 글
SQL Server 2022 / 설치 / 인스턴스 추가하는 방법

SQL Server 2022 / 설치 / 인스턴스 추가하는 방법

Microsoft 홈페이지에서는 SQL Server의 인스턴스를 다음과 같이 설명하고 있다. 데이터베이스 엔진 인스턴스는 운영 체제 서비스로 실행되는 sqlservr.exe 실행 파일의 복사본입니다. 각 인스턴스는 여러 시스템 데이터베이스와 하나 이상의 사용자 데이터베이스를 관리합니다. 각 컴퓨터에서 데이터베이스 엔진의 여러 인스턴스를 실행할 수 있습니다. 단순하게 이해하자면, 하나의 OS에 여러 SQL Server를 설치할 수 있다고 보면 된다. 기존 ...

SQL Server / Agent XPs 구성 요소는 이 서버의 보안 구성에 따라 해제되었습니다.

SQL Server / Agent XPs 구성 요소는 이 서버의 보안 구성에 따라 해제되었습니다.

SSMS로 작업하다보면 다음과 같은 메시지를 만날 때가 있습니다. 이를 해결하는 방법은... SQL Server가 설치된 컴퓨터에서 SSMS를 실행한 후, 을 선택하고... 마우스 우클릭 한 후 을 클릭합니다. 를 클릭하고... 잠시 기다리면... 다음과 같이 메뉴가 바뀌면서 해결됩니다.

SQL Server / 테이블 / 만들기, 삭제하기, 수정하기, 조회하기

SQL Server / 테이블 / 만들기, 삭제하기, 수정하기, 조회하기

테이블 만들기 client 테이블을 만든다. 열이 하나도 없으면 만들어지지 않으므로, 적어도 하나의 열은 같이 만들어야 한다. create table client ( id int ); 테이블 삭제하기 client 테이블을 삭제한다. drop table client; 테이블 이름 변경하기 테이블 client의 이름을 account로 변경한다. sp_rename client, account; 테이블 목록 조회하기 방법 1 select * from information_schema.tables; 방법 2 execute sp_tables @table_type = "'table'"; SSMS 테이블 만들기 데이터베이스를 확장하고 을 선택한 다음 ...

SQL Server / SSMS / 메모

SQL Server / SSMS / 메모

1433 이외의 포트로 접속하는 방법 SQL Server 기본 포트는 1433이다. 기본 포트일 때는 IP나 도메인만으로 접속가능한데, 포트를 바꾸었다면 명시해주어야 한다. 예를 들어 IP가 123.123.123.123, 포트가 12345로라면... 123.123.123.123,12345 특이하게 :가 아니라 ,를 쓴다. SSMS에서 대문자를 소문자로, 소문자를 대문자로 만드는 방법 SQL 구문은 대소문자를 구분하지 않지만 보통 대문자로 표현한다. Shift를 누르거나 Caps Lock을 쓰는 게 불편하다면 단축키를 ...

SQL Server / 버전 확인하는 두 가지 방법

SQL Server / 버전 확인하는 두 가지 방법

SQL Server 버전 확인하는 방법 1 SQL Server Configuration Manager를 연다. 왼쪽에서 를 선택한다. 오른쪽에서 을 클릭한다. 탭에서 버전을 확인할 수 있다. SQL Server 버전 확인하는 방법 2 SSMS에서 다음 쿼리를 실행한다. select @@version;

SQL Server / Query / 주석

SQL Server / Query / 주석

주석으로 처리하면 해당 문자열은 실행되지 않습니다. 코드에 설명을 달거나 특정 쿼리를 잠시 실행시키고 싶지 않을 때 사용합니다. 주석에는 한 줄 주석과 여러 줄 주석이 있습니다. 한 줄 주석은 --로 만듭니다. -- 뒤에 있는 문자열이 주석이 됩니다. -- Commnet SELECT * FROM myDB; -- Comment 여러 줄 주석을 만들고 싶다면 /*와 */로 감쌉니다. 그 사이에 있는 ...

SQL Server / 샘플 데이터베이스 AdventureWorks 설치하는 방법

SQL Server / 샘플 데이터베이스 AdventureWorks 설치하는 방법

만약 공부에 필요한 샘플 데이터베이스가 필요하다면 Micrososft에서 제공하는 AdventureWorks를 사용하자. AdventureWorks 샘플 데이터베이스 페이지에 접속하여 백업 파일을 다운로드한다. AdventureWorks는 OLTP 데이터베이스, AdventureWorksDW는 OLAP 데이터베이스, AdventureWorksLT는 AdventureWorks의 경량 및 축소 버전이다. 디스크 공간이 충분하다면 AdventureWorks와 AdventureWorksDW를 설치하자. SSMS에서 를 선택하고... 마우스 우클릭 후 을 클릭한다. 를 선택하고, 찾아보기 아이콘을 클릭한 후... 를 클릭하고... 다운로드한 파일을 선택하고 을 클릭한다. 을 ...

SQL Server / SSMS / 도움말 추가하는 방법

SQL Server / SSMS / 도움말 추가하는 방법

SQL Server에 관한 많은 자료가 온라인에 있지만, 웹에서 검색하는 것이 불편하거나 불가능할 수 있다. 그런 경우 SSM에 도움말을 추가하여 쉽게 정보를 얻을 수 있다. 기본 설치를 했다면 도움말이 전혀 없으므로, 수동으로 추가해야 한다. SSMS를 실행하고 를 클릭한다. 추가하려는 도움말을 선택한다. 선택한 도움말을 다운로드할 때 필요한 디스크 용량은 오른쪽 ...

SQL Server / 제어문 / CASE

SQL Server / 제어문 / CASE

CASE 함수는 데이터의 값에 따라 특정 값을 부여할 때 사용한다. CASE로 시작하여 END로 끝나고, 조건은 WHEN, 부여할 값은 THEN으로 정의한다. 예를 들어 다음과 같은 점수 데이터가 있다고 하자. 20점 이하는 E, 20점 초과 40점 이하는 D, 40점 초과 60점 이하는 C, 60점 초과 80점 이하는 B, 80점 초과 100점 이하는 A를 주고 ...

SQL Server / Query / JOIN

SQL Server / Query / JOIN

JOIN으로 여러 개의 테이블의 데이터를 연결하여 조회할 수 있다. 다음과 같은 두 개의 테이블이 있다고 하자. country에는 나라의 이름이, city에는 도시의 이름이 있다.  INNER JOIN country 테이블의 country_no와 city 테이블의 country_no가 같은 것을 연결한다. 두 테이블에 모두 존재하는 데이터를 출력한다. select country.country_name, city.city_name from country inner join city on country.country_no = city.country_no ; LEFT JOIN country 테이블의 country_no와 ...