☑️ SQL
SQL? 관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어
원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성
DQL : SELECT
DML : INSERT, UPDATE, DELETE
DDL : CREATE, ALTER, DROP
TCL : COMMIT, ROLLBACK
DCL : GRANT, REVOKE
☑️ DBMS
데이터베이스를 관리하는 프로그램
☑️ 데이터 타입
- NUMBER : 숫자형 --> 정수, 실수 구분 없음
- CHAR : 고정 길이 문자형 --> 최대 2000바이트
ex) CHAR(100) : 영문자 100 바이트
- VARCHAR2 : 가변 길이 문자형 --> 최대 4000바이트
☑️ SELECT
데이터를 조회한 결과를 RESULT SET이라고 한다. 즉, 조회된 행들의 집합!
☑️ TABLE
일종의 표 형태로 표현한 것!
행과 열로 구성되는 가장 기본적인 데이터베이스 객체
테이터베이스 내에서 모든 데이터는 테이블을 통해서 저장된다
☑️ 함수
- SUBSTR
- UPPER
- INITCAP : 조회한 컬럼이 영문자일 경우 앞글자를 대문자로 바꿔주는 함수
- TRIM : 조회한 컬럼 양 끝에 띄어쓰기나 빈칸이 있을 경우, 이를 제거해주는 함수
- DECODE
- ROLL UP : 그룹별로 중간 집계 처리를 하는 함수
- 문자열 날짜로 바꾸는 SELECT문
- UNION/UNION ALL : UNION ALL은 중복결과를 포함한 결과를 나타내는 연산자
- INTERSECT : 선행 SELECT 결과에서 다음 SELECT 결과와 겹치는 부분만을 추출한 것(교집합)
- MINUS : 선행 SELECT 결과에서 다음 SELECT 결과와 겹치는 부분을 제외한 나머지 부분 추출(차집합)
- CONCAT : 여러 문자열을 하나로 합쳐주는 역할
SELECT CONCAT(CONCAT(CONCAT(CONCAT(EMP_ID, ', '), EMP_NAME), ', '), EMP_NO)
FROM EMPLOYEE;
☑️ JOIN
- INNER JOIN : 교집합! 연결된 컬럼의 값이 일치하는 행들만 JOIN 된다 --> NULL값 제외
- LEFT OUTER JOIN : 왼쪽 테이블 컬럼 수를 기준으로 JOIN 된다 --> NULL값 포함
- RIGHT OUTER JOIN : 오른쪽 테이블 컬럼 수를 기준으로 JOIN 된다 --> NULL값 포함
☑️ SUBQUERY
- ROWNUM 컬럼 : 행 번호를 나타내는 가상 컬럼 --> 인라인뷰
SELECT ROWNUM, EMP_NAME, SALARY
FROM (SELECT EMP_NAME, SALARY
FROM EMPLOYEE
ORDER BY SALARY DESC
);
- RANK() OVER : 동일한 순위 이후의 등수를 동일한 인원수 만큼 건너뛰고 순위 계산
SELECT RANK() OVER (ORDER BY SALARY DESC) "순위",
EMP_NAME, SALARY
FROM EMPLOYEE;
- DENSE_RANK() OVER : 동일한 순위 이후의 등수를 이후의 순위로 계산
SELECT DENSE_RANK() OVER (ORDER BY SALARY DESC) "순위",
EMP_NAME, SALARY
FROM EMPLOYEE;