시퀀스( SEQUENCE ) 

- 자동번호 발생기(유일한 숫자)

- 역할 : 번호를 만들어주는 것

 

CREATE SEQUENCE 테이블명_컬러명

START WITH 시작값

INCREMENT BY 증가값

MINVALUE 최소값 

MAXVALUE 최대값

NOCYCLE / CYCLE 순환

NOCACHE / 

 

ex) 시퀀스

시퀀스 생성

1. START WITH 1부터

2. INCREAMENT 증가

3. MINVALUE 1 1부터

4. MAXVALUE 100 100까지

5. NOCYCLE CYCLE시 MINVALUE값으로 복귀 > 중복값 발생

6. NOCACHE 뭉텡이로 가져와라

NEXTVAL  : PSEUDO 컬럼

- INSERT문에 포함시켜 사용

- 안 쓰는 것도 아니지만 번호를 주어야 할때 사용

- 공유가능한 객체 (여러 테이블에서 사용 가능)
- 응용프로그램에서 DB로 데이터 INSERT 할때
- PK컬럼의 VALUE 값 지정시 사용
- 번호의 GAP

   ㅇ DML ROLLBACK, 여러 테이블에서 동일한 SEQUENCE를 같이 사용시

인덱스(INDEX)

CREATE INDEX IDX_테이블명_컬럼명 
ON 테이블명 (컬럼명);

- 자주 검색되는 컬럼의 이름과 ROWID

- 테이블과는 별도의 저장장소를 사용

- 모든 컬럼에 INDEX를 만들면 SELECT문의 속도가 빨라진다?

  ㅇDML이 발생하면 INDEX에서 자동 수정

     ㅁ SELECT 속도 빨라지나 DML 엄청 느려짐 / 저장장소 낭비

     ㅁ 꼭 필요한 컬럼에만 사용 할 것

DML 속도가 떨어지는 것을 감수하면서 SELECT 속도가 향상되기를 기대

제한적으로 만듬

- 자주 검색되는 컬럼 ( WHERE 조건)

  ㅇ JOIN 조건으로 사용되는 컬럼

  ㅇPK, UK 제약이 걸려있는 컬럼 --> 항상 자동으로 INDEX를 생성

  ㅇ 분포가 고른 컬럼에 걸어준다.

      ㅁ 데이터가 비율이 월등하게 몰려있는 컬럼에 사용시 속도가 오히려 나빠짐

 

ex)책과 DB 비교

DB
본문 테이블
INDEX INDEX
키워드 자주 검색되는 컬럼의 VALUE
페이지 번호 ROWID

속도

DB SEARCH 방식

ROWID SEARCH 방식

- DB가 할 수 있는 가장 좋은 성능을 내는 SQL문 문장

 

FULL TABLE SCAN 방식

- 모두 읽어내기 때문에 성능이 가장 느림.

- ex) 책에서 한 페이지씩 확인

DB의 실행계획 확인 방법 (SQL 명령 진행 출력)

AUTO TRACE : SQL을 튜닝하는데 필요한 정보 출력

- 테이블(PLAN_TABLE)에 정보 저장

PLUSTRACE 권한 생성 및 SCOTT 권한 부여
검색 방식 INDEX ROWID 확인 

인덱스 D.D 조회

- 자동으로 생성된 인덱스 삭제 안 됨
  ㅇ 내부구현상 인덱스를 쓰고 있기 때
- 제약을 제거하면 인덱스도 자동으로 제거

- 인덱스의 저장구조 내부적구조 B TREE구조 이다

 

SYNONYM

- 동의어 ex) 태양, 해

- 오브젝트의 별칭(테이블의 별칭)

 

DCL(DATA CONTROL LANGUAGE) : GRANT, REVOKE 사용자 계정 권한부여

- 지정한 계정이 권한의 부여 및 회수 가능 

 

1. SYSTEM PRIVILEGE : DB전체에 영향, 모든 권한 : DBA

- 부여 GRANT 권한 TO 사용자명 ;

 ㅇ CONNECT 접속 권한 

 ㅇ RESOURCE 자원사용에 대한 권한 2개 이상의 권한은 , 콤마

- 회수 REVOKE 권한 FROM 사용자명 ;

 

2. OBJECT PRIVILEGE : OBJECT에만 국한 : 생성자

- GRANT 권한 ON OBJECT명 TO 사용자명

- REVOKE 권한 ON OBJECT명 FROM 사용자명

  ㅇ 모든 OBJECT X

 

DDL, DCL : AUTO COMMIT 발생

 

사용자 계정 생성 및 권한 부여

- USER1 생성 및 접속과 자원사용 권한 부여

- SELECT문 허가 필요 / 오브젝트 생성자에게 권한 획득

- SCOTT 'EMP' SELECT 권한을  USER1에게 부여

- 오브젝트 앞에 생성자의 USER_NAME을 입력해야 출력이 됨

- OBJECT 업데이트 권한 부여

- USER1 OBJECT 권한과 접속 권한 회수

 

계정 생성 다른 설정

- PASSWORD EXPIRE : 접속시 비밀번호 변경

  ㅇ PASSWORD 키워드 입력시도 변경 가능

  ㅇ 보안상 비밀번호 보이지 않음.

- ACCOUNT LOCK / UNLOCK 계정 잠금 및 잠금 해제

 

 

사용자 계정삭제

- 오브젝트(테이블) 하나라도 있으면 지워지지 않는다.

- CASCADE 사용 완전 삭제

 

DB에서 원격지로 접속하기

D:\app\LJY\product\11.2.0\dbhome_1\NETWORK\ADMIN

client : tnsnames,ora 수정

server : listener.ora 수정

 

방화벽에서 오라클의 접속만 허용

제어판 설정 > 방화벽 > 고급설정 > 인바운드규칙 > 새규칙 >

1.%SystemDrive%\app\JHTA\product\11.2.0\dbhome_1\BIN\oracle.exe 

2.%SystemDrive%\app\JHTA\product\11.2.0\dbhome_1\BIN\LSNRCTL.EXE 

3. 포트번호 오라클 1521 MYSQL 3306

접속방법 : SQLPLUS SCOTT/tiger@db1 @원격접속 표시자 

 

 

TIP.

1. sql파일을 prompt에 넣으면 주소가 나온다.

2. DROP 명령어는 실행시 고민 할 것

 

'자바 풀스택 교육 > ORACLE' 카테고리의 다른 글

오라클 수업정리 5일차  (0) 2019.10.08
오라클 수업정리 4일차  (0) 2019.10.07
오라클 수업정리 3일차  (0) 2019.10.05
오라클 수업정리 2일차  (0) 2019.10.05
오라클 수업정리 1일차  (0) 2019.10.04

+ Recent posts