데브코스 TIL/SQL

SQL을 이용한 데이터 분석 Day 2 SELECT 배우기

예니ㅣ 2023. 11. 14. 15:37

강의

SQL

  • SQL문 실행할 때 세미콜론으로 분리 필요
  • SQL 주석 : -- 혹은 /* -- */
  • 포맷팅 필요 → 대문자 사용
  • 팀 프로젝트인 경우 공통 포맷 설정 필요
  • 테이블/필드 명명규칙 필요
    • 단수형 vs 복수형
    • _ vs CamelCasing

 

"DDL"은 테이블의 구조를 정의하는 언어 입니다.

  • CREATE TABLE : 테이블 생성
    • Primary key 속성 지정 
    • CTAS(CREATE TABLE and then AS SELECT) : 생성 및 데이터 추가
  • DROP TABLE : 테이블 삭제
    • DROP TABLE IF EXISTS table_name;
  • ALTER TABLE : 컬럼 추가/이름 변경/제거 및 테이블 이름 변경
    • ALTER TABLE table_name ADD COLUMN field_name field_type;
    • ALTER TABLE table_name RENAME COLUMN field_name new_field_name;
    • ALTER TABLE table_name DROP COLUMN field_name;
    • ALTER TABLE table_name RENAME COLUMN new_table_name;

 

"DML"은 테이블의 데이터를 조작하는 언어 입니다.

  • SELECT : 레코드 질의
    • SELECT FROM : 레코드와 필드 읽
    • WHERE : 선택 조건 지정
    • GROUP BY : 그룹 레벨 설정
    • ORDER BY : 레코드 순서 지정
    • JOIN : 다수의 테이블 합치기
  • 레코드 수정
    • INSERT INTO : 레코드 추가
    • UPDATE FROM : 레코드 필드 값 수정
    • DELETE FROM : 레코드 삭제 → 테이블 존재
    • TRUNCATE : 레코드 삭제

 


기본 함수

"SELECT"는 테이블에서 레코드(혹은 레코드수)를 읽어오는데 사용합니다.

SELECT 필드1, 필드2, ... -- 전체 필드 : *
FROM 테이블
WHERE 선택 조건
GROUP BY 필드1, 필드2, ...
ORDER BY 필드[ASC|DESC] -- 필드 이름 or 숫자 사용
LIMIT N
;

 

  • COUNT(0|1) : 레코드수 카운트
  • CASE WHEN 조건 THEN 참일때 값 ELSE 거짓일때 값 END 필드이름 : 필드 값 변환

 

"NULL"은 값이 존재하지 않음을 나타내는 상수 입니다.

  • is NULL
  • is not NULL

 

"WHERE"은 선택 조건을 지정합니다.

  • IN 혹은 NOT IN : 존재 여부
  • LIKE 혹은 NOT LIKE : 문자열 부분 검색
  • ILIKE 혹은 NOT ILIKE : 문자열 부분 검색 및 대소문자 무시
  • BETWEEN : 범위

 

STRING Functions

  • LEFT(str, N)
  • REPLACE(str, exp1, exp2)
  • UPPER(str)
  • LOWER(str)
  • LEN(str)
  • LPAD, RPAD
  • SUBSTRING

 

"ORDER BY"는 순서를 지정합니다.

기본 설정을 오름차순(ASC) 입니다.

여러 컬럼을 이용하여 원하는 순서를 지정할 수 있습니다.

NULL은 오름차순일 경우 마지막에 위치합니다.

NULLS FIRST 혹은 NULLS LAST를 이용하여 NULL의 순서를 지정할 수 있습니다.

 

타입 변환

  • DATE Conversion
    • CONVERT_TIMEZONE
    • DATE, TRUNCATE
    • DATE_TRUNC
    • EXTRACT 혹은 DATE_PART
    • DATEDIFF : 시간 차이
    • DATEADD
    • GET_CURRENT : 현재 시각
  • TO_CHAR 
  • TO_TIMESTAMP

 

"Type Casting"은 제대로 연산하기 위해 자료형을 변환해주는 것을 말합니다.

  • category::float
  • cast(category as float)