시퀀스( 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)에 정보 저장
인덱스 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 |