1. SELECT (args) FROM table_name: 데이터베이스에서 데이터(컬럼)을 추출
- SELECT *: 모든 컬럼 추출
- SELECT column1, column2 ... : 특정 컬럼 추출
- SELECT DISTINCT: 컬럼을 중복 없이 추출
- SELECT column1 AS alias1, column2 as alias2: 특정 컬럼을 별칭으로 추출 (AS 없이 공백도 가능)
- SELECT 1+1: 산술 연산
- SELECT column1 + 100: 추출한 특정 컬럼에 산술 연산
- SELECT column1, column1 * 0.8 AS column1_reduced: 특정 컬럼에 산술 연산된 결과를 새로운 컬럼으로 함께 출력
- SELECT column1 || ' ' || column2 || ' ' || column3 AS new_column: 여러 컬럼을 이어 붙여서 하나의 컬럼으로 추출 (회사마다 문법 상이)
2. ORDER BY column_name: 추출한 데이터를 특정 컬럼 기준으로 정렬 (Default: 오름차순)
- ORDER BY column1 ASC: 오름차순 정렬
- ORDER BY column1 DESC: 내림차순 정렬
3. WHERE: WHERE 조건에 부합하는 컬럼 데이터만 추출 (아래 예시)
- SELECT * FROM table1 WHERE column1 BETWEEN lower AND upper;
- SELECT * FROM table1 WHERE column1 IN (10,20,30);
- SELECT * FROM table1 WHERE column1 LIKE keyword; -> regex와 비슷한 방식으로 패턴검색
- %: 없거나, 하나거나, 여러개인 char 문자형
- _: 단 하나의 문자형
- wildcard 예시:
- 'a%': a로 시작하는 모든 값
- '%a': a로 끝나는 모든 값
- '%or%': or을 포함한 모든 값
- '_r%': 두 번째 인덱스에 r이 존재하는 모든 값
- 'a%z': a로 시작해서 z로 끝나는 모든 값
- SELECT * FROM table1 WHERE column1 IS NULL; -> 비어있는 데이터 확인
4. INSERT INTO: 테이블에 새로운 값을 저장할 때 사용
- INSERT INTO table1 (value1, value2, ...) : 모든 컬럼에 값 저장
- INSERT INTO table1 (column1, column2, ...)
5. UPDATE: 테이블의 기존 값을 업데이트 (업데이트 후 복구가 어렵기 때문에 사용에 주의)
- UPDATE table1
SET column1 = value1, column2 = value2, column3 = value3
WHERE condition;
- condition이 없을 경우 모든 데이터가 해당 값으로 업데이트 (주의)
6. DELETE: 테이블의 기존 값을 삭제 (역시 사용에 주의)
- DELETE FROM table1 WHERE condition;
- condition을 안 적을 경우 모든 데이터가 삭제됨 (매우 주의)
7. TOP, LIMIT, ROWNUM: SELECT와 함께 사용, 리턴하는 값의 갯수를 지정 (회사마다 구문 상이)
- SELECT TOP 10 * FROM table1;: 특정 컬럼의 상위 10개 값만 추출
- SELECT * FROM table1 LIMIT 10;
8. COUNT, AVG, SUM: (조건을 만족하는) 컬럼의 갯수/평균/총합을 반환
- SELECT COUNT(column1) FROM table1 WHERE condition;
- SELECT AVG(column1) FROM table1 WHERE condition;
- SELECT SUM(column1) FROM table1 WHERE condition;
9. CASE WHEN: 조건문 처리 (회사마다 구문 상이)
- SELECT CASE WHEN condition THEN return1 ELSE return2 END;
10. JOIN: 2개 이상의 테이블에서 각 테이블간 관계를 통해 서로 결합할 때 사용
- SELECT table1.column1, table2.column2, table3.column3, ...
FROM table1
JOIN table2 ON table1.column1 = table2.column2;
11. GROUP BY: 데이터를 원하는 특정 컬럼 그룹으로 나누어 추출
- SELECT column1 alias1, column2 alias2, COUNT() alias3
FROM table1
GROUP BY column2
HAVING condition
ORDER BY COUNT() DESC;