[SQL] 12-1. SQL 조인의 종류

Damagedcase·2020년 12월 6일
0

SQL

목록 보기
12/15
post-thumbnail

SQL에서는 JOIN이라는 명령어를 사용해서 서로 관계가 있는 테이블 간의 열을 합치는 역할을 합니다. JOIN의 종류들은 다음과 같습니다.

  • (INNER) JOIN: 두 개의 테이블의 공통값들을 반환.
  • LEFT (OUTER) JOIN: 왼쪽 테이블의 모든 값과 오른쪽 테이블에서 왼쪽 테이블에 있는 값과 일치하는 값들을 반환.
  • RIGHT (OUTER) JOIN: 오른쪽 테이블의 모든 값과 왼쪽 테이블에서 오른쪽 테이블에 있는 값과 일치하는 값들을 반환.
  • FULL (OUTER) JOIN: 두 개의 테이블로부터 일치하는 모든 값들을 반환.

지금까지 계속 사용했던 테이블들의 칼럼 명을 보면 이름, 주소, 전화번호, 이메일, 생년월일 등이 있는데 이러한 정보들을 활용해서 연관성을 지을 수 있는 테이블을 만들겠습니다.

CREATE TABLE transactions(
id serial primary key,
customer_id int,
transaction_date timestamp
);

transactions라는 테이블을 만들었고 칼럼들은 id는 primary key, customers 테이블과 관계를 지어줄 customer_id, transaction_date가 있습니다. 이제 transactions 테이블에 데이터를 삽입해보겠습니다.

INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (1, current_timestamp);
INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (2, current_timestamp);
INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (3, current_timestamp);
INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (4, current_timestamp);
INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (5, current_timestamp);
INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (6, current_timestamp);
INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (7, current_timestamp);
INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (8, current_timestamp);
INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (9, current_timestamp);
INSERT INTO "transactions" ("customer_id", "transaction_date") VALUES (10, current_timestamp);
INSERT INTO "transactions" ("transaction_date") VALUES (current_timestamp);
INSERT INTO "transactions" ("transaction_date") VALUES (current_timestamp);

transaction_date 칼럼의 데이터 유형은 timestamp인데 PostgreSQL에서 current_timestamp를 해당 칼럼의 값으로 삽입하면 현재 시간이 입력됩니다.

References

https://www.w3schools.com/sql/sql_join.asp

profile
성장을 추구하는 개발자

0개의 댓글