강의
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)
'데브코스 TIL > SQL' 카테고리의 다른 글
View & CTE (1) | 2024.01.05 |
---|---|
SQL을 이용한 데이터 분석 Day 5 트랜잭션과 기타 고급 SQL 문법 (0) | 2023.11.17 |
SQL을 이용한 데이터 분석 Day 4 JOIN 소개 (0) | 2023.11.16 |
SQL을 이용한 데이터 분석 DAY 3 GROUP BY와 CTAS (0) | 2023.11.15 |
SQL을 이용한 데이터 분석 Day 1 SQL과 데이터베이스 소개 (0) | 2023.11.13 |