DataEngineer 04 - SQL 기초

SQL query

  • RDBM의 종류에 따라 구문이 조금씩 다르지만 기본 원리는 동일
  • SQLite로 진행

Data

SELECT

SELECT 컬럼 FROM 테이블 WHERE 조건;
  • ASC/DESC : 정렬 순서
  • ORDER BY : 정렬 대상
  • GROUP BY : 그룹으로 묶어서 데이터 선택
  • LIMIT : 출력 개수 제한

INSERT

INSERT INTO 테이블 (컬럼, ...) VALUES(, ...)

UPDATE

UPDATE SET 컬럽= WHERE 조건

REPLACE

: 있으면 바꾸고, 없으면 추가

REPLACE INTO 테이블 (컬럼, ...) VALUES(, ...)

INSERT OR IGNORE

: 중복이 없을 때만 실행하고 있으면 종료 cf. MySQL : INSERT IGNORE

INSERT OR IGNORE INTO 테이블 (컬럼, ...) VALUES(, ...)

DELETE

DELETE FROM 테이블 WHERE 조건

JOIN

Image
출처 : https://commons.wikimedia.org/wiki/File:SQL_Joins.svg

Table

CREATE

CREATE TABLE 테이블 (컬럼 데이터타입, ...)

ALTER

ALTER TABLE 테이블 RENAME TO 새테이블명;
ALTER TABLE 테이블 ADD COLUMN 컬럼명 데이터타입;

DROP

DROP TABLE 테이블

Function

  • SUBSTR(컬럼, 시작 인덱스, 끝 인덱스) : 컬럼을 호출할 때 문자열의 일부만 가져오도록 선택
  • UPPER/LOWER : 대문자/소문자로 변환
  • LENGTH : 문자열 길이
  • MAX/MIN : 최대/최소값
  • AVG, COUNT, SUM
  • DATE : 세부 syntax는 database별 상이
      SELECT DATE(CURRENT_TIMESTAMP) >> '2020-02-24'
      SELECT DATE('NOW') >> '2020-02-24'
    
      SELECT CURRENT_TIMESTAMP >> '2020-02-24 20:00:00'
      SELECT DATETIME('NOW') >> '2020-02-24 20:00:00'
      SELECT DATETIME(CURRENT_TIMESTAMP, '+1 DAY') >> '2020-02-25 20:00:00'
    
  • CASE WHEN
      SELECT
      컬럼, ...
      CASE WHEN 조건 THEN 결과
      WHEN 조건 THEN 결과
      ELSE 결과
      END AS 출력용 컬럼명,
      FROM 테이블
    

    

    REF
    패스트캠퍼스 - 데이터 엔지니어 강의 / 한승수 강사