코야온니의 티스토리 :)
[패스트캠퍼스] BDA 부트캠프 학습일지_8주차 본문
8주차 (0807-0811)
패스트캠퍼스 데이터 분석 부트캠프
SQL 온라인 강의 : 초격차 패키지 : 한 번에 끝내는 데이터 사이언스
Ch 6. SQL 기본
SELECT 문
# || 로 칼럼 두 개의 값을 합쳐서 출력 가능
SELECT FIRST_NAME || ' ' || LAST_NAME AS FIRST_LAST_NAME
FROM CUSTOMER;
# SELECT DISTINCT로 중복 제거해서 출력 가능
SELECT DISTINCT BACK_COLOR FROM TB_DISTINCT_TEST;
ORDER BY 절
- 2개 이상 컬럼으로 정렬 가능 (앞의 컬럼 우선 정렬 → 이후 컬럼으로 순차적 정렬)
- 앨리어스 별명을 기재하여 정렬 가능
- 컬럼 기재 순서를 기재하여 정렬 가능
- NULL 값에 대해 첫 번째 or 마지막으로 지정 가능
# Null 값을 먼저
SELECT * FROM TB_SORT_TEST ORDER BY NUM NULLS FIRST;
# Null 값을 나중에
SELECT * FROM TB_SORT_TEST ORDER BY NUM NULLS LAST;
WHERE 절
조건을 줘서 특정 조건에 부합하는 결과 집합 행만을 추출 O
연산자 : AND, OR, <> (부정), >, <, >=, <=
LIMIT 절
출력되는 행 수를 제한 O
# OFFSET 3은 0,1,2,3 즉 4번째 행부터임을 의미함 → 4, 5번째 행 출력
SELECT A.FILM_ID , A.TITLE , A.RELEASE_YEAR
FROM FILM A
ORDER BY A.FILM_ID
LIMIT 2 OFFSET 3 ;
# ORDER BY DESC + LIMIT → 최근, 최상의 값 출력 가능
FETCH 절
출력되는 행 수를 제한 O
LIMIT절과 기능적으로 동일
...
ORDER BY A.FILM_ID FETCH FIRST 5 ROW ONLY;
or
ORDER BY A.FILM_ID OFFSET 3 ROWS FETCH FIRST 2 ROW ONLY ; # 4번째 행부터
WHERE 절의 연산자
IN 연산자
- IN ( ) : 괄호 안의 값인 행을 출력, OR 연산자와 결과 동일
- NOT IN ( ) : 괄호 안의 값이 아닌 행을 출력, <> + AND 연산자와 결과 동일
WHERE A.CUSTOMER_ID IN (1, 2)
=
WHERE A.CUSTOMER_ID = 1 OR A.CUSTOMER_ID = 2
BETWEEN 연산자
범위에 대한 조건에 부합하는 행을 출력
WHERE A.AMOUNT BETWEEN 10 AND 11; # 10 이상 11 이하인 값을 출력
WHERE A.AMOUNT NOT BETWEEN 10 AND 11; # 10 이상 11 이하가 아닌 값을 출력
LIKE 연산자
특정 패턴과 일치하는 조건의 행을 출력
WHERE FIRST_NAME LIKE 'Jen%'; # Jen으로 시작하는 데이터 출력
WHERE FIRST_NAME LIKE '%enni%'; # enni가 들어가는 모든 데이터 출력
WHERE FIRST_NAME LIKE 'Jen___' # Jen_ _ _인 데이터 출력 ex) Jennie
WHERE FIRST_NAME LIKE 'Jen___%'; # Jen으로 시작하는 6자리 이상의 데이터 출력 ex) Jennie,Jennifer
NULL 비교
- IS NULL 연산자
- IS NOT NULL 연산자
WHERE A.PHONE_NUMBER IS NULL;
WHERE A.PHONE_NUMBER IS NOT NULL ;
CASE 문
IF 문과 같이 조건문 작성 가능
CASE문의 결과를 기준으로 Order by 정렬 가능 (LONG → MEDIUM → SHORT, 같을 경우 LENGTH로 정렬)
NULL 관련 함수
1. NULLIF 함수
SELECT
NULLIF(1, 1) AS 첫번재 ,
NULLIF(1, 0) AS 두번째 ,
NULLIF('A', 'A') AS 세번째 ,
NULLIF('A', 'B') AS 네번째 ;
1, 3번의 경우 같으니 'NULL' 출력,
2, 4번의 경우 다르니 첫 번째 인자 출력
2. COALESCE 함수
SELECT
COALESCE(NULL, 1 ) AS 첫번째 ,
COALESCE(1 , 0 ) AS 두번째 ,
COALESCE('A' , 'B') AS 세번째 ,
COALESCE(NULL, 'B') AS 네번째 ;
1, 4번의 경우 첫 번째 인자가 NULL 이라서 두 번째 인자 출력,
2, 3번의 경우 첫 번째 인자가 NULL이 아니라서 첫 번째 인자 출력
CAST 연산자
데이터 타입을 변환할 수 있음.
# 문자열을 숫자형 변환
SELECT CAST ('100' AS INTEGER) AS CAST_AS_INTEGER;
# 문자열을 실수형 변환
SELECT CAST ('10.2' AS DOUBLE PRECISION) AS 첫번째;
# 문자열을 날짜형 변환
SELECT CAST ('2015-01-01' AS DATE) AS "첫번째", CAST ('01-OCT-2015' AS DATE) AS "두번째";
# 문자열을 INTERVAL형 변환 ( 시간 계산에 활용 O )
SELECT CAST( '15 minute' AS INTERVAL) AS "첫번째" ;
# 문자열을 TIMESTAMP형 & INTERVAL형 변환, 시간 계산
SELECT CAST('2019-06-15 14:30:20' AS TIMESTAMP) - CAST('2 hour' AS INTERVAL) AS "첫번째";
→ 결과: 2019-06-15 12:30:20
문자열 관련 함수
날짜 관련 함수
'데이터 분석 부트 캠프' 카테고리의 다른 글
[프로젝트] SQL mini project_Olist 신규 물류 센터 구축 (0) | 2023.08.23 |
---|