SQLD 자격증 취득한지 9개월 정도 되었다. 공모전, 프로젝트 등을 하면서 모두 정형화된 데이터라 SQL을 사용할 일이 많이 없었고 자연스레 기억 속에서 SQL은 잊혀져갔다. 🤣 데이터 분석가라면 필수적으로 사용해야 하기도 하고
코딩테스트도 준비해야 할 겸 무조건 해야겠다는 생각이 들어서 은혁이와 함께 DataCamp 수강을 신청했다. 😁
앞으로 이 공간은 SQL에 관한 모든 지식들을 정리할 예정이다. 주로 함수 사용법에 대해 정리할 듯 하긴 하다. 🙃
쿼리 실행 순서 : FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
깔끔한 쿼리 작성 법 : FROM, WHERE 등은 대문자로, 컬럼명 등은 소문자로 작성, 다수의 컬럼명을 활용할 때에는
아래 방향으로 작성.
SELECT name
FROM student;
SELECT
지정해준 컬럼들 추출해주는 함수
- TOP(N) : 상위 N개 결과 반환
- TOP(N) PERCENT : 상위 N% 결과 반환
- DISTINCT : 고유값 반환
- AS(ALIAS) : 결과창에 나타날 컬럼명 지정
[집계 함수]
- SUM(컬럼명) : 컬럼 값들의 합을 반환
- MIN/MAX/AVG(컬럼명) : 컬럼 값들의 최소값, 최대값, 평균 값 반환
- COUNT(컬럼명) : 컬럼의 갯수 반환
- LEN(컬럼명) : 컬럼의 값이 문자인 경우, 문자열의 길이 반환 (*활용할 컬럼명을 SELECT 구문에서 미리 지정해야 함.)
- LEFT/RIGHT(컬럼명, 추출할 문자 수) : 컬럼의 값이 문자인 경우, 왼쪽/오른쪽에서 부터 문자열 지정 수만큼 추출
- CHARINDEX('특정 문자', 컬럼명) : 해당 컬럼에서 특정 문자 시작 위치 추출
- SUBSTRING(컬럼명, 시작 위치, 끝 위치) : 컬럼의 값이 문자인 경우, 시작 ~ 끝 위치에 존재하는 문자열 추출
- REPLACE(컬럼명, 대체할 문자, 대체될 문자) : 컬럼의 문자 대체
*AS로 해당 결과 컬럼명을 지정해야 함. 그렇지 않으면, '(열 이름 없음)'으로 반환됨.
WHERE
특정 조건을 만족하는 행을 추출 (행 수준에서 필터링 하는 역할)
FROM 아래에 사용하며 숫자/날짜/문자 모두 기준으로 사용 가능하다. 단, 문자, 날짜는 '' 따옴표 활용해야 함.
- BETWEEN 값 and 값 : 해당 범위 내에 포함되는 값 추출
- IS NULL/IS NOT NULL : 누락 값 반환/반환하지 않음
- AND/OR : OR이 AND보다 먼저 실행이 되므로 주의 ! 괄호를 활용하여 알맞은 조건을 지정해야 함.
- IN (값) : 해당 값에 포함되는 값들 찾기
- LIKE '값%'/'%값'/'%값%' : 값으로 시작하는/끝나는/포함되는 값들 찾기
GROUP BY
그룹으로 분할하는 함수, 그룹 별로 집계하는데 용이하다.
HAVING
GROUP BY 이후의 필터링 또는 집계함수를 하는데 사용된다. WHERE과 다르므로 주의 !
*WHERE는 행을 필터링, HAVING은 그룹 별 집계된 값들을 필터링
ORDER BY
최종 추출된 값들을 정렬하는데 사용되는 함수, 다수의 컬럼을 동시에 사용 가능하며, 먼저 오는 컬럼 기준으로
결과 값이 정렬된다.
- DESC : 내림 차순 정렬
*기본 값이 오름 차순 정렬이므로, 내림 차순 하고 싶을 경우에 DESC 함수 사용해주면 된다.
'Algorithm > SQL' 카테고리의 다른 글
[SQL] 데이터 캠프 수강 (5) - PostgreSQL Summary Stats and Window Functions (0) | 2021.03.23 |
---|---|
[SQL] 데이터 캠프 수강 (4) - Intermediate SQL (0) | 2021.03.21 |
[SQL] DataCamp 수강 (3) (0) | 2021.03.14 |
[SQL] DataCamp 수강 (2) (0) | 2021.03.12 |
[SQL] SQL Server 연결하기 & 데이터 베이스 생성 (0) | 2021.01.30 |