DB/SQL 2주차

현준·2024년 6월 3일

사관학교

목록 보기
4/23

1일차

JOIN

두개 이상의 테이블에서 데이터를 가져오는 방법

  • 가지고오는 컬럼명이 각각의 테이블에서 중복이 된다면 어디 테이블에서 가져올껀지 명시해야함

  • 조인 조건은 테이블 개수 -1개 이다

CROSS JOIN

카티션 곱으로 JOIN 조건 업시 테이블에서 데이터를 가져오는 방법

  • 모든 경우의 수로 데이터를 조회

    SELECT 컬럼, 테이블명1.컬럼, 컬럼
    FROM 테이블명1, ,테이블명2

INNER JOIN

조인 조건을줘서 테이블을 연결 시킨 후 데이터 출력
(조인 조건 : 테이블을 연결 시킬 수 있는 조건)

  • WHERE문에 테이블명1.컬럼명 =테이블명2.컬럼명 으로 통합

    WHERE문에서 컬럼을 통합시켜 주어야지 카티션 프로덕트를 막을 수 있음

SELECT
FROM 테이블명1 (A), 테이블명2 (B)
WHERE 테이블명1.컬럼명 =테이블명2.컬럼명

ANSI 문법

오라클 뿐만 아니라 MySQL, MariaDB 등 다른 DBMS 에서도 사용 가능한 문법 (DBMS 표준으로 사용)

select 컬럼1, 컬럼2, ....
from 테이블1 e, inner join 테이블2 d
on e.컬럼 = d.컬럼;

테이블 2개 ANSI 문법

다중 테이블 ANSI 문법 사용

OUTER JOIN

2일차

서브쿼리

SQL 내부에서 사용하는 SELECGT문을 의미함

SELECT
FROM
WHRER 조건 (SELECT ~ FROM ~ WHERE~)

다중 행 다중열 서브 쿼리

  • 서브쿼리에 다중 조건을 검색해서 WHERE 문에 맞춰 검색할 수 있다.

3일차

서브쿼리 연산자

IN, ANY, SOME, ALL, EXISTS

  • ALL, ANY는 MIN과 MAX로 대체 할 수 있다

IN

조건식 안에 OR 조건을 대체 사용한다

WHERE 컬렴명 IN (@,@);

  • @과 @ 이 컬럼명 안에 데이터가 같은지 비교

ALL

다중행 서브쿼리에서 크기 비교 시 사용
서브쿼리로 구해진 다중행에 모두 만족하는 연산

  • (최소보다 작거나, 최대보다 클때 사용)

WHERE 컬럼명 (비교 연산자) ALL (서브쿼리문)

// 90번 부서 최고 연봉자보다 작은 사람, 급여 출력

ANY

서브쿼리로 구해진 다중행에 하나라도 만족하는 연산

  • (최소보다 크거나, 최대보다 작을때 사용)

WHERE 컬럼명 (비교 연산자) ANY (서브쿼리문)


// 90번 부서 최고 연봉자보다 큰 사람, 급여 출력

0개의 댓글