목록OracleDB (202)
투케이2K

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [JSON_OBJECT 사용해 데이터 형식 json 으로 출력하기] 1. JSON_OBJECT 는 오라클에서 json 형식으로 데이터를 출력할 수 있습니다 2. 'key' value 'value' 형식으로 사용합니다 */ SELECT JSON_OBJECT ( 'INDEX' VALUE '1', 'INDEX' VALUE '2', 'INDEX' VALUE '3') FROM DUAL; /* =========================..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [INTERVAL 사용해서 특정 날짜 기준 (연, 월, 일, 시, 분, 초) 더하기 및 빼기 수행 실시] 1. SYSDATE : 현재 날짜 및 시간을 알기 위한 함수입니다 2. YYYY-MM-DD HH24:MI:SS : 연, 월, 일, 시, 분, 초 형태를 24시간 형태로 표현합니다 3. AS : 약어를 표시할때 사용합니다 4. DUAL : 오라클에서 임시 테이블을 의미합니다 5. 문법 : SYSDATE 연산자(+ , -) (I..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [order by 1 2 ... 사용해 컬럼 순서별 정렬 실시] 1. order by 1 2 .. 의미는 테이블의 1,2 .. 번째 컬럼 기준으로 정렬하겠다는 의미입니다 2. 즉 ORDER BY 1 DESC는 첫번째 열 기준으로 내림차순(큰순서) 정렬이라는 말입니다 */ select t_name, t_age, t_rank -- from test_user where trim(t_dept) = '조선' order by 1, 2, 3..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [FIRST_VALUE 설명] - 파티션에서 가장 처음에 나오는 값을 구합니다 - MIN 함수를 사용해서 같은 결과를 구할 수 있습니다 [LAST_VALUE 설명] - 파티션에서 가장 나중에 나오는 값을 구합니다 - MAX 함수를 사용해서 같은 결과를 구할 수 있습니다 [LAG 설명] - 이전에 행을 가지고 있습니다 [LEAD 설명] - 윈도우에서 특정 위치의 행을 가지고 옵니다 - 기본값은 1입니다 /* ===..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [union 설명] - 중복된 행을 제거하고 합집합을 만듭니다 - 즉, 중복된 행을 제거한 모든 데이터를 출력합니다 [union all 설명] - 중복된 행을 제거하지 않고 합집합을 만듭니다 - 즉, 모든 데이터를 출력합니다 [intersect 설명] - 여러개의 sql 문에 대해서 교집합을 만듭니다 - 즉, 통일되는 데이터를 만듭니다 [except 설명] - sql 문에 대해서 차집합을 만듭니다 - except (..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [Nested Loop] - 중첩 루프 조인은 선행 테이블을 먼저 스캔하면서 후행 테이블 조인하는 방식입니다 - Random Access가 많이 발생하면 성능이 저하됩니다 [Sort Merge] - 두개의 테이블을 Sort 한 후에 Merge 하면서 조인을 하는 방식입니다 - 데이터가 많으면 Sort 시에 부하가 발생할 수 있습니다 [Hash] - 해시 함수를 사용해서 해시 테이블 내의 주소를 계산하는 방식으로 조인을 실행합니..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [merge into 문을 사용해서 데이터가 존재할 경우 update , 데이터가 존재하지 않을 경우 insert 수행 실시] 1. merge into 문을 사용해서 데이터가 존재할 경우 update , 데이터가 존재하지 않을 경우 insert 수행합니다 2. MATCHED - 데이터가 존재할 경우 수행됩니다 3. NOT MATCHED - 데이터가 존재하지 않은 경우 수행됩니다 */ MERGE INTO TEST_USER -- 사..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ 1. 토드에서 [Schema Browser] 아이콘을 클릭해서 > 표시된 테이블 목록을 확인 후 > alter table 테이블 구조를 변경할 테이블을 확인합니다 2. 마우스 우클릭 > Alter Table 메뉴를 선택합니다 3. 변경하고자하는 옵션을 선택 후 > [OK] 버튼을 클릭해서 저장합니다 /* =========================== */

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [update 문을 사용해서 특정 컬럼 데이터 일괄 초기화 실시] 1. update [테이블] set [수정값] 2. t_dept_place 값을 '0' 으로 초기화 시킵니다 */ update test_dept set t_dept_place = '0'; /* =========================== */ [결과 출력] [원 본] [수정 후] /* =========================== */ /* =..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [group by , having , order by case 문 사용해서 부서별 최소 나이 출력 후 정렬 실시] 1. group by (컬럼) : 컬럼 기준으로 같은 값을 그룹으로 묶습니다 2. having 조건 : 그룹에서 조건을 지정합니다 3. order by case : 출력되는 컬럼을 확인 후 case문을 사용해 정렬 값을 지정합니다 */ select t_rank, min(to_number(t_age)) from tes..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [from 절에 여러 테이블을 선언해서 조인 수행 실시] 1. from 절에 여러 테이블을 선언 시 [테이블명.컬럼명]을 사용해서 각 테이블 컬럼을 지정합니다 2. 로직 : user 테이블에 있는 부서명과 dept 테이블에 있는 부서명을 조인해 정보를 출력합니다 */ select test_user.t_name, test_user.t_dept, test_dept.t_dept_phone, test_dept.t_dept_place f..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [order by 절에 case when then 조건문을 사용해 이중 정렬 실시] 1. case when 조건 then 만족 수행 else 비만족 수행 입니다 2. order by (case when t_dept = '고구려' then 1 else 2 end) 작은 순서로 우선 정렬합니다 3. t_phone desc; 세부적으로 다시 t_phone값을 확인해 내림차순으로 정렳합니다 4. 로직 : case 문을 사용해 t_dep..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [from 서브쿼리 , group by, min 사용해 부서 연령 (나이) 범위별 최소 값 출력 실시 - 10대부터 40때까지 범위 기준] 1. from 서브쿼리에서 연령 별 범위에 해당하는 데이터를 만듭니다 (10대, 20대 ... ) 2. 메인 쿼리에서 group by 조건을 부서, 나이 범위로 지정해 그룹을 만들고 min 최소 연령을 조회합니다 */ select 부서, 나이범위, min(나이) from (select t_d..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [group by , min 사용해 부서 그룹별 최소나이 및 최대나이 구하기] 1. group by : 그룹으로 묶어줄 컬럼을 지정합니다 2. having : 그룹 조건 값을 입력합니다 3. min : 최소값을 구합니다 4. max : 최대값을 구합니다 */ select t_dept as 부서, min(to_number(t_age)) as 최소나이, max(to_number(t_age)) as 최대나이 from test_user..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [next_day 와 add_months 사용해 현재 개월에서 n개월 추가한 특정 요일 날짜 확인 실시] 1. next_day 는 특정 요일 날짜를 확인할 수 있습니다 2. next_day(sysdate, 찾으려는요일) 형식입니다 3. [sunday - 1 - 일요일] / [monday - 2 - 월요일] / [tuesday - 3 - 화요일] [wednesday - 4 - 수요일] / [thursday - 5 - 목요일] / ..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [DataBase LINK (데이터베이스 링크) 란?] - 디비 링크 란 물리적으로 데이터베이스가 분리되어 있을 경우 오라클 서버의 ALIAS(별명)을 이용하여 서로 다른 DB에 접근하는 Oracle DBMS만의 기술입니다 - 디비 링크를 사용하면 A컴퓨터에서 B컴퓨터에 있는 테이블 및 함수 등을 조회할 수 있습니다 - 디비 링크를 사용하면 서로다른 DB간에 조인도 가능합니다 - A 컴퓨터에서 B 컴퓨터 테이블 및 함수 등을 사용하기 위..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [group by 절에 다중 그룹 조건 값을 지정해서 조회 실시] 1. group by : 같은 조건에 해당하는 값을 묶어서 그룹으로 표시해줍니다 2. group by (나이, 부서) : 나이와 부서를 조건으로 해서 그룹으로 묶습니다 */ select t_age as 나이, t_dept as 부서 from test_user group by (t_age, t_dept) order by t_dept desc; /* =========..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [인라인 뷰 (inline view) from 절 서브쿼리 사용해서 그룹별 최대 나이에 해당하는 사용자 정보 출력하기] 1. from 절 서브쿼리 - 메인 select 절에서 사용하는 테이블 외에 다른 임시 테이블을 생성해 사용할 수 있습니다 2. select 절 메인 테이블 외에 group by 절을 사용한 다른 임시 테이블 정보를 생성합니다 3. 메인 where 절에서는 from 절에서 생성한 테이블 정보 조건에 해당하는 사..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [LPAD, LEVEL 사용해서 왼쪽 대각선 방향으로 순차적 순번 표시] 1. LPAD : 왼쪽기준으로 지정된 문자, 공백을 채운다는 의미입니다 2. LEVEL : 1부터 시작해서 사용자가 지정한 범위까지 연속 순번을 표시합니다 3. 처음 시작 시 LEVEL값이 1일 경우 LPAD(1, 4) 왼쪽에 공백 4자리 표시 후 1값을 출력합니다 */ SELECT LPAD(LEVEL, 4*(LEVEL)), LPAD(LEVEL, 4*(LE..

/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [to_date + int 정수값 를 사용해서 특정 날짜에 추가 일자를 더한 날짜 출력하기] 1. to_date(데이터, 포맷형식) 으로 문법을 사용합니다 2. to_date + int 정수값은 MM 날짜에 추가로 int 값을 더한 날짜를 출력해줍니다 */ select to_date('20210201091015','YYYY-MM-DD HH24:MI:SS') as 원본날짜, to_date('20210201091015','YYYY-..