목록오라클 (175)
투케이2K
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : 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 /* =========================== */ /* =========================== */ [소스 코드] /* [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 /* =========================== */ /* =========================== */ [소스 코드] /* [인라인 뷰 (inline view) from 절 서브쿼리 사용해서 그룹별 최대 나이에 해당하는 사용자 정보 출력하기] 1. from 절 서브쿼리 - 메인 select 절에서 사용하는 테이블 외에 다른 임시 테이블을 생성해 사용할 수 있습니다 2. select 절 메인 테이블 외에 group by 절을 사용한 다른 임시 테이블 정보를 생성합니다 3. 메인 where 절에서는 from 절에서 생성한 테이블 정보 조건에 해당하는 사..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : 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-..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [intersect 사용해서 테이블 데이터 교집합 결과 구하기 실시] 1. A union all B - A와 B 테이블을 병합하겠다는 의미입니다 2. A intersect B - A테이블에서 B테이블 데이터 중 교집합 되는 데이터를 출력하겠다는 의미입니다 */ select '투케이' as 이름 from dual union all /*테이블 병합 - [투케이, 케이투] 데이터 저장됨*/ select '케이투' as 이름 from ..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [minus 사용해서 테이블 데이터 차집합 (빼기) 결과 구하기 실시] 1. A union all B - A와 B 테이블을 병합하겠다는 의미입니다 2. A minus B - A테이블에서 B테이블 데이터를 빼고 나머지 데이터를 출력하겠다는 의미입니다 */ select '투케이' as 이름 from dual union all /*테이블 병합 - [투케이, 케이투] 데이터 저장됨*/ select '케이투' as 이름 from dual..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [in 사용해 소그룹 조건을 만족하는 데이터 출력 실시] 1. WHERE (컬럼, 컬럼 ... ) IN ((조건, 조건 ... ), (조건, 조건 ... )); 방식으로 컬럼을 소그룹으로 묶어서 in 조건을 확인할 수 있다 2. 보기에서 t_sex, t_dept 소그룹으로 묶어서 그룹 조건에 해당하는 데이터를 출력한다 */ select * from test_user where (t_sex, t_dept) in (('M','고구려..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] CREATE INDEX USER_INDEX ON TEST_USER (T_NAME, T_DEPT); /*************************************************************** 설명 - 이름, 부서명을 조회하는 인덱스 --------------------------------------------------------------- 생성(컬럼중복허용) - CREATE INDEX 인덱스명 ON 테이블..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] CREATE OR REPLACE FUNCTION GET_DEPT_DATE (I_NAME IN VARCHAR, I_DEPT IN VARCHAR ) /*************************************************************** 설명 - 국가 멸망 판단 반환 [백제, 후백제 생존] --------------------------------------------------------------- 생성 -..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [translate 사용해 특정 문자값 개별 확인 후 다른 문자로 치환 실시] 1. TRANSLATE(데이터, 포함여부확인, 변경할값) 으로 사용합니다 2. REPLACE 와 차이점은 [포함여부확인] 부분에서 REPLACE는 단어기준으로 찾지만, TRANSLATE는 글자기준으로 한개씩 포함되는지 확인합니다 3. EX - [A123B / 123456 / ****] 데이터에서 1 > *, 2 >*, 3 > * 개별 확인해서 변경한다..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] CREATE OR REPLACE FUNCTION GET_USER_JSON_DATA (I_NAME IN VARCHAR, I_AGE IN VARCHAR ) /*************************************************************** 설명 - 사용자 정보 JSON 형식으로 데이터 포맷 후 반환 ------------------------------------------------------------..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [sum over partition by 사용해서 그룹별 누적 합계 및 총 합계 구하기 실시] 1. partition by : 소그룹을 만들때 사용합니다 2. unbounded preceding - current row : 처음행부터 현재행까지 계속 순차적 누적 합계를 구합니다 3. 누적 합계 시 order by 컬럼이 중복되지않는 값을 가지고 있어야합니다 */ select distinct t_name, t_age, t_dept..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* **************** [프로시져 생성 시작 부분] ***************** */ CREATE OR REPLACE PROCEDURE TEST_MAX_DATA ( I_ONE IN VARCHAR, I_TWO IN VARCHAR, O_MSG OUT VARCHAR, O_CURSOR OUT SYS_REFCURSOR ) /**********************************************************..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [concat 사용해서 문자열 결합 실시] 1. concat (A데이터, B데이터) - A데이터와 B데이터 문자열 결합을 수행합니다 2. 여러 문자열을 결합하고 싶을 경우 다중 concat을 사용해야합니다 */ /*[일반 concat 문자열 결합]*/ select concat('안녕','오라클') as "concat문자열결합" from dual; /*[다중 concat 문자열 결합]*/ select concat(concat('안..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [to_char() FM 형식 사용해서 숫자값 콤마표시, 빈자리 0값 채우기 실시] 1. 0값 채우기나 콤마 표시 경우 지정된 자리 숫자 보다 데이터가 큰 경우 비정상 표시된다 */ SELECT TO_CHAR(123456, 'FM999,999') AS "6자리콤마표시", TO_CHAR(123456789, 'FM999,999,999') AS "9자리콤마표시", TO_CHAR(123, 'FM00000') AS "0값채우기" FROM..
/* =========================== */ [ 개발 환경 설정 ] 개발 툴 : Toad 개발 언어 : Oracle /* =========================== */ /* =========================== */ [소스 코드] /* [LISTAGG 사용해 출력되는 컬럼 데이터를 가로(행)으로 합쳐서 출력 실시] 1. LISTAGG(컬럼, 구분자) WITHIN GROUP(ORDER BY 정렬기준) 문법으로 사용합니다 2. GROUP BY를 추가적으로 사용해서 특정 그룹별 데이터를 모두 출력합니다 */ SELECT T_DEPT, LISTAGG(T_NAME, ',') WITHIN GROUP(ORDER BY T_NAME) AS 이름 FROM TEST_USER GR..