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
;

Related Posts

SQL Server / 데이터베이스 저장 위치 변경하는 방법

SQL Server / 데이터베이스 저장 위치 변경하는 방법

데이터베이스 기본 저장 위치 변경 데이터베이스를 만들거나 복원할 때 기본적으로 저장되는 위치는 SQL Server를 설치할 때 정합니다. 그 위치를 변경하고 싶다면 다음과 같이 합니다. 서버를 선택하고 마우스 우클릭 후 을 클릭합니다. 왼쪽 메뉴에서 을 클릭합니다. 를 원하는 위치로 변경하고... 을 클릭합니다. 서버를 재부팅하거나, 서비스에서 SQL Server를 다시 시작해야 반영됩니다. 데이터베이스 만들 때 저장 위치 ...

SQL Server / 스키마 / 만들기, 조회하기, 수정하기, 삭제하기

스키마(Schema)를 이용하여 테이블을 분류하고 권한 관리를 할 수 있다. 스키마 만들기 a라는 이름의 스키마를 만든다. create schema a; 스키마 조회하기 스키마 정보를 출력한다. select * from sys.schemas; 테이블 만들기 스키마 지정 없이 테이블을 만들면 dbo 스키마가 붙는다. create table client ( id int ); 스키마를 지정하고 만들면, 그 스키마에 테이블이 만들어진다. create table a.client ( id int ); dbo.client와 a.client는 테이블 이름은 ...

SQL Server / SSMS / 다이어그램 만드는 방법

SQL Server / SSMS / 다이어그램 만드는 방법

다이어그램 생성 시 아래와 같은 에러가 난다면 여기를 참고하여 해결할 수 있습니다. 보안 주체 "dbo"이(가) 없거나 이 유형의 보안 주체를 가장할 수 없거나 사용 권한이 없기 때문에 데이터베이스 보안 주체로 실행할 수 없습니다. (Microsoft SQL Server, 오류: 15517) 데이터베이스 하위에 있는 을 선택합니다. 마우스 우클릭 후 을 클릭합니다. 다이어그램에 포함될 테이블을 ...

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

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

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

SQL Server / 관리 / 스케줄에 따라 자동 백업하는 방법

SQL Server / 관리 / 스케줄에 따라 자동 백업하는 방법

데이터베이스는 주기적으로 백업을 해야 합니다. SQL Server의 유지 관리 계획을 이용하면, 백업 되풀이 작업을 만들어 일정 주기마다 자동으로 백업하게 할 수 있습니다. SSMS로 자동 백업을 만드는 방법을 알아보겠습니다. 을 선택합니다. 마우스 우클릭하고 를 클릭합니다. 을 클릭합니다. 이름을 적절히 정하고 을 클릭합니다. 를 선택하고 ...

SQL Server / 열 / 만들기, 삭제하기, 수정하기, 조회하기

열 정보 조회하기 방법 1 client 테이블의 열의 모든 정보를 조회한다. select * from information_schema.columns where table_name = 'client'; client 테이블의 열의 특정 정보만 조회한다. select column_name, ordinal_position, data_type from information_schema.columns where table_name = 'client'; 방법 2 execute sp_columns @table_name = 'city'; 열 추가하기 client 테이블에 client_name 열을 추가한다. 테이터 형식은 varchar, 최대 길이는 50이다. alter table client add ...

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 Express, SSMS, AdventureWorks 설치하는 방법

SQL Server Express, SSMS, AdventureWorks 설치하는 방법

SQL Server Express는 Microsoft가 제공하는 무료 SQL Server입니다. SQL Server Express, 그것을 관리하는 툴인 SSMS(SQL Server Management Studio), 샘플 데이터베이스 AdventureWorks를 설치하는 방법을 알아보겠습니다. SQL Server Express 다음 링크로 접속합니다. https://www.microsoft.com/ko-kr/sql-server/sql-server-downloads 밑으로 조금 내려가면 Express 다운로드 링크가 있습니다. 클릭하면 바로 다운로드합니다. 다운로드한 파일을 실행하면 다음과 같은 창이 나옵니다. 을 클릭합니다. 을 클릭합니다. 설치 위치를 정한 후 를 ...

SQL Server / 외부 접속 허용하는 방법

SQL Server / 외부 접속 허용하는 방법

SQL Server는 보통 Windows Server에 설치하게 되는데, 외부에서 접속하기 위해서는 SQL Server가 사용하는 1433 포트를 열어줘야 한다. 설정은 에서 한다. SQL Server의 기본 포트는 1433이다. 가능하다면 보안을 위해 다른 포트로 변경하는 것이 좋다. 별도의 방화벽에서 포트 포워딩을 할 수도 있고, 기본 포트를 변경할 수도 있다. 에서 ...

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

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

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