요약 |
DATA DICTIONARY 정의 만들어진 테이블의 정보를 한곳에 모아둔 것 |
DICTIONARY에서 정보찾기 접두사+관사 keyword+복수형 |
주석 생성 COMMENT ON DATATYPE DATATYPE명 |
IS '주석 내용' |
------------------------------------------------------------------------------------------------------------------------------------- |
------------------------------------------------------------------------------------------------------------------------------------- |
data dictionary란? |
|
유지,관리를 위한 meta-data |
방대한 테이블 관리 정보들을 모아 놓ㅇㄴ 곳으로 지금까지 생성한 테이블 등 각종 테이블 정보를 볼 수가 있다. |
oracle을 설치하게 되면 기본으로 깔려 있는 존재다. |
주어진 권한에 따라 접근할 수 있는 테이블 갯수가 다르다 . |
|
ex) |
|
select* |
from dict |
하면 출력이 되는데 최소한의 권한일 지라도 많은양의 데이타가 출력된다. |
|
|
835 개의 행이 선택되었습니다. <-835개의 테이블이 있음.(scott이라는 개인 사용자에서 실행하면 |
접근 가능한 테이블 갯수) |
|
|
|
2553 개의 행이 선택되었습니다. <-2553개의 테이블이 있음.(관리자 권한 하에서 볼 수 있는 테이블) |
|
*다른 사용자 계정 연결 |
connect id/pw 입력 |
|
*set sqlprompt "_user>" |
|
|
*desc dba_users |
|
"SYS"."DBA_USERS" 객체는 존재하지 않습니다. <-scott 권한으로는 사용자들에 대한 정보는 볼수 없다. |
|
SYSTEM>desc dba_users |
이름 널? 유형 |
----------------------------------------- -------- ------------ <-system에선 볼 수 있다. |
|
USERNAME NOT NULL VARCHAR2(30) |
USER_ID NOT NULL NUMBER |
PASSWORD VARCHAR2(30) |
ACCOUNT_STATUS NOT NULL VARCHAR2(32) |
LOCK_DATE DATE |
EXPIRY_DATE DATE |
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30) |
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30) |
CREATED NOT NULL DATE |
PROFILE NOT NULL VARCHAR2(30) |
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30) |
EXTERNAL_NAME VARCHAR2(4000) |
PASSWORD_VERSIONS VARCHAR2(8) |
EDITIONS_ENABLED VARCHAR2(1) |
AUTHENTICATION_TYPE VARCHAR2(8) |
|
|
|
SYSTEM>select username,password |
2 from dba_users; |
|
USERNAME PASSWORD |
------------------------------ ---------- <-password가 안보인다.보안상의 이유 |
MGMT_VIEW |
SYS |
SYSTEM |
DBSNMP |
SYSMAN |
SCOTT |
OUTLN |
FLOWS_FILES |
MDSYS |
ORDSYS |
EXFSYS |
|
|
|
SYSTEM>select username,account_status |
2 from dba_users; |
--------------------------------------------------------------------------------------------------------------- |
data dictionary에서 원하는 자료를 찾는 방법? |
|
data dictionary는 하나의 사전이다. |
명령어는 |
접두사+관사 keyword+복수형으로 이루어져 있다. |
|
=>user_: 내가 생성한 것과 관련된 정보. <-우리가 볼것 |
all_: 접근 권한이 있는 모든것과 관련된 정보. <-고급개발자가 볼것 |
dba_: dba만 접근해야하는 것과 관련된 정보. <-관리자 권한 |
v$ : 동적(현재 DB 메모리 사용량,동시 접속자 수 등등)이면서 성능과 관련된 정보. <-관리자 권한 |
|
ex)내가 만든 테이블 보기 |
|
SCOTT>DESC USER_TABLES |
^ ^ |
내가만든,테이블들 |
|
SCOTT>select table_name |
2 from user_tables; |
--------------------------------------------------------------------------------------------------------- |
*주석 생성 |
|
SCOTT>COMMENT ON TABLE EMP |
2 IS 'EMPLOYEE TABLE'; |
|
*테이블 이름에 주석을 다는 이유? |
다른 사람이 나의 소스코드나 명령어를 보았을때 흐름과 역할을 파악하기 위함. 협업시 중요하다. |
|
ESC USER_TAB_COMMENTS <-테이블과 관련된 주석을 볼 수 잇다. 명령어가 너무 길면 가운데 글자를 3글자로 줄인다. |
|
SELECT*FROM USER_TAB_COMMENTS; |