전체 글(147)
-
251031 TIL
FLASHBACK TABLE(10g)삭제한 테이블을 복원하는 SQL문삭제한 테이블 조회SHOW recyclebinSELECT * FROM user_recyclebin;SELECT * FROM dba_recyclebin WHERE owner = 'HR';삭제한 테이블 영구 삭제PURGE recyclebin테이블 삭제DROP TABLE hr.emp;SELECT * FROM user_recyclebin;삭제 테이블 조회SELECT * FROM "BIN$OCbOYC3eQU6vZWJizOBiBA==$0";user_recyclebin 에서 조회한 OBJECT_NAME을 테이블명으로 조회테이블 복원FLASHBACK TABLE emp TO BEFORE DROP;테이블은 원래대로 복원되지만, 인덱스와 제약 조건은 이름이..
2025.10.31 -
251030 TIL
DML(Cont.)MERGE(9i)INSERT, UPDATE, DELETE문을 한꺼번에 수행하는 SQL 문MERGE INTO hr.dw_emp dUSING hr.oltp_emp oON (d.employee_id = o.employee_id)WHEN MATCHED THEN UPDATE SET d.salary = o.salary * 1.1 DELETE WHERE o.flag = 'd'WHEN NOT MATCHED THEN INSERT (d.employee_id, d.last_name, d.salary, d.department_id) VALUES (o.employee_id, o.last_name, o.salary, o.department_id);문제-- [문제51] emp_..
2025.10.30 -
251029 TIL
DDL(Data Definition Language)데이터베이스 생성 또는 객체들을 생성 유지 관리하는 명령어권한 필요CREATE, ALTER, DROP, TRUNCATE, RENAME, COMMENTDCL(Cont.)시스템 권한 회수REVOKE create session FROM insa;객체 권한 부여SYS 또는 객체 소유자가 부여INSA 에서 HR 소유 테이블 조회hr.employees 테이블에 대한 SELECT 권한 없음SYS 에서 객체 권한 부여GRANT SELECT ON hr.employees TO insa;SELECT * FROM dba_tab_privs WHERE grantee = 'INSA';INSA 에서 확인SELECT * FROM user_tab_privs;SELECT * FROM h..
2025.10.29 -
251028 TIL
문제-- [문제42] -- 1) department_id, job_id, manager_id 기준으로 총액 급여를 출력-- 2) department_id, job_id 기준으로 총액급여를 출력-- 3) department_id 기준으로 총액급여를 출력-- 4) 전체 총액 급여를 출력-- 1),2),3),4)를 한꺼번에 출력해주세요.SELECT department_id, job_id, manager_id, sum(salary)FROM hr.employeesGROUP BY department_id, job_id, manager_idUNION ALLSELECT department_id, job_id, NULL, sum(salary)FROM hr.employeesGROUP BY department_id, job..
2025.10.28 -
251027 TIL
문제--[문제37] 년도,분기별 급여의 총액을 구하세요./*년도 1분기 2분기 3분기 4분기-------- ---------- ---------- ---------- ----------2001 170002002 36808 21008 110002003 35000 8000 35002004 40700 14300 17000 140002005 86900 16800 60800 334002006 69400 20400 14200 ..
2025.10.27 -
PIVOT XML
PIVOT을 이용한 년도별 입사 인원수 구하기SELECT * FROM (SELECT to_char(hire_date, 'yyyy') year, count(*) cnt FROM hr.employees GROUP BY to_char(hire_date, 'yyyy'))PIVOT (max(cnt) FOR year in ('2001' "2001", '2002' "2002", '2003' "2003", '2004' "2004", '2005' "2005", '2006' "2006", '2007' "2007", '2008' "2008"));오늘 PIVOT에 대해 배우며 한 가지 의문점이 생겼다.피봇 값들을 꼭 이렇게 상수로 하나하나 적어줘야 하는걸까?이 쿼리에서는 입사 연도가 2001년부터 2..
2025.10.24