데브코스 TIL/SQL 6

SQL을 이용한 데이터 분석 Day 5 트랜잭션과 기타 고급 SQL 문법

강의 트랜잭션 "트랜잭션"(Transaction)은 Atomic하게 실행되어야 하는 SQL을 묶어서 하나의 작업처럼 처리하는 방법 입니다. BEGIN과 END 혹은 BEGIN과 COMMIT 사이에서 사용합니다. ROLLBACK을 사용하여 BEGIN 전의 상태로 돌이킬 수 있습니다. 대표적인 예시로 은행 계좌 이체가 있습니다. BEGIN; A 계좌로부터 인출; B 계좌로 입금; END 혹은 COMMIT; Commit Mode : autocommit True : 모든 레코드 수정/삭제/추가 작업이 기본적으로 데이터베이스에 바로 쓰여짐. → BEGIN;COMMIT; 과 ROLLBACK; 사용 필요 False : 모든 레코드 수정/삭제/추가 작업이 COMMIT 호출 전에 commit 불가 → .commit()과..

SQL을 이용한 데이터 분석 Day 4 JOIN 소개

강의 JOIN "JOIN"은 다수의 테이블을 공통 필드를 통해 merge하는 함수 입니다. 주로 스타 스키마로 분산되어 있는 테이블을 통합하는데 사용합니다. JOIN의 종류를 정해주지 않은 경우 INNER JOIN이 기본으로 적용됩니다. SELECT A.*, B.* FROM tableA ___ JOIN tableB ON A.key1 = B.key1 and A.key2 = B.key2 ... 종류 INNER JOIN : 교집합 양쪽 테이블에서 매칭되는 레코드만 리턴 양쪽 테이블의 필드가 모두 채워진 상태로 리턴 FULL JOIN : 합집합 양쪽 테이블의 모든 레코드 리턴 매칭되는 경우에만 양쪽 테이블의 모든 필드들이 채워진 상태로 리턴 CROSS JOIN : 조합(Combination) 양쪽 테이블의 모든..

SQL을 이용한 데이터 분석 DAY 3 GROUP BY와 CTAS

강의 GROUP BY & Aggregate "GROUP BY"는 테이블의 레코드를 그룹핑하는 함수 입니다. "Aggregate 함수"는 그룹핑한 필드에서 다양한 정보를 계산하는 함수들을 말합니다. 계산한 결과는 필드 이름(alias)를 지정하여 주는 것이 좋습니다. COUNT SUM AVG MIN MAX LISTAGG CTAS "CTAS"는 SELECT을 이용하여 테이블을 생성하는 방법 입니다. 기존의 테이블을 기반으로 데이터 분석에 기본이 되는 테이블을 사전에 생성할 수 있습니다. DROP TABLE IF EXISTS new_table; CREATE TABLE new_table AS SELECT A_table JOIN B_table ; 데이터 품질 확인 방법 중복된 레코드 체크하기 -- 전체 레코드 수..

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

강의 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 f..

SQL을 이용한 데이터 분석 Day 1 SQL과 데이터베이스 소개

강의 데이터 관련 직군 데이터 엔지니어 SQL, 데이터베이스 ETL/ELT (Airflow, DBT) Spark, Hadoop 데이터 분석가 SQL, 비지니스 도메인에 대한 지식 통계 (AB 테스트 분석) 데이터 과학자 머신러닝 SQL, 파이썬 통계 데이터베이스 "관계형 데이터베이스"는 구조화된 데이터를 저장한 것입니다. 구조화된 데이터 저장 및 질의할 수 있도록 해주는 스토리지 엑셀 스프레드시트 형태의 테이블로 데이터 정의 및 저장 SQL, DDL(Data Definition Language), DML(Data Manipulation Language) 종류 프로덕션 데이터 베이스 MySQL, PostgreSQL, Oracle OLTP(OnLine Transaction Processing) 빠른 속도에 ..