본문 바로가기
728x90

oracle38

[Oracle] LEFT OUTER JOIN 목차 테이블 정보 ON A AND B / ON A WHERE B 의 차이점 LEFT OUTER JOIN시 오른쪽 테이블을 조건에 걸 때 INNER JOIN으로 풀리는 이유 ANSI 표준에 (+) 를 사용하면 테이블 정보 TABLE_A A NUMBER PK1 C VARCHAR2(20) TABLE_B A NUMBER PK1 C VARCHAR2(20) TABLE_C A NUMBER D VARCHAR2(20) ON A AND B / ON A WHERE B 의 차이점 1. 1:1 관계의 테이블 A와 테이블 B SELECT * FROM TABLE_A A LEFT JOIN TABLE_B B ON A.A = B.A AND B.A < 6 ; SELECT * FROM TABLE_A A LEFT JOIN TABLE_B B .. 2022. 6. 22.
[Oracle] 제약조건 제약 조건 (CONSTRAINTS) 컬럼에 대한 속성 정의하는 것. 데이터의 무결성을 보장한다. 테이블에 부적절한 데이터가 들어오는 것을 사전에 차단하도록 규칙을 정하는 것이다. 제약 조건을 설정하는 방법 2가지 테이블 생성 시 제약 조건도 같이 설정 테이블 생성 후 제약 조건 추가 (보통 2번으로 많이 한다.) 제약 조건 확인 SELECT A.TABLE_NAME , A.CONSTRAINT_NAME , A.CONSTRAINT_TYPE , B.COLUMN_NAME , B.POSITION FROM ALL_CONSTRAINTS A , ALL_CONS_COLUMNS B WHERE A.TABLE_NAME = 'EX1' AND A.OWNER = B.OWNER AND A.CONSTRAINT_NAME = B.CONST.. 2022. 6. 21.
[Oracle] 인덱스 탐색 방식 INDEX UNIQUE SCAN INDEX RANGE SCAN INDEX SKIP SCAN INDEX FAST FULL SCAN INDEX FULL SCAN 테이블 생성 CREATE TABLE EMPLOYEES ( EMPLOYEE_ID NUMBER(6), FIRST_NAME VARCHAR2(20), LAST_NAME VARCHAR2(25) NOT NULL, EMAIL VARCHAR2(25) NOT NULL, PHONE_NUMBER VARCHAR2(20), HIRE_DATE DATE NOT NULL, JOB_ID VARCHAR2(10) NOT NULL, SALARY NUMBER(8,2), COMMISSION_PCT NUMBER(6), MANAGER_ID NUMBER(6), DEPARTMENT_ID NUMB.. 2022. 6. 21.
[Oracle] 결합 인덱스 결합 인덱스 두 개 이상의 컬럼을 합쳐서 인덱스를 만드는 것. SQL 문장에서 WHERE절의 조건 컬럼이 2개 이상 AND 로 연결되어 함께 사용되는 경우에 결합 인덱스를 사용 2개 이상의 조건이 OR로 조회되는 경우는 결합 인덱스를 사용하면 안된다 첫번째 조건에서 최대한 많은 데이터를 걸러, 두번째 검사를 쉽게 만들어 주어야 한다. 컬럼의 순서대로 1차 필터링, 2차 필터링 하는 개념 결합 인덱스의 경우 첫번째 컬림이 사용되지 않는다면 그 결합 인덱스는 사용되지 않는다. ex ) 만약 id라는 컬럼은 조건절에 잘 사용되지 않는다면 결합 인덱스의 첫 컬럼으로 사용하지 않던가, 별도의 인덱스를 생성하여 사용하는 것이 바람직 ※ 결합 인덱스 생성 시에 주의할 점은 '얼마나 자주 사용되는가' WHERE 절에서.. 2022. 6. 21.
[Oracle] 인덱스 구조 인덱스 기본 구조 루트 블록 브랜치 블록 하위 노드 블록을 찾아가기 위한 Data Block Address를 갖는다. 리프 블록 : 가장 마지막 레벨의 블록 인덱스 키 컬럼, 주소 정보(ROWID)를 갖는다. ※ ROWID : 해당 테이블 레코드를 찾아가기 위한 주소 정보. 데이터파일 번호, 블록 번호, 로우 번호 같은 테이블 레코드의 물리적 위치 정보를 포함. 확장 ROWID 포맷 데이터 오브젝트 번호(6자리) : 데이터베이스 세그먼트를 식별하기 위해 사용되는 번호 데이터파일 번호(3자리) : 로우가 속한 데이터 파일 번호 블록 번호(6자리) : 해당 로우가 저장된 데이터 블록 번호 로우번호 (3자리) : 블록 내에서 각 로우에 붙여진 일련번호로서, 0부터 시작 ## ROWID 확인 SELECT ROW.. 2022. 6. 21.
[Oracle] 복구한 DB 원복 AS-IS : TESTDB , TO-BE : ORCL (초기상태) 다시 ORCL DB를 보게 만들어줘야 한다 .profile 수정 (TESTDB - > ORCL) (TESTDB)/> cd (TESTDB)/oracle/app/oracle/product/192> vi .profile # 수정 전 .profile ... export ORACLE_SID=TESTDB export ORACLE_UNQNAME=TESTDB ... # 수정 후 .profile ... export ORACLE_SID=ORCL export ORACLE_UNQNAME=ORCL ... # profile 적용 (TESTDB)/oracle/app/oracle/product/192> . ./.profile (ORCL)/oracle/app/oracl.. 2022. 6. 20.
728x90