오라클 및 디벨로퍼는 설치 했는데,
데이터 만들기가 귀찮아서 직접 테스트 해보지 않은 분들을 위하여 아래의 쿼리로 데이터를 만들어서 직접 테스트해보세요~
우선적으로 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테스트,조인 테스트 등)
위의 쿼리문을 기반하여 인덱스도 변경하면서 테스트해보면 됩니다.
'IT > SQLP' 카테고리의 다른 글
[오라클 DB조인] NL조인(Nested Loop)의 원리 및 사용방법(힌트, 플랜) (3) | 2025.03.21 |
---|---|
[오라클 DB조인] 서브쿼리 조인의 원리 및 사용방법(힌트 및 플랜 확인) (1) | 2025.03.21 |
[오라클 DB조인] 해시 조인(Hash Join)의 원리와 사용방법(힌트 및 플랜확인) (1) | 2025.03.21 |
[오라클 DB조인] 소트 머지 조인(sort Merge Join)의 원리 및 사용방법(힌트 및 플랜 확인) (1) | 2025.03.21 |