Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

데이터베이스 5주차 정리 본문

2-1/데이터베이스

데이터베이스 5주차 정리

김브래 2023. 4. 3. 22:50

4주차 복습 - JOIN문 복습



INNER JOIN


SELECT * FROM A INNER JOIN B

ON A.key = B.key;


LEFT OUTER JOIN


SELECT * FROM A LEFT OUTER JOIN B

ON A.key = B.key;


LEFT OUTER JOIN  (순수 A만 구할때)

LEFT OUTER JOIN - A와 B의 교집합


SELECT * FROM A LEFT OUTER JOIN B

ON A.key = B.key

WHERE B.key IS NULL;


RIGHT OUTER JOIN

SELECT * FROM A RIGHT OUTER JOIN B

ON A.key = B.key;


RIGHT OUTER JOIN (순수 B만 구할때)

RIGHT OUTER JOIN - A와 B의 교집합


SELECT * FROM A RIGHT OUTER JOIN B

ON A.key = B.key

WHERE A.key IS NULL;


FULL OUTER JOIN


SELECT * FROM A LEFT OUTER JOIN B

ON A.key = B.key

 

UNION // 결합

 

SELECT * FROM A RIGHT OUTER JOIN B

ON A.key = B.key;


FULL OUTER JOIN (교집합 제외)


SELECT * FROM A LEFT OUTER JOIN B

ON A.key = B.key

WHERE B.key IS NULL

 

UNION


SELECT * FROM A RIGHT OUTER JOIN B

ON A.key = B.key

WHERE A.key IS NULL;


3개의 테이블 JOIN ...(생략)


5주차 정리

내장 함수


SQL 내장 함수

- SQL에서는 함수의 개념을 사용
- 수학의 함수와 마찬가지로 특정 값이나 열의 값을 입력 받아 그 값을 계산하여 결과 값을 돌려줌
- SQL의 함수는 DBMS가 제공하는 내장 함수(built-in function),
- 사용자가 필요에 따라 직접 만드는 사용자 정의 함수(user-defined function)로 나뉨

SQL 내장 함수

- SQL 내장 함수는 상수나 속성 이름을 입력 값으로 받아 단일 값을 결과로 반환함
- 모든 내장 함수는 최초에 선언될 때 유효한 입력 값을 받아야 함

주요 숫자 함수

주요 문자 함수

주요 날짜/시간 함수

주요 NULL 함수

 

NULL 값을 확인하는 방법 – IS NULL, IS NOT NULL
- NULL 값을 찾을 때는 '='연산자가 아닌 ‘IS NULL'을 사용,
- NULL이 아닌 값을 찾을 때는 '<>’ 연산자가 아닌 'IS NOT NULL'을 사용함
 
IFNULL(속성, 값) : 속성 값이 NULL이면 값으로 대치하여 출력

부속 질의 - Subquery


부속질의(subquery)란?

하나의 SQL 문 안에 다른 SQL 문이 중첩된(nested) 질의
 
다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할 때 사용
 
보통 데이터가 대량일 때 데이터를 모두 합쳐서 연산하는 조인보다 필요한 데이터만 찾아서 공급해주는
부속질의가 성능이 더 좋음
 
주질의(main query, 외부질의)와 부속질의(sub query, 내부질의)로 구성됨

부속 질의 종류


스칼라 부속 질의 (Scalar Subquery) - SELECT 부속 질의

- SELECT 절에서 사용되는 부속질의로, 부속질의의 결과 값을 단일 행, 단일 열의 스칼라 값으로 반환함
- 원칙적으로 스칼라 값이 들어갈 수 있는 모든 곳에 사용 가능하며, 일반적으로 SELECT 문과 UPDATE SET 절에 사용됨
- 주질의와 부속질의와의 관계는 상관/비상관 모두 가능함


인라인 뷰 (Inline View) – FROM 부속 질의

- FROM 절에서 사용되는 부속질의
- 테이블 이름 대신 인라인 뷰 부속질의를 사용하면 보통의 테이블과 같은 형태로 사용할 수 있음
- 부속질의 결과 반환되는 데이터는 다중 행, 다중 열이어도 상관없음
- 다만 가상의 테이블인 뷰 형태로 제공되어 상관 부속질의로 사용될 수는 없음

중첩 질의 (Nested Subquery) – WHERE 부속 질의

- 중첩질의(nested subquery) : WHERE 절에서 사용되는 부속질의
-WHERE 절은 보통 데이터를 선택하는 조건 혹은 술어(predicate)와 같이 사용됨
→ 중첩질의를 술어 부속질의(predicate subquery)라고도 함

비교 연산자: 부속질의가 반드시 단일 행, 단일 열을 반환해야 하며, 아닐 경우 질의를 처리할 수 없음

 

IN, NOT IN
- IN 연산자는 주질의 속성 값이 부속질의에서 제공한 결과 집합에 있는지 확인하는 역할을 함
- IN 연산자는 부속질의의 결과 다중 행을 가질 수 있음
- 주질의는 WHERE 절에 사용되는 속성 값을 부속질의의 결과 집합과 비교해 하나라도 있으면 참이 됨
- NOT IN은 이와 반대로 값이 존재하지 않으면 참이 됨
- FROM 절에서 사용되는 부속질의

 

ALL, SOME (ANY)
- ALL은 모두, SOME(ANY)은 어떠한(최소한 하나라도)이라는 의미
- 구문 구조:
EXISTS, NOT EXISTS
- 데이터의 존재 유무를 확인하는 연산자
 
- 주질의에서 부속질의로 제공된 속성의 값을 가지고 부속질의에 조건을 만족하여 값이 존재하면 참이 되고,
주질의는 해당 행의 데이터를 출력함

 

- NOT EXIST의 경우 이와 반대로 동작함
 
- 구문 구조:

'2-1 > 데이터베이스' 카테고리의 다른 글

데이터베이스 6주차 정리  (0) 2023.04.10
데이터베이스 5주차 과제  (0) 2023.04.04
데이터베이스 4주차 정리  (0) 2023.03.27
데이터베이스 3주차 정리  (0) 2023.03.20
데이터베이스 2주차 정리  (0) 2023.03.13