'dictionary'에 해당되는 글 1건

  1. 2013.03.11 Oracle 수업내용
posted by 구름너머 2013. 3. 11. 21:57

-- 20130311

-- 오라클 데이터 딕션어리 뷰

select *
from dict ;

dba_     : (dba권한) DB 모든 정보 조회 가능
-> grant select_catalog_role to DB계정명 (딕션어리정보만 볼수 있는 권한)
all_       : DB 내가 만든 것 + DB 내가 권한 받은 것
user_    : DB 내가 만든 것
x$        : DB 성능 및 통계정보
v$        : DB 성능 및 통계정보

EX)
select *
from dba_tables ;     all_table ;        user_tables ;

--PK
1. not  null + 중복제거
2. pk컬럼은 자동으로 인덱스 생성
3. 1개 테이블에 pk는 존재 o (pk 1개만 생성), 존재 x
4. 1개 테이블에 1개 또는 여러개의 컬럼으로 pk는 1개 만들 수 있다.

--FK
1. 데이터는 부모없는 자식은 없다.
2. 데이터는 자식없는 부모는 있다.
3. 데이터의 변경 및 삭제는 자식부터 한다.

 

 

 

 


-- 테이블 생성 스크립트
CREATE TABLE 테이블명  (
   FILE_ID              VARCHAR2(25)                     NOT NULL,
   FILE_ID_FORM         VARCHAR2(6),
   RECP_DT              VARCHAR2(8),
   WRK_TYPE_SEQ         VARCHAR2(6),
   RECV_DT              VARCHAR2(8),
   CONSTRAINT PK_테이블명 PRIMARY KEY (FILE_ID)
   using index
   tablespace 테이블스페이스명
   storage( initial 1M next 1M maxextents unlimited pctincrease 0
freelists 10 freelist groups 2 )
)
tablespace 테이블스페이스명
storage( initial 1M next 1M maxextents unlimited pctincrease 0
freelists 10 freelist groups 2 )
/


 

-- NOT NULL을 NULL로 바꾸기
ALTER TABLE 테이블명 MODIFY (컬럼명 데이터타입 NULL ) ;

-- NULL을 NOT NULL로 바꾸기
ALTER TABLE 테이블명 MODIFY (컬럼명 데이터타입 NOT NULL ) ;

-- 컬럼 변경
ALTER TABLE 테이블명 MODIFY (컬럼명 VARCHAR2( 20 ) ) ;


-- 컬럼 추가
alter table 테이블명
add        (컬럼명  데이터타입);

-- 컬럼 삭제
alter table 테이블명
drop        column 컬럼명  ;

-- 테이블명 변경
alter table 변경전 테이블명 rename to 변경 후 테이블명 ;

-- 컬럼명 변경
alter table 테이블명 rename column 기존컬럼명 to 새로사용할컬럼명 ;

-- 테이블 삭제
drop table 테이블명 ;


-- 스퀸스 삭제
drop sequence 유저명.시퀀스명 ;

-- 스퀸스 생성
create sequence 유저명.시퀀스명
       increment by 1   -- 증가값
       start with 701     -- 시작값
       MINVALUE 701   -- 최소값
       MAXVALUE 799  -- 최대값
       cache 20           -- 메모리
       cycle ;
             
-- 스퀸스 MAX값 변경      
ALTER SEQUENCE 유저명.시퀀스명 MAXVALUE 99999;    

-- FK 생성시 enable validate 로 변경할때
alter table 테이블명 enable validate constraint  FK명 ;

--FK 생성
ALTER TABLE 자식테이블명 ADD (
  CONSTRAINT  FK명  FOREIGN KEY (컬럼명)
    REFERENCES 부모테이블명 (컬럼명));

--FK 삭제
alter table 자식테이블명 DROP CONSTRAINTS  FK명 ;


--인덱스 추가
CREATE INDEX 인덱스명 ON 테이블명
 (컬럼명)
tablespace 테이블스페이스명
storage(initial 1M next 1M pctincrease 0 maxextents unlimited freelists 10 freelist groups 2);

-- 인덱스 삭제
drop index 인덱스명 ;

-- 인덱스명 변경
alter index 변경전인덱스명 rename TO 변경후인덱스명 ;

-- pk 리빌드
alter index  PK명  rebuild ;

-- PK 변경
select * from dba_segments where segment_name like '%PK명%';

alter table 테이블명 drop primary key;
drop index PK명 ;

alter table 테이블명  add
   CONSTRAINT PK명  PRIMARY KEY (컬럼명)
   using index
   tablespace 테이블스페이스명
   storage( initial 1M next 1M maxextents unlimited pctincrease 0 freelists 10 freelist groups 2 );


-- PK 생성
ALTER TABLE 테이블명  add
   CONSTRAINT  PK명  PRIMARY KEY (컬럼명)
      using index
   tablespace 테이블스페이스명
   storage( initial 1M next 1M maxextents unlimited pctincrease 0 freelists 10 freelist groups 2 )
;
-- 주석 보기
-- 테이블 주석
dba_tab_comments
-- 컬럼 주석
dba_col_comments

'ORACLE' 카테고리의 다른 글

오라클 falshback  (0) 2013.03.16
오라클 awr 리포트 뽑기  (0) 2013.03.13
오라클 분석함수 rank(), max(), sum()  (0) 2012.09.17
뷰생성 후 다른계정에서 조회가 안될경우  (0) 2012.09.03
Oracle lock 확인 및 kill 방법  (0) 2012.08.08