땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • I
  • D
  • ㅗ
  • E
  • 이것이 리눅스다 with Rocky Linux9

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

SQL - DML(JOIN, SELECT 응용)
Backend/Database

SQL - DML(JOIN, SELECT 응용)

2022. 4. 19. 19:54

SELECT JOIN 

- 각각 독립적인(분리된) 테이블을 읽을 때, 그 테이블이 하나의 테이블로 저장되어 있었던 것과 같은 효과

- 같은 이름의 속성이 서로 다른 테이블에 존재할 수 있기 때문에 속성 이름 앞에 해당속성이 소속된 테이블의 이름을 표시 => EX) 주문.주문고객

FROM 절 : 검색에 필요한 모든 테이블을 나열
WHERE 절 : 공통속성(조인 속성)에 ‘=‘ 적용

* 판매 데이터베이스에서 banana 고객이 주문한 제품의 이름을 검색

* 판매 데이터베이스에서 나이가 30세 이상의 고객이 주문한 제품의 주문제품과 주문일자를 검색

<SQL 합치기>

 

with recursive time as
(select 0 as hour union all select hour + 1 from time where hour < 23)

select hour, count(animal_id) count
from time
left join animal_outs on (hour = date_format(datetime, '%H'))
group by hour;
--CASE사용법--
CASE WHEN 조건절 THEN 참일때 값 ELSE 거짓일때 값 END 컬럼명
--IF 사용법--
IF 조건 참일때 값 ELSE 거짓일때 값 END 컬럼명
SELECT IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명; 


// NAME Column이 NULL이 True인 경우 "No name"을, False인 경우는 NAME Column을 출력
SELECT IF(IS NULL(NAME), "No name", NAME) as NAME
FROM ANIMAL_INS

OUTER JOIN

내부 조인은 두 테이블에 모두 데이터가 있어야만 결과가 나오지만, 외부 조인은 한쪽에만 데이터가 있어도 가능

SELECT <열 목록>
 FROM <첫 번째 테이블(LEFT 테이블)>
          <LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
           ON <조인될 조건>
 [WHERE 검색 조건]
SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
  • LEFT OUTER JOIN: 왼쪽 테이블의 모든 값이 출력되는 조인
  • RIGHT OUTER JOIN: 오른쪽 테이블의 모든 값이 출력되는 조인
  • FULL OUTER JOIN: 왼쪽 또는 오른쪽 테이블의 모든 값이 출력되는 조인

 

INNER JOIN

두 테이블을 연결할 때 가장 많이 사용하는  것이 내부 조인입니다. 그냥 조인이라고 부르면 내부 조인

 SELECT <열 목록>
 FROM <첫 번째 테이블>
          INNER JOIN <두 번째 테이블>
          ON <조인될 조건>
 [WHERE 검색 조건]

 * INNER JOIN을 JOIN이라고만 써도 INNER JOIN으로 인식합니다.
SELECT s.name, s.location_id, l.name AS address, l.distance  FROM student AS s INNER JOIN location AS l ON s.location_id = l.id;

'Backend > Database' 카테고리의 다른 글

View & Index, 백업과 복원  (0) 2022.09.14
SQL - DML(SELECT)  (0) 2022.09.08
SQL - DML(INSERT, UPDATE, DELETE)  (0) 2022.04.19
데이터베이스의 목적  (0) 2022.04.15
데이터베이스에 대해  (0) 2022.04.15
    'Backend/Database' 카테고리의 다른 글
    • View & Index, 백업과 복원
    • SQL - DML(SELECT)
    • SQL - DML(INSERT, UPDATE, DELETE)
    • 데이터베이스의 목적
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바