oracle 8

# 번외, [Oracle] SQL 스칼라 서브쿼리, 건수가 많지 않은 테이블과 조인하기 위해 사용

- 스칼라 서브쿼리 (Scalar Subquery) : 하나의 단일값을 나타내기 위해 SELECT 구문을 [SELECT LIST] , [WHERE절] , [ORDER BY 절] , [DML] 등에 사용하는 서브쿼리를 뜻한다. 데이터 건수가 적을 경우 => 스칼라 서브커리 > 조인 방식 데이터 건수가 적으면 조인 보다 유리하며 유효한 수식이 사용될 수 있는 곳이라면 어디든 사용가능 ** 반드시 하나의 결과만(단일 Row) 반환해야한다. 건수가 많지 않은 테이블과 조인해서 데이터를 추출하는 경우 불필요한 조인을 줄이기 위해 사용한다. Case. JOIN [기존의 JOIN 을 이용한 경우] SELECT EMPNO, ENAME, EMP.DEPTNO, DNAME FROM EMP, DEPT WHERE EMP.DEP..

# 번외, [ORACLE] SQL JOIN. 없는 데이터도 조인해서 출력하고 싶어 !

EMP (사원테이블) EMPNO ENAME DEPTNO 2200 JAMES 10 2211 WESTBROOK 20 2222 CURRY 30 DEPT (부서테이블) DEPTNO DNAME LOC 10 PFW LACKERS 20 SFW ROCKETS 30 SG WARRIORS 40 CENTER CELTICS 두 테이블의 DEPTNO 를 이용하여 조인해서 출력 시 (40번 부서도 출력한다) SELECT DEPT.DEPTNO, DNAME, COUNT(EMP.EMPNO) FROM EMP, DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO GROUP BY DEPT.DEPTNO, DNAME ORDER BY DEPT.DEPTNO ; ANSI JOIN ( right outer join ) 사용 SELE..

# 번외, [Oracle] SQL 손쉬운 조건, Decode 함수

SQL 내에서 손쉽게 조건문을 구성하여 데이터를 도출할 수 있는 함수 DECODE DECODE ( 컬럼, 조건1, 결과1, 조건2 ,결과2, 결과3... ) DECODE 함수 사용 [ 컬럼명 ] 에 대해서 [ 조건1 ] 에 해당할 경우 [ 결과1 ]을 도출 [ 컬럼명 ] 에 대해서 [ 조건2 ] 에 해당할 경우 [ 결과2 ]을 도출 모든 조건에 대해서 해당되지 않을 경우 [ 결과3 ] 을 도출 ( ELSE 와 비슷 ) 예제 ) DECODE ( SAL, NULL, 'N', 'Y' ) SAL_YN 다음과 같이 SAL(연봉) 의 NULL 여부에 따라 N 과 Y 로 연봉이 NULL 일 경우 N 데이터가 있을 경우 Y 로 도출한다.

# 번외, 분석함수 LAG, LEAD

LAG, LEAD 함수를 사용하면 ROW 의 이전값과 이후값을 가져온다. 문법은 다음과 같다. LAG ( Expr, n, default ) OVER ( order by column ) : 이전 값 가져오기 : order by column 으로 정렬된 Expr에 입력된 값의 n 값 만큼 이전 ROW의 값을 갖는다. n과 default 는 생략이 가능하며 n의 경우 생략하면 1로 적용, default는 이전 ROW의 값이 없을 경우 리턴되는 값이며 생략하면 null로 리턴된다. Expr 에는 column , 즉 필드 및 sum, avg 등 그룹함수도 올 수 있다. LEAD ( Expr, n, default ) OVER ( order by column ) : 이후 값 가져오기 : order by column ..

# 번외, VARCHAR2로 저장되어있는 날짜형식 YYYY-MM-DD 변경

일반적으로 날짜 데이터는 DATE 타입으로 DB에 저장을 하여 TO_DATE(SYSDATE, 'YYYY-MM-DD') 처럼 TO_DATE 함수를 사용하면 바로 YYYY-MM-DD 형식으로 바꿀 수 있지만 VARCHAR2 와 같은 타입으로 저장을 하게되면 TO_DATE 가 제대로 변경이 안되는 경우가 있습니다. (저의 경우에는 시:분:초가 뒤에 따라 붙어서 나오더군요) 그래서 VARCHAR2 형식일 경우에는 TO_CHAR(TO_DATE(SYSDATE), 'YYYY-MM-DD'), 'YYYY-MM-DD') 와 같은 방법으로 TO_DATE후에 다시 TO_CHAR ( YYYY-MM-DD 포맷)으로 해결하였습니다. 출처: https://blog.taeseong.me/250 [사과 냄새나는 IT이야기 TAESTOR..

#11, PL/SQL

PL/SQL 이란 ? PL/SQL(피엘에스큐엘)은 상용 관계형 데이터베이스 시스템인 오라클(Oracle) DBMS에서 SQL 언어를 확장하기 위해 사용하는 컴퓨터 프로그래밍 언어 중 하나이다. 특징 주로 자료 내부에서 SQL 명령문만으로 처리하기에는 복잡한 자료의 저장이나 프로시저와 트리거 등을 작성하는 데 쓰인다. PL/SQL의 구조는 에이다 프로그래밍 언어를 본떠 만들어졌다고 알려졌다. 따라서 두 언어는 그 구조가 범용 언어인 파스칼의 구문과 비슷하다. 범용 언어인 C와 C++ 그리고 파스칼 및 포트란 등의 프로그래밍 언어와는 다른 점으로 범용 언어들이 컴퓨터 시스템에서 특정한 작업을 처리하기 위해 만들어진 언어라고 볼 때 PL/SQL은 단지 오라클의 관계형 데이터베이스 (RDBMS)에서만 사용된다는..

#0, ERP

ERP란 ? ERP"는 Enterprise Resource Planning의 약어입니다. 이것은 조직에서 회계, 조달, 프로젝트 관리, 위험 관리 및 규정 준수, 공급망 운영과 같은 일상적인 비즈니스 활동을 관리하기 위해 사용하는 소프트웨어 제품군입니다. 또한 완전한 ERP 제품군에는 조직의 재무 성과를 계획, 예산 편성, 예측 및 보고하는 데 사용되는 EPM(Enterprise Performance Management) 소프트웨어가 포함되어 있습니다. ERP 시스템은 함께 연동되어 있으며 수맣은 비즈니스 프로세스를 정의하고 이들 간의 데이터 흐름을 가능하게 합니다. ERP 시스템은 여러 소스에서 조직의 공유 거래 데이터를 수집하여 데이터 중복을 제거하고 "단일 정보 소스"로 데이터 무결성을 제공합니다...