한동안 블로그 활동이 줄어들었다.
그간 목표로 했었던 학부 졸업, 프로그래머스 교육활동을 모두 성황리에 마치고 바로 하반기 채용에 집중했던 탓에 데이터, IT 분야에 대한 지식 습득을 미루었다.그 결과 11개 서류 합격, 1차면접까지는 4번 진행.
중간에 시험 일정이 겹쳐 버린 카드가 많기에 아쉽긴 하지만 입사를 희망했던 기업들에 면접을 차례대로 볼 수 있었다.채용 절차를 진행하면서 느꼈던 감정은 "한 번에 집중해서 가자." 이다.
두 번 다시 언제 나에게 기회가 주어질지 모르기에 평소 공부하던 것보다 많이 집중해서 절차를 준비했던 것 같다.
그 와중에 내가 생각하기에 아쉬웠던 역량은 SQL이다.
데이터 엔지니어든 데이터 분석가든 SQL역량은 정말 필연적이라고 생각한다.
따라서 기존에도 SQL 공부를 하긴 했지만 이번 기회에 이론적인 부분도 재정리하며 다시 학습을 해보려 한다.
SQL 문장 종류는 다음과 같다.
🎈 1. DML (Data Manipulation Language)
비절차적 데이터 조작어로 불린다.
SELECT // INSERT // UPDATE // DELETE 로, DB 테이블의 들어있는 데이터를 조회하거나 검색, 데이터에 변형을 가하는 종류의 명령어로 테이블의 새로운 행에 데이터를 추가하거나 삭제, 수정하는 등의 명령어.
-> 사용자가 무슨 데이터를 원하는 지만 명세한다.🎈 2. DDL (Data Definition Language)
CREATE // ALTER // DROP // RENAME
테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 그러한 구조를 생성하거나 변경, 삭제, 이름 변경하는 데이터 구조와 관련된 명령어오라클에서는 DDL 명령 실행 후 자동으로 COMMIT을 수행한다.
✨ 테이블 내 용량 제거를 위한 삭제의 경우 TRUNCATE 활용. (단 ROLLBACK이 불가능하니 주의해야 함.)
- 데이터만 삭제 (DELETE)
- 테이블 삭제 X (TRUNCATE)
- 애초에 모든 것을 삭제하는 경우 DROP 필요.
🎈 3. DCL (Data Control Language)
GRANT, REVOKE
DB에 접근하는 권한 부여 및 회수 기능.✍️ 연산자 우선순위.
- 괄호 ()
- NOT 연산자
- 비교 연산자 = , > , < // SQL 비교 연산자 BETWEEN , IN , LIKE , IS NULL
- AND
- OR
💡 집계함수
- COUNT(*) : NULL 값을 포함한 행의 수를 출력
- COUNT(표현식) : 표현식의 값에서 NULL 값 제외한 행의 수 출력
- SUM([DISTINCT | ALL] 표현식) : 표현식의 NULL 값 제외 합계 출력
- AVG([DISTINCT | ALL] 표현식) : 표현식의 NULL 값 제외 평균 출력
- MAX([DISTINCT | ALL] 표현식) : 표현식의 최댓값 출력 (문자, 날짜 데이터 타입도 가능, 날짜의 경우 제일 최근 날짜)
- MIN([DISTINCT | ALL] 표현식) : 표현식의 최솟값 출력
- STDDEV([DISTINCT | ALL] 표현식) : 표현식의 표준편차 출력
- VARIAN([DISTINCT | ALL] 표현식) : 표현식의 분산 출력
GROUP BY // HAVING 절 특성.
- GROUP BY : SELECT 절과 달리 AS 명칭 사용 X
- HAVING 절 : 테이블 전체가 한 개의 그룹이 되는 경우 GROUP BY 없이 단독 사용 가능.