⇥ DevOps Tech 🙋🏻♀️/✏️ ORACLE
-
1. preinstall rpm download curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm 2. preinstall package install cd /app/media yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm # 추가되었는지 확인 # cat /etc/security/limits.d/oracle-database-preinstall-19c.conf oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft stack 102..
[ORACLE] 오라클 19c 설치 방법1. preinstall rpm download curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm 2. preinstall package install cd /app/media yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm # 추가되었는지 확인 # cat /etc/security/limits.d/oracle-database-preinstall-19c.conf oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft stack 102..
2021.11.19 -
예시 테이블 SQL> select * from t; C1 D1 D2 ---------- ---------- ---------- 1 1 1 2 2 2 3 0 3 4 1 4 5 2 0 6 0 1 7 1 2 8 2 3 9 0 4 10 1 0 11 2 1 C1 D1 D2 ---------- ---------- ---------- 12 0 2 13 1 3 14 2 4 15 0 0 16 1 1 17 2 2 18 0 3 19 1 4 20 2 0 20 rows selected. 위와 같은 테이블에서 분석함수 + FIRST / LAST 함수를 사용해보자. FIRST 함수 + 분석함수 SQL> SELECT MIN(C1) KEEP (DENSE_RANK FIRST ORDER BY D1) OVER (PARTITION BY D2..
[ORACLE] 분석함수에서 FIRST/LAST 함수 사용하기예시 테이블 SQL> select * from t; C1 D1 D2 ---------- ---------- ---------- 1 1 1 2 2 2 3 0 3 4 1 4 5 2 0 6 0 1 7 1 2 8 2 3 9 0 4 10 1 0 11 2 1 C1 D1 D2 ---------- ---------- ---------- 12 0 2 13 1 3 14 2 4 15 0 0 16 1 1 17 2 2 18 0 3 19 1 4 20 2 0 20 rows selected. 위와 같은 테이블에서 분석함수 + FIRST / LAST 함수를 사용해보자. FIRST 함수 + 분석함수 SQL> SELECT MIN(C1) KEEP (DENSE_RANK FIRST ORDER BY D1) OVER (PARTITION BY D2..
2021.05.28 -
집합함수 특정 컬럼 혹은 전체 데이터에 대해 그룹화하여 데이터를 추출하는데 사용되는 함수 AVG 특정 컬럼에 대해 평균 값을 추출하는 함수 COUNT 대상 집합에 대해 총 건수를 추출하는 함수 SUM 대상 집합에 대해 합계를 추출하는 함수 MAX 대상 집합 중 최대 값을 추출하는 함수 MIN 대상 집합 중 최소 값을 추출하는 함수 RANK 특정 걸럼의 값을 이용하여 전체에 대해 순위를 지정하는 함수 DENSE_RANK 특정 컬럼을 기준으로 순위를 추출할 때 사용되는 함수 RANK 와 다르게 같은 순위를 가지는 데이터가 존재할 경우 그 다음 순위를 바로 다음 값으로 추출함 LISTAGG 여러개의 행에 존재하는 컬럼 값을 하나의 행으로 병합할 때 사용하는 함수
[ORACLE] 집합 함수 (AVG, COUNT, SUM, MAX, MIN, RANK, DENSE_RANK, LISTAGG)집합함수 특정 컬럼 혹은 전체 데이터에 대해 그룹화하여 데이터를 추출하는데 사용되는 함수 AVG 특정 컬럼에 대해 평균 값을 추출하는 함수 COUNT 대상 집합에 대해 총 건수를 추출하는 함수 SUM 대상 집합에 대해 합계를 추출하는 함수 MAX 대상 집합 중 최대 값을 추출하는 함수 MIN 대상 집합 중 최소 값을 추출하는 함수 RANK 특정 걸럼의 값을 이용하여 전체에 대해 순위를 지정하는 함수 DENSE_RANK 특정 컬럼을 기준으로 순위를 추출할 때 사용되는 함수 RANK 와 다르게 같은 순위를 가지는 데이터가 존재할 경우 그 다음 순위를 바로 다음 값으로 추출함 LISTAGG 여러개의 행에 존재하는 컬럼 값을 하나의 행으로 병합할 때 사용하는 함수
2021.05.28 -
ORACLE INSTANCE 를 설치하게 되면 datafile 을 저장하는 공간, log 파일을 저장하는 공간이 생기게 된다. datafile 과 log 파일을 정리한 후, instance 설치에 대한 정보까지 제거해준 후 재설치를 수행하면 된다. 본 포스팅은 CENTOS7 기준으로 작성되었다. 1. 기존 파일 정리 $ORACLE_BASE/oradata -- 디렉토리 삭제 설치된 DB의 DATA FILE 이 저장되는 공간 $ORACLE_BASE/diag/rdbms/$ORACLE_SID -- 디렉토리 삭제 설치된 DB의 LOG 파일이 저장되는 공간 /etc/oratab -- 노란색으로 표시한 라인 삭제 ORACLE DB 에 대한 정보를 담고 있는 공간 2. Xming 연동이 되어 있으면 편리함 ( 아래의 ..
[ORACLE] 설치 된 상태에서 재설치 하는 방법ORACLE INSTANCE 를 설치하게 되면 datafile 을 저장하는 공간, log 파일을 저장하는 공간이 생기게 된다. datafile 과 log 파일을 정리한 후, instance 설치에 대한 정보까지 제거해준 후 재설치를 수행하면 된다. 본 포스팅은 CENTOS7 기준으로 작성되었다. 1. 기존 파일 정리 $ORACLE_BASE/oradata -- 디렉토리 삭제 설치된 DB의 DATA FILE 이 저장되는 공간 $ORACLE_BASE/diag/rdbms/$ORACLE_SID -- 디렉토리 삭제 설치된 DB의 LOG 파일이 저장되는 공간 /etc/oratab -- 노란색으로 표시한 라인 삭제 ORACLE DB 에 대한 정보를 담고 있는 공간 2. Xming 연동이 되어 있으면 편리함 ( 아래의 ..
2021.04.27 -
1. vi $ORACLE_HOME/network/admin/sqlnet.ora (sqlnet.ora 파일 열기) [oracle12@localhost ~]$ vi $ORACLE_HOME/network/admin/sqlnet.ora # sqlnet.ora Network Configuration File: /home/oracle12/db/product/12.1.0/dbhome_1/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/ho..
[ORACLE] WALLET OPEN 방법1. vi $ORACLE_HOME/network/admin/sqlnet.ora (sqlnet.ora 파일 열기) [oracle12@localhost ~]$ vi $ORACLE_HOME/network/admin/sqlnet.ora # sqlnet.ora Network Configuration File: /home/oracle12/db/product/12.1.0/dbhome_1/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/ho..
2021.04.26 -
삭제 (DELETE) 불필요한 데이터를 테이블에서 제거하기 위해 사용하는 SQL 삭제의 구성 요소 DELETE FROM 테이블명 : 삭제하고자 하는 데이터를 저장하고 있는 테이블 명 WHERE 조건절; : 삭제하고자 하는 데이터 조건 설정 일반 예제 DELETE FROM 사원 WHERE 사원번호 = 1006; 서브쿼리를 이용한 삭제 DELETE FROM 사원 WHERE 부서번호 IN ( SELECT 부서번호 FROM 부서 WHERE 부서이름 = '기술팀'); * DELETE 수행 시 주의 사항 DELETE 수행 시 WHERE 조건절이 생략되면 테이블의 모든 데이터가 제거되므로 주의 만약 모든 데이터를 제거해야 한다면 DELETE 는 많은 성능 저하가 발생하기 때문에, TRUNCATE 를 이용하는 것이 유..
[ORACLE] 삭제 (DELETE)삭제 (DELETE) 불필요한 데이터를 테이블에서 제거하기 위해 사용하는 SQL 삭제의 구성 요소 DELETE FROM 테이블명 : 삭제하고자 하는 데이터를 저장하고 있는 테이블 명 WHERE 조건절; : 삭제하고자 하는 데이터 조건 설정 일반 예제 DELETE FROM 사원 WHERE 사원번호 = 1006; 서브쿼리를 이용한 삭제 DELETE FROM 사원 WHERE 부서번호 IN ( SELECT 부서번호 FROM 부서 WHERE 부서이름 = '기술팀'); * DELETE 수행 시 주의 사항 DELETE 수행 시 WHERE 조건절이 생략되면 테이블의 모든 데이터가 제거되므로 주의 만약 모든 데이터를 제거해야 한다면 DELETE 는 많은 성능 저하가 발생하기 때문에, TRUNCATE 를 이용하는 것이 유..
2020.08.31 -
갱신 (UPDATE) 테이블의 데이터 값을 변경하기 위해 사용하는 SQL 갱신을 수행할 경우 한 번에 하나의 컬럼만 갱신할 수도 있고, 여러 개의 컬럼을 갱신할 수도 있다. 갱신의 구성요소 UPDATE TEST SET COL1 = 'AA' WHERE COL2 = '20200829'; UPDATE 테이블명 변경하고자 하는 데이터를 저장하고 있는 테이블의 이름 SET 컬럼명 변경 대상에 대한 변경 후의 값 제공 WHERE 조건절 변경을 수행하고자 하는 대상 COL2 컬럼이 20200829 의 값을 가진 행에 대한 COL1 의 값을 AA로 갱신하는 SQL 문이다. 만약 WHERE 절이 지정되어있지 않다면 모든 행의 COL1 이 AA로 갱신된다. 삽입은 테이블에 존재하는 모든 인덱스에 관련되지만 갱신은 해당 컬..
[ORACLE] 갱신 (UPDATE)갱신 (UPDATE) 테이블의 데이터 값을 변경하기 위해 사용하는 SQL 갱신을 수행할 경우 한 번에 하나의 컬럼만 갱신할 수도 있고, 여러 개의 컬럼을 갱신할 수도 있다. 갱신의 구성요소 UPDATE TEST SET COL1 = 'AA' WHERE COL2 = '20200829'; UPDATE 테이블명 변경하고자 하는 데이터를 저장하고 있는 테이블의 이름 SET 컬럼명 변경 대상에 대한 변경 후의 값 제공 WHERE 조건절 변경을 수행하고자 하는 대상 COL2 컬럼이 20200829 의 값을 가진 행에 대한 COL1 의 값을 AA로 갱신하는 SQL 문이다. 만약 WHERE 절이 지정되어있지 않다면 모든 행의 COL1 이 AA로 갱신된다. 삽입은 테이블에 존재하는 모든 인덱스에 관련되지만 갱신은 해당 컬..
2020.08.29 -
대용량의 데이터에 대해서는 SELECT 절을 이용할 때 직접 로딩 또는 병렬 프로세싱으로 성능 향상을 기대할 수 있다. 직접 로딩(DIRECT LOADING) 을 구현할 때는 테이블을 NOLOGGING 모드로 변경한 후 수행하는 것이 성능에 유리하다. ALTER TABLE 테이블 NOLOGGING; INSERT /* + APPEND */ INTO 테이블(컬럼1, 컬럼2, 컬럼3) SELECT 컬럼4, 컬럼5, 컬럼6 FROM 임시테이블; ALTER TABLE 테이블 LOGGING; 이런 직접 로딩(DIRECT LOADING) 하는 프로세스를 여러 개 기동시켜 한번에 여러 개의 프로세스가 데이터를 저장하는 것을 병렬 프로세싱이라고 한다. 특수 데이터 삽입 NULL NULL 값을 테이블에 저장하고자 한다면 ..
[ORACLE] 삽입 - 2 / DIRECT LOADING ,MULTI INSERT대용량의 데이터에 대해서는 SELECT 절을 이용할 때 직접 로딩 또는 병렬 프로세싱으로 성능 향상을 기대할 수 있다. 직접 로딩(DIRECT LOADING) 을 구현할 때는 테이블을 NOLOGGING 모드로 변경한 후 수행하는 것이 성능에 유리하다. ALTER TABLE 테이블 NOLOGGING; INSERT /* + APPEND */ INTO 테이블(컬럼1, 컬럼2, 컬럼3) SELECT 컬럼4, 컬럼5, 컬럼6 FROM 임시테이블; ALTER TABLE 테이블 LOGGING; 이런 직접 로딩(DIRECT LOADING) 하는 프로세스를 여러 개 기동시켜 한번에 여러 개의 프로세스가 데이터를 저장하는 것을 병렬 프로세싱이라고 한다. 특수 데이터 삽입 NULL NULL 값을 테이블에 저장하고자 한다면 ..
2020.08.27 -
삽입 (INSERT) : 발생한 데이터를 특정 테이블에 저장하기 위해 사용하는 SQL 삽입의 구성 요소 삽입 문장 1 INSERT INTO 테이블명 (컬럼명1, 컬럼명2, 컬럼명3 ...) VALUES (값1, 값2, 값3, ...); INSERT INTO .. : 데이터를 저장하기 위한 테이블명 및 컬럼명 지정 VALUES ... : 저장하고자 하는 데이터 삽입 문장 2 INSERT INTO 테이블명 (컬럼명1, 컬럼명2, 컬럼명3 ...) SELECT 컬럼명1, 컬럼명2, 컬럼명3... FROM 테이블명 WHERE 조건절 기타; INSERT INTO .. : 데이터를 저장하기 위한 테이블명 및 컬럼명 지정 SELECT ~ : 조회문 제공 * 데이터 삽입의 종류에 따른 차이 VALUES 이용 : 데이터..
[ORACLE] 삽입 (INSERT) - 1삽입 (INSERT) : 발생한 데이터를 특정 테이블에 저장하기 위해 사용하는 SQL 삽입의 구성 요소 삽입 문장 1 INSERT INTO 테이블명 (컬럼명1, 컬럼명2, 컬럼명3 ...) VALUES (값1, 값2, 값3, ...); INSERT INTO .. : 데이터를 저장하기 위한 테이블명 및 컬럼명 지정 VALUES ... : 저장하고자 하는 데이터 삽입 문장 2 INSERT INTO 테이블명 (컬럼명1, 컬럼명2, 컬럼명3 ...) SELECT 컬럼명1, 컬럼명2, 컬럼명3... FROM 테이블명 WHERE 조건절 기타; INSERT INTO .. : 데이터를 저장하기 위한 테이블명 및 컬럼명 지정 SELECT ~ : 조회문 제공 * 데이터 삽입의 종류에 따른 차이 VALUES 이용 : 데이터..
2020.08.26 -
행 제한 특정 조건에 따라 행 개수를 제한하기 위해 사용하는 SQL OFFSET 건수 { ROW | ROWS } FETCH { FIRST | NEXT } { 건수 | 숫자 PERCENT } {ROW | ROWS} { ONLY | WITH TIES } ORDER BY SQL 수행 결과의 정렬 기준 OFFSET 행의 시작 지점을 지정 FETCH 반환할 행 또는 행의 비율을 지정 ONLY 행의 수 또는 비율을 정확하게 지정한 값만큼 반환 SELECT 사번, 이름 FROM 사원 ORDER BY 이름 ASC OFFSET 2 ROW FETCH FIRST 3 ROWS ONLY ; - 오름차순으로 정렬 후 , 2번째 행에서 부터 3건을 조회하는 SQL * FIRST / NEXT , ROW / ROWS 의 기능의 차이는..
[ORACLE] 행 제한행 제한 특정 조건에 따라 행 개수를 제한하기 위해 사용하는 SQL OFFSET 건수 { ROW | ROWS } FETCH { FIRST | NEXT } { 건수 | 숫자 PERCENT } {ROW | ROWS} { ONLY | WITH TIES } ORDER BY SQL 수행 결과의 정렬 기준 OFFSET 행의 시작 지점을 지정 FETCH 반환할 행 또는 행의 비율을 지정 ONLY 행의 수 또는 비율을 정확하게 지정한 값만큼 반환 SELECT 사번, 이름 FROM 사원 ORDER BY 이름 ASC OFFSET 2 ROW FETCH FIRST 3 ROWS ONLY ; - 오름차순으로 정렬 후 , 2번째 행에서 부터 3건을 조회하는 SQL * FIRST / NEXT , ROW / ROWS 의 기능의 차이는..
2020.08.25 -
원하는 데이터를 추출하기 위해 사용하는 SQL 조회를 수행하기 위한 SQL 의 구성 요소 SELECT : 추출하고자 하는 컬럼명을 지정하는 부분 FROM : 추출하고자 하는 테이블의 이름을 지정하는 부분 WHERE : 해당 테이블에서 추출하고자 하는 데이터의 조건을 지정하는 부분 + 1. 추출 결과를 정렬하는 ORDER BY 절 2. 그룹 함수와 함께 사용되어 추출 결과를 특정 컬럼을 기준으로 그룹핑하는 GROUP BY 절 * SELECT 절과 FROM 절은 조회를 수행하기 위해 반드시 필요한 필수 부분 * 추출하고자 하는 데이터가 2개 이상의 테이블에 존재할 때 FROM 절에 2개 이상의 테이블을 설정하는 것을 조인이라고 한다. * SELECT 절과 FROM 절 안에는 SELECT 절과 FROM 절이 ..
[ORACLE] 조회 (Query)원하는 데이터를 추출하기 위해 사용하는 SQL 조회를 수행하기 위한 SQL 의 구성 요소 SELECT : 추출하고자 하는 컬럼명을 지정하는 부분 FROM : 추출하고자 하는 테이블의 이름을 지정하는 부분 WHERE : 해당 테이블에서 추출하고자 하는 데이터의 조건을 지정하는 부분 + 1. 추출 결과를 정렬하는 ORDER BY 절 2. 그룹 함수와 함께 사용되어 추출 결과를 특정 컬럼을 기준으로 그룹핑하는 GROUP BY 절 * SELECT 절과 FROM 절은 조회를 수행하기 위해 반드시 필요한 필수 부분 * 추출하고자 하는 데이터가 2개 이상의 테이블에 존재할 때 FROM 절에 2개 이상의 테이블을 설정하는 것을 조인이라고 한다. * SELECT 절과 FROM 절 안에는 SELECT 절과 FROM 절이 ..
2020.08.24 -
1. DML (Data Manipulation Language) 데이터 조작어 테이블의 데이터를 수정하거나 추가, 삭제하는 SQL 2. DDL (Data Definition Language) 데이터 정의어 테이블을 생성하고 테이블 구조를 변경할 수 있는 SQL 3. DCL (Data Control Language) 데이터 제어어 테이블의 데이터를 조회하고 변경할 수 있게 권한을 관리하는 SQL 4. QUERY 테이블에 저장되어 있는 데이터를 조회할 수 있는 SQL
[ORACLE] SQL 종류 (DML, DDL, DCL, QUERY)1. DML (Data Manipulation Language) 데이터 조작어 테이블의 데이터를 수정하거나 추가, 삭제하는 SQL 2. DDL (Data Definition Language) 데이터 정의어 테이블을 생성하고 테이블 구조를 변경할 수 있는 SQL 3. DCL (Data Control Language) 데이터 제어어 테이블의 데이터를 조회하고 변경할 수 있게 권한을 관리하는 SQL 4. QUERY 테이블에 저장되어 있는 데이터를 조회할 수 있는 SQL
2020.08.23