본문 바로가기
728x90

Dev/Oracle39

[Oracle] 상황별 테이블스페이스 명령어 기존 TBS 확인 SELECT * FROM DBA_DATA_FILES ; UNDO TBS TBS 확인 SELECT TABLESPACE_NAME, FILE_NAME, BYTES FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = '[UNDO_TBS_NAME]'; RESIZE ALTER DATABASE DATAFILE '[/UNDO_FILE_PATH/UNDO_FILE_NAME]' RESIZE [SIZE]M ; DATAFILE 추가 ALTER TABLESPACE [UNDO_TBS_NAME] ADD DATAFILE '[/UNDO_FILE_PATH/UNDO_FILE_NAME]' SIZE [SIZE]M ; -- 기존의 UNDOTBS1에 DATAFILE 추가 ALTER TABLESPACE .. 2022. 7. 5.
[Oracle] MERGE MERGE UPDATE 문법 MERGE INTO TABLE_A A USING TABLE_B B /* 서브쿼리 사용 가능 */ ON (A.KEY = B.KEY) WHEN MATCHED THEN UPDATE SET A.COLUMN1 = B.COLUMN1 ; → KEY 값이 일치하면 A의 COLUMN1 를 B.COLUMN1 값으로 UPDATE 2. MERGE INSERT 문법 MERGE INTO TABLE_A A USING TABLE_B B ON (A.KEY = B.KEY) WHEN NOT MATCHED THEN INSERT (A.COLUMN1, A.COLUMN2, A.COLUMN3) VALUES (B.COLUMN1, B.COLUMN2, B.COLUMN3) ; → KEY 값이 일치하지 않으면 해당하는 KEY의.. 2022. 6. 24.
[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.
728x90