3장 데이터 딕셔너리를 통해서 객체 관리
SQL 심화2017. 9. 7. 03:17
데이터 딕셔너리를 통해서 객체 관리
DATA 를 저장하는 테이블 리스트와 그 건수등을 조사할 때 필요하다.
- 3장 목차
- 데이터 딕셔너리 소개
- 데이터 딕셔너리의 종류
- 데이터 딕셔너리 활용 방법
3.1 데이터 딕셔너리란 ?
" db 에 생성되어있는 db object에 대한 정보가 들어있는 사전"
문제418. scott이 소유하고 있는 테이블 리스트를 확인하시오
scott> select table_name
from user_tables; ----> data ditionary
문제419. scott이 소유하고 있는 테이블 리스트와 그 건수를 조회하시오
exec dbms_stats.gather_schema_stats('SCOTT');
select table_name, num_rows
from user_tables;
문제420. sh 계정이 가지고 있는 테이블명, 그 로우수를 출력하시오
select table_name, num_rows
from user_tables
order by num_rows desc nulls last;
SH@orcl> select table_name, num_rows
2 from user_tables
3 order by num_rows desc nulls last;
TABLE_NAME NUM_ROWS
------------------------------ ----------
SALES 918843
COSTS 82112
CUSTOMERS 55500
FWEEK_PSCAT_SALES_MV 11266
SUPPLEMENTARY_DEMOGRAPHICS 4500
TIMES 1826
PROMOTIONS 503
PRODUCTS 72
CAL_MONTH_SALES_MV 48
COUNTRIES 23
CHANNELS 5
SALES_TRANSACTIONS_EXT 0
DIMENSION_EXCEPTIONS 0
DR$SUP_TEXT_IDX$K
DR$SUP_TEXT_IDX$N
DR$SUP_TEXT_IDX$R
DR$SUP_TEXT_IDX$I
문제421. 그냥 scott에서 sh 계정이 가지고 있는 테이블명과 그 건수를 보고 싶다면 어떻게 해야하는가
3.2 데이터 딕셔너리의 종류
- user_xxx : 해당 유저가 소유하고 있는 객체들
- all_xxx : 해당 유저가 소유하고 있는 객체들 + 다른 유저들이 권한을 준것
- dba_xxx : DB에서 만들어진 모든 객체들을 볼 수 있다.
xxx ---> tables, view, indexes, synonyms,.......
SCOTT>
select table_name, num_rows
from dba_tables
where owner = 'SH';
문제422. sh 계정이 가지고 있는 테이블 리스트, 그 건수, 순위를 출력하는데 순위가 건수가 높은것 부터 순위를 부여하시오!
select table_name, num_rows
from dba_tables
where owner = 'SH'
;
문제423. 위의 결과에서 순위가 1등, 2등, 3등 만 출력하세요
SELECT *
FROM
(SELECT table_name,
num_rows,
rank() over (ORDER BY num_rows desc nulls last) 순위
FROM dba_tables
WHERE owner = 'SH'
)
WHERE 순위 in (1,2,3);
문제424. hr 계정이 가지고 있는 테이블들에 대한 상세한 설명이 되어있는 정보를 조회하시오
select table_name, comments
from dba_tab_comments
where owner = 'HR';
문제425. scott 계정이 가지고 있는 테이블들에 대한 상세한 설명이 되어있는 정보를 조회하시오
select table_name, comments
from dba_tab_comments
where owner = 'SCOTT';
- 테이블에 대한 주석을 다는 방법
- COMMENT ON TABLE EMP
IS '사원에 대한 정보가 들어있는 테이블입니다.';
IS '사원에 대한 정보가 들어있는 테이블입니다.';
문제426. DEPT 테이블에 대한 COMMENT 를 생성하시오
COMMENT ON TABLE EMP
IS '사원에 대한 정보가 들어있는 테이블입니다.';
COMMENT ON TABLE DEPT
IS '부서에 대한 정보가 들어있는 테이블입니다.';
문제427. EMP 테이블이 언제 생성이 되었는지 확인하시오 .
SCOTT> DESC USER_TABLES;
SCOTT> DESC USER_OBJECTS;
ALTER SESSION SET nls_date_format='RR/MM/DD:HH24:MI:SS';
문제428. emp 테이블에 email 이라는 컬럼을 추가하세요
alter table EMP add email varchar2(50);
문제429. emp 테이블에 최근에 컬럼 추가/삭제와 같은 DDL 작업이 언제 발생햇는지 알아내시오
SELECT LAST_DDL_TIME, OBJECT_NAME
FROM USER_OBJECTS;
--WHERE OBJECT_NAME= 'EMP';
문제430. EMP 테이블에 추가한 EMAIL 컬럼을 삭제하시오
alter table emp drop column email;
문제431. sal 이라는 컬럼이 어느 테이블에 포함되어 있느닞 확인하시오
select table_name, column_name
from dba_tab_columns
where column_name='SAL';
- 휴지통을 비우는 명령어
SCOTT@orcl> purge recyclebin;
휴지통이 지워졌습니다.
- data dictionary 를 조회하는 view
select * from dictionary;
select * from dictionary
where table_name like '%VIEW%';
문제432. DB 에 INDEX가 총 몇개가 있는지 조회하시오
SELECT COUNT(*) FROM ALL_INDEXES;
'SQL 심화' 카테고리의 다른 글
6장. 서브쿼리에서의 데이터 검색 (0) | 2017.09.07 |
---|---|
5장. 다른 시간대에서의 데이터 관리 (0) | 2017.09.07 |
4장 대형 데이터 집합 조작 (0) | 2017.09.07 |
2장 스키마 객체 관리 (0) | 2017.09.07 |
1장 유저 엑세스 제어 (0) | 2017.09.07 |