컴퓨터 공부/Advanced Database

[6월 2일 1교시] Data dictionary views + DML 1

려리군 2009. 6. 2. 09:11

Data Dictionary View

데이터베이스와 연관된 정보를 제공하는 읽기 전용 테이블 집합.

뷰의 집합으로 구성. 접두어에 따라 서로 구분되고 비슷한 정보를 포함하는 세가지 뷰로 구성된 집합이다.

접두어(prefix)에 따라 보여주는 정보 형태가 달라진다.

user : 사용자 스키마에서 있는 것.

all : 현재 사용자가 접근할 수 있는 뷰.

dba : 데이터베이스 관리자 뷰.


내용 : 데이터베이스에서 모든 스키마 객체 정의, 스키마 객체에 의해 현재 사용되고 얼마나 많은 양이 할당되었는지, 컬럼의 기본 값, 무결성 제약 조건, 오라클 사용자 이름, 각 사용자가 가진 특권과 권한(role), 다양한 스키마 객체를 갱신하고 접근하는 사람같은 감사 정보, 다른 일반 데이터베이스 정보


※ Dictionary에 관한 테이블명은 거의 대부분 복수형이다.


Query Data Dictionary

데이터베이스 사용자가 접근할 수 있는 모든 dictionary 뷰를 가진다.

dictionary의 synonym => dict


select table_name from dictionary where table_name like = '%CONS%';

(모든) 사용자에 대한 제약조건을 보는 쿼리


select table_name, constraint_name, constraint_type, status

from user_constraints

where table_name in ('S_EMP','S_DEPT');

사용자 제약조건을 보는 쿼리


SELECT t.table_name, c.column_name, t.constraint_name, t.constraint_type, t.status

FROM user_constraints t, user_cons_columns c

WHERE t.constraint_name = c.constraint_name AND t.table_name IN ('S_EMP','S_DEPT')

컬럼(열)에 대한 제약조건을 보는 쿼리


제약조건 형태(CONSTRAINT_TYPE)

C : Check, Not Null

P : Primary Key

U : Unique

R : Foreign Key


SELECT table_name, index_name, uniqueness

FROM user_indexes

인덱스를 보는 쿼리
인덱스는 제약조건에 대해서 자동생성된다.

user_ind_columns
컬럼에 대한 인덱스를 보는 쿼리

내가 소유한 모든 객체 : user_objects
내가 소유한 테이블 : user_tables, user_tab_columns



Data Manipulation Language(DML, 데이터 조작어)
쿼리와 현재 존재하는 스키마 객체에서 데이터를 조작한다.
SELECT, INSERT, UPDATE, MERGE, DELETE

Insert
테이블에서 한 줄(row)을 추가한다.
테이블에 INSERT 권한을 가져야 하거나 테이블은 당신이 가지고 있는 스키마여야 한다.

NULL값을 넣는 2가지 방법
① Implicit method(암시적 방법) : 넣고 싶은 컬럼(열)만 써 주고 NULL을 찍을 열은 표시하지 않는다.
예시) INSERT INTO dept(deptno, dname) VALUES (50, 'HQs');
② Explicit method(명시적 방법) : VALUES 구문에 NULL키워드를 표시한다. (모든 컬럼 정보 필요)
예시) INSERT INTO dept VALUES (50, 'HQs', NULL);

슈도컬럼(의사열)
USER : 현재 사용자 이름
SYSDATE : 현재 날짜와 시간
ROWID : 행에 대한 위치 정보

여러 행을 추가할 때
서브쿼리를 사용하여 다른 테이블로 부터 데이터를 복사한다.
예시)
INSERT INTO emp_history SELECT empno, ename, salary, sysdate FROM emp;

Insert 오류
무결성 조건을 위반하는 값을 가진 데이터를 추가하려고 시도할 때 오류가 난다.