SQL 기본
- 다수의 SQL 실행 시 세미콜론으로 분리
- SQL 주석은 -- 또는 /* -- */ 로 사용한다.
- SQL키워드는 대문자를 사용하는 등의 포맷팅이 필요하다.
- 테이블/필드이름의 명명규칙을 정하는 것이 중요하다.
DDL
- CREATE TABLE (pk를 지정 가능하나 무시된다.)
- CTAS : CREATE TABLE table_name AS SELECT 또는 CREATE TABLE and then INSERT
DML
- INSERT INTO
- UPDATE
- DROP TABLE
- 존재하지 않는 경우 → DROP TABLE IF EXISTS table_name;
- 레코드 삭제는 DELETE FROM사용, TRUNCATE도 있다. DELETE FROM만 트랜젝션이 가능하다.
- ALTER TABLE
- 새로운 컬럼 추가 : ALTER TABLE table_name ADD COLUMN field_name field_type
- 이름 변경 : RENAME A to B(컬럼이름) , A RENAME to B(테이블이름)
- 기존 컬럼 제거 : DROP COLUMN
- SELECT
- SELECT FROM WHERE
- GROUP BY → 그룹화
- ORDER BY → 순서
SELECT
- COUNT()
: 레코드의 수를 체크하기 위해 사용한다.
SELECT table_name.COUNT()
- CASE WHEN
: 필드 값의 변환을 위해 사용 가능
CASE WHEN 조건 THEN value ELSE value END field_name
WHERE
- IN : 특정 채널 안에 있는 경우 판별
- LIKE(대소문자 구별), ILIKE(대소문자 구별없이)
- BETWEEN : 일자의 범위를 체크한다.
- STRING Functions
- LEFT(str,N) : 왼쪽에서 N개의 문자
- REPLACE(str,exp1,exp2) : 변환
- UPPER,LOWER(str)
- LEN(str)
- LPAD,RPAD : 좌우 패딩 생성(특정 문자로 채운다)
- SUBSTRING : 주어진 문자열을 슬라이싱
- ORDER BY
- ASC : 오름차순 → Default
- DESC : 내림차순
- 타입 변환
- DATE Conversion
- 타임존 : CONVERT_TIMEZONE(’’,timestamp)
- DATE, TRUNCATE : 날짜만 리턴
- DATE_TRUNC, EXTRACT or DATE_PART : 특정 부분의 값 추출
- Type Casting
- category::float
- cast(category as float)
- NULL: 값이 존재하지 않음을 나타내는 상수, 사칙연산에 들어가면 NULL로 바뀐다.
공부 한 내용
- AWS - Redshift 구성
- SQL - SELECT 실습
새롭게 배운 내용
- Redshift 시작 방법
- SELECT 기초 재학습
느낀점&참고
: SQL 실력향상을 위해서는 많이 작성해보아야한다고 느꼈다. SQL 코딩테스트 연습도 종종 해야할듯 하다.
감사합니다. 이런 정보를 나눠주셔서 좋아요.