분류 전체보기(151)
-
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 -
251024 TIL
서브쿼리중첩 서브 쿼리(Cont.)단일행 비교 연산자 사용시 주의점서브쿼리에서 여러 개 값이 나올 경우 오류 발생SELECT *FROM hr.employeesWHERE salary = (SELECT min(salary) FROM hr.employees GROUP BY department_id); 다중행 서브 쿼리서브 쿼리의 결과가 여러 개의 값이 나오는 서브 쿼리다중 행 비교 연산자(IN, ALL, ANY)IN(= OR)SELECT *FROM hr.employeesWHERE salary IN (SELECT min(salary) FROM hr.employees GROUP BY departm..
2025.10.24 -
251023 TIL
문제-- [문제26] 80 부서에 근무하는 사원들의 last_name, job_id, department_name, city 출력해주세요.SELECT e.last_name, e.job_id, d.department_name, l.cityFROM hr.employees e, hr.departments d, hr.locations lWHERE e.department_id = d.department_idAND d.location_id = l.location_idAND e.department_id = 80;JOIN(조인)2. equi join (cont.)SELECT count(*)FROM hr.employeesWHERE department_id = 20; -- 2건SELECT e.last_name, e.job..
2025.10.23