목록computer science/database (21)
IT STUDY LOG
# FLASHBACK - USER의 논리적인 오류 보완하는 기능 - COMMIT을 하더라도 ORACLE 롤백 대비를 위해 변경 전 데이터를 별도로 관리하고 있으므로, ORACLE에서 지정된 시간 내에 복구할 수 있음 삭제 복원 -- 삭제 후 커밋 SELECT * FROM emp; DELETE emp; COMMIT; -- emp 테이블의 현재 시점의 데이터를 읽음 SELECT * FROM emp; -- emp 테이블에서 과거 시점의 데이터를 읽음 -- ① 명시적으로 시간 지정 SELECT * FROM emp AS OF TIMESTAMP TO_DATE('2023/09/01 16:35:00', 'yyyy/mm/dd hh24:mi:ss'); -- ② 현재 시간 계산 SELECT * FROM emp AS OF T..
# INSERT - 테이블에 새로운 행을 삽입하는 명령어 하나의 행 삽입 INSERT INTO dept VALUES (50, 'EDUCATION', 'D1'); SELECT * FROM dept; INSERT INTO dept(dname, deptno) VALUES ('MARKETING', 60); -- 입력하지 않은 값은 NULL로 입력 INSERT INTO dept VALUES (70, 'FINANCE', NULL); -- 명시적으로 NULL로 입력 가능 COMMIT; -- 지금까지 변경된 작업을 반영 SELECT * FROM dept; 특정 값을 갖는 행 삽입 - 단일행 함수를 활용해 입력 가능 (그룹함수는 불가) 특정 값을 갖는 행 삽입 현재 사용자 이름 입력: USER 함수 사용 날짜 값을 입력..
# 분석함수 - SELECT 절에만 쓰일 수 있음 - 비즈니스 분야에서 자주 행해지는 여러가지 형태의 분석에 유용하게 활용될 수 있음 - 각 윈도우별 집합 연산 수행한 결과를 리턴하며 JOIN, 프로그램의 오버헤드 줄임 # 분석함수 구문 - 구문: SELECT 분석함수(인자) OVER ([PARTITION BY 컬럼리스트] [ORDER BY 컬럼리스트] [WINDOWING절: ((ROWS|RANGE) (BETWEEN 시작위치 AND 끝위치|시작위치))])FROM 테이블명; OVER : 분석함수임을 나타내는 키워드 PARTITION BY : 쿼리 결과를 지정한 컬럼 별로 그룹핑 (생략시 하나의 그룹), 계산 대상 그룹 지정 ORDER BY : PARTITION BY로 묶인 컬럼 그룹내에 있는 행의 검색 순..
# INLINE 뷰 - FROM절에 사용한 서브쿼리 - SQL문이 실행될 때만 임시적으로 생성되는 동적 뷰 SELECT * FROM (SELECT job, ROUND(AVG(sal)) FROM emp GROUP BY job ORDER BY ROUND(AVG(sal)) DESC) WHERE ROWNUM
# 다중행/다중열 서브쿼리 다중행 서브쿼리 - SELECT 문장으로부터 하나 이상의 행을 검색하는 질의 IN SELECT empno, ename, deptno, sal FROM emp WHERE sal IN (SELECT sal FROM emp WHERE job = 'MANAGER' ); ANY - 서브쿼리에서 반환한 각각 값과 비교해 하나라도 참이면 참 (OR로 동작) ANY : 최소값보다 큼 = ANY : IN과 동일 SELECT empno, ename, deptno, sal FROM emp WHERE sal = ANY (SELECT sal -- IN과 동일한 결과 FROM emp WHERE job = 'MANAGER' ); ALL - 서브쿼리에서 반환한 각각 값과 ..