IT/SQLP

[데이터 생성] 오라클 DB 데이터 생성 쿼리모음(테이블,인덱스,데이터 등)

경기도 초보파파 2025. 3. 20. 19:49
반응형

오라클 및 디벨로퍼는 설치 했는데, 

데이터 만들기가 귀찮아서 직접 테스트 해보지 않은 분들을 위하여 아래의 쿼리로 데이터를 만들어서 직접 테스트해보세요~

 

우선적으로 sys권한으로 접속하여 아래의 권한들 부여(SYS권한접속은 아래글 참조)

2025.03.13 - [기타] - [오라클 설치] 데이터베이스 공부 전 오라클DB 무료버전인 Express Edition(XE) 설치

 

[오라클 설치] 데이터베이스 공부 전 오라클DB 무료버전인 Express Edition(XE) 설치

SQLD 혹은 SQPL 공부를 하려면 내 컴퓨터에는 무조건 오라클이 설치되어 있어야 실전 연습도 할 수 있겠죠그래서 오라클 무료 버전을 설치 진행하도록 하겠습니다(설치 컴퓨터 : 윈도우) 그 이전

chobo-fafa.tistory.com

 

 

ㅇ 테이블 권한 부여

 

( c##tester이 받는 계정 )

GRANT CREATE ANY TABLE TO c##tester;
GRANT ALTER ANY TABLE TO c##tester;
GRANT DROP ANY TABLE TO c##tester;
GRANT SELECT ANY TABLE TO c##tester;
GRANT UPDATE ANY TABLE TO c##tester;
GRANT DELETE ANY TABLE TO c##tester;


ㅇ 세션권한 부여

 

grant CREATE SESSION TO c##tester;
grant ALTER SESSION TO c##tester; 
grant RESTRICTED SESSION TO c##tester;



ㅇ 테이블 스페이스 권한 부여

grant CREATE TABLESPACE TO c##tester;
grant ALTER TABLESPACE TO c##tester;
grant DROP TABLESPACE TO c##tester;
grant UNLIMITED TABLESPACE TO c##tester;



ㅇ 인덱스 권한 부여

grant CREATE any INDEX TO c##tester; 
grant ALTER any INDEX TO c##tester;

 


이제부터 본격적으로 따라오시면 됩니다!

 

ㅇ 기본테이블 생성하기(사원테이블)


create table eply_T
( EPLY_t_sqno  number (30) /* NOT NULL */
, eply_no varchar2(30)
, eply_nm varchar2(30)
, join_date varchar2(30)
, dptmt_code varchar2(30)
/* CONSTRAINT eply_t_pk PRIMARY KEY (ctmr_t_sqno) */
/*위의 주석을 풀어서 PK설정 가능 */
);


ㅇ 기본테이블 생성하기(고객테이블)

create table cstmr_t
( cstmr_t_sqno  number (30) NOT NULL 
, cstmr_no varchar2(30)
, fnl_ordr_mny varchar2(30)
, mng_eply_no varchar2(30)
, CONSTRAINT cstmr_t_pk PRIMARY KEY (cstmr_t_sqno)
);


ㅇ 생성된 테이블 확인하기


desc eply_T;
desc cstmr_T;

 


ㅇ 테이블 생성 후 PK설정하기

 


ALTER TABLE [스키마명].[테이블명] ADD CONSTRAINT [PK명] PRIMARY KEY ([칼럼],[칼럼], [칼럼] ...);
 /* "[]" 부분은 생략가능 */
***;
ALTER TABLE eply_T ADD CONSTRAINT eply_t_pk PRIMARY KEY (EPLY_t_sqno);

 


ㅇ 생성된 PK 확인하기

 


(cstmr_T 테이블을 직접 작성해보세요~)
****;
SELECT TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME , POSITION
/*테이블명 , PK명칭, 구성컬럼, 구성순서 */
 FROM USER_CONS_COLUMNS
 WHERE CONSTRAINT_NAME LIKE '%PK%' /* 앞에서 PK설정했을떄의 이름 */
 AND TABLE_NAME = 'EPLY_T'; /* 테이블 명*/
 ==> 위 쿼리로 ctmr_t_sqno값이 PK확인가능;
 


ㅇ INDEX 생성 및 삭제(수정은 불가하여 삭제 후 재생성)

 


(cstmr_T 테이블을 직접 작성해보세요~)
CREATE [UNIQUE] INDEX [스키마명.]인덱스명      
         ON [스키마명.]테이블명 (컬럼1 [, 컬럼2, 컬럼3, ...]);
         /* "[]" 부분은 생략가능 */
CREATE INDEX ctmr_t_idx1 ON eply_T(eply_no);
CREATE INDEX ctmr_t_idx2 ON eply_T(join_date, dptmt_code);

DROP INDEX ctmr_t_idx1;

 


ㅇ 생성된 INDEX 확인하기

 


(cstmr_T 테이블을 직접 작성해보세요~)
***;
SELECT * 
FROM ALL_IND_COLUMNS
WHERE TABLE_NAME = 'EPLY_T';


ㅇ 데이터 생성하기(eply_T)

 


insert into eply_T  values ('1', '0001','홍길동','19970208','Z123');
insert into eply_T  values ('2', '0003','홍길동','19960712','Z123');
insert into eply_T  values ('3', '0005','홍길동','19970223','Z123');
insert into eply_T  values ('4', '0006','홍길동','19960101','Z123');
==> 테스트를 위해 (현재갯수*현재갯수)로 늘리는 방법
;
insert into  eply_T 
select rownum +4 /* "+" 값은 cstmr_T 테이블의 PK값중 최소값 */ , a.EPLY_NO, a.EPLY_NM, a.JOIN_DATE, a.DPTMT_CODE
from eply_T a
   , eply_T b;



ㅇ 데이터 생성하기(cstmr_T)

 


insert into cstmr_T  values ('1', '0001','100000','0001');
insert into cstmr_T  values ('2', '0002','100000','0001');
insert into cstmr_T  values ('3', '0003','100000','0001');
insert into cstmr_T  values ('4', '0004','100000','0001');
==> 테스트를 위해 (현재갯수*현재갯수)로 늘리는 방법
;
insert into  cstmr_T (CSTMR_T_SQNO, CSTMR_NO, FNL_ORDR_MNY, MNG_EPLY_NO)  
select rownum +4 /* "+" 값은 cstmr_T 테이블의 PK값중 최소값 */ , a.CSTMR_NO, a.FNL_ORDR_MNY, a.MNG_EPLY_NO
from cstmr_T a
   , cstmr_T b;
    
  
최종적으로

사원테이블(eply_t), 고객테이블(cstmr_t) 2개를 생성했습니다.

추후 테스트가 필요할 떄(autotrace테스트,조인 테스트 등) 
위의 쿼리문을 기반하여 인덱스도 변경하면서 테스트해보면 됩니다.

반응형