Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- HADOOP
- 데이터 파이프라인
- 데이터베이스
- 데이터엔지니어링
- TCP
- sql
- airflow.cfg
- 데이터 엔지니어링
- PYTHON
- 파이썬
- TIL
- 가상환경
- dockerfile
- http
- airflow
- 정리
- 운영체제
- Django
- 컴퓨터네트워크
- 데브코스
- S3
- linux
- 데이터 웨어하우스
- AWS
- Docker
- Go
- redshift
- 컴퓨터 네트워크
- 자료구조
- 종류
Archives
- Today
- Total
홍카나의 공부방
[DE 데브코스] 05.09 TIL - SQL 본문
SQL Tips
-- 다수의 SQL 문을 실행한다면 세미콜론으로 분리 필요
SELECT *
FROM Orders;
SELECT id
FROM Items;
-- 테이블/필드이름의 명명규칙을 정하는 것이 중요
-- 단수형 vs 복수형
User vs. Users
-- _ vs. CamelCasing
user_session_channel
UserSessionChannel
DROP TABLE table_name; -- 테이블 삭제
DELETE FROM; -- 조건에 맞는 레코드만 지움
ALTER TABLE table_name ADD COLUMN field_name field_type; -- 새 필드 이름/타입 추가
ALTER TABLE table_name RENAME old_field_name to new_field_name; -- 기존 필드 이름 변경
ALTER TABLE table_name DROP COLUMN field_name; -- 필드 드롭
ALTER TABLE table_name RENAME to new_table_name; -- 새 테이블 이름으로 변경
-- WHERE의 응용
WHERE channel in ("GOOG","TUBE");
WHERE channel LIKE 'G*';
WHERE channel LIKE '*o*';
- Redshift 등의 데이터 웨어하우스에는 PK 유일성이 보장되지 않음. ( CREATE로 pk field를 지정해도 마찬가지 )
- ORDER BY의 경우, NULL 값 순서는 오름차순(ASC) 일 때 마지막에, 내림차순(DESC) 일 때 맨 처음에 위치한다.
데이터 일을 한다면...
- 항상 데이터의 품질을 의심하고 체크하는 습관을 들여야 한다.
- 중복된 레코드를 체크하고
- 최근 데이터의 존재 여부를 확인하며
- PK Uniqueness가 지켜지는지 확인하고
- null 값이 들어있는 컬럼들이 있는지 체크하며
- 이를 unit test 형태로 만들어 매번 쉽게 체크해 보는 과정을 거치면 되겠다.
COUNT 함수 제대로 이해하기
- SELECT COUNT(1) FROM count_test에서 COUNT 함수의 parameter가 NULL이 들어오지 않으면 계속 셈을 한다.
- SELECT COUNT(NULL) FROM count_test처럼 NULL이 인자로 들어오면 COUNT가 skip이 되어 0을 반환한다.
- SELECT COUNT(value) FROM count_test는 Null을 제외한 모든 값이 카운트되어 6을 반환할 것이다.
- DISTINCT는 중복을 제거하여 셈을 하므로, 중복 값과 Null 값을 제외한 4를 반환한다.
반응형
'Data Engineering > 프로그래머스 데브코스' 카테고리의 다른 글
[DE 데브코스] 05.11 TIL - SQL JOIN과 NULL 처리 (0) | 2023.05.11 |
---|---|
[DE 데브코스] 05.10 TIL - SQL(2) (2) | 2023.05.10 |
[DE 데브코스] 05.08 TIL - SQL과 RDBMS (0) | 2023.05.08 |
[DE 데브코스] 05.05 TIL - 프로젝트, 네트워크, 데이터 개념 정리 (3) | 2023.05.05 |
[DE 데브코스] 04.27 TIL - Django: User와 Authentication, Git의 기능 (0) | 2023.04.27 |