반응형 오라클27 Oracle START WITH CONNECT BY PRIOR 사용법 Oracle START WITH CONNECT BY PRIOR 사용법 START WITH CONNECT BY PRIOR 구문은 오라클에서 트리와 같은 계층구조를 표현하기 위해 사용합니다. 계층구조를 표현하기 위해 테이블은 상하를 구분할 수 있는 컬럼(속성: ATTRIBUTE)가 존재 해야 합니다. (예 : 자신의 개인번호와 상사의 개인번호, 상위부서코드와 부서코드 등등) 그럼 기본적인 사용법을 알아 보겠습니다. ----------------------------------------------------------------------------------------------------------------- SELECT * FROM 테이블명 START WITH CONNECT BY PRIOR -----.. Database/SQL 2013. 7. 25. Oracle 오라클 날짜 연산 날짜 계산 날짜 포멧 Oracle 오라클 날짜 연산 날짜 계산 날짜 포멧 -- 날짜 포멧 SELECT SYSDATE AS BASIC , TO_CHAR(SYSDATE, 'YYYY.MM.DD') -- 년월일 , TO_CHAR(SYSDATE, 'YYYY.MM.DD HH:MI:SS') -- 년월일 시분초 (12시) , TO_CHAR(SYSDATE, 'YYYY.MM.DD HH24:MI:SS') -- 년월일 시분초 (24시) , TO_CHAR(SYSDATE, 'YYYY.MM.DD PM HH:MI:SS ') -- 년월일 오전오후 시분초 , TO_CHAR(SYSDATE, 'YYYY.MM.DD DY HH:MI:SS') -- 년월일 요일 시분초 (금) , TO_CHAR(SYSDATE, 'YYYY.MM.DD DAY HH:MI:SS') -- 년월.. Database/SQL 2013. 7. 9. Oracle Subquery 서브쿼리를 활용한 반복문 Oracle Subquery 서브쿼리를 활용한 반복문 * 서브쿼리 SUBQUERY 를 활용한 반복문[PL/SQL] 일반적인 오라클의 FOR 문 FOR 변수 IN 시작값..끝값 LOOP 반복될 이벤트; END LOOP; 서브쿼리를 활용한 FOR 문 FOR DATA_ROW IN ( SELECT문 ) LOOP 반복될 이벤트; END LOOP; 위의 두 FOR문의 차이를 보면 변수가 들어갈 자리에 DATA_ROW가, 시작값과 끝값이 들어갈 자리에 서브쿼리가 들어간 것을 볼 수 있다. 이렇게 되면 서브쿼리를 실행했을 때 조회된 데이터 행 만큼 반복이 되며 FOR문 안에서 DATA_ROW.컬럼명을 사용하여 각 행의 데이터를 사용할 수 있다. *예제 테이블1의 A컬럼을 테이블2의 B컬럼에 INSERT해야 할 경우. .. Database/SQL 2013. 5. 28. Oracle 오라클 CASE문 사용법 CASE WHEN THEN END ORACLE 오라클 CASE문 사용법 CASE WHEN THEN END * CASE 문의 사용법 CASE문은 여타 다른 프로그래밍 언어들과 같이 조건이나 값에 해당하는 결과값을 RETURN하는데 사용한다. CASE문에는 사용법은 같지만 조건이 다른 2가지 방식이 존재한다. 값에 따라 결과값을 RETURN하는 방식과 조건에 따라 결과값을 RETURN하는 방식이 그것이다. 첫번째 방식부터 알아보도록 하자. CASE 대상값 WHEN 값1 THEN 결과1 WHEN 값2 THEN 결과2 . . . WHEN 값n THEN 결과m END; 위의 용법과 같이 대상값이 값1에 해당하면 결과2를..값n에 해당하면 결과m을 출력한다. *예제1 위와 같은 사원테이블이 있다. 이중 주민번호(RRN_NO)의 7번째 숫자를 가지고.. Database/SQL 2013. 5. 24. Subquery 서브쿼리사용법, ALL, ANY, IN, EXISTS Subquery 서브쿼리사용법, ALL, ANY, IN, EXISTS * 서브쿼리의 사용. 서브쿼리란? 서브쿼리는 SELECT문 내의 또다른 SELECT문이라고 생각하시면 됩니다. 서브쿼리는 왜 사용하나? 기본적인 SELECT문의 데이터 외에 데이터를 가공하여 사용할 필요가 있을 때 사용합니다. 서브쿼리는 어디어디에서 사용할 수 있나? 서브쿼리는 SELECT, INSERT, UPDATE, DELETE 어디에서 사용 가능하고, SELECT리스트, FROM절, WHERE절에서도 사용이 가능합니다. 서브쿼리의 사용법 서브쿼리는 (SELECT...)로 사용합니다. 반드시 괄호 사용! *예제 아래와 같은 AMT_MST_TEST 테이블이 있습니다. 1. 서브쿼리의 사용 - SELECT리스트 '이순신' 의 데이터를 .. Database/SQL 2013. 5. 23. Oracle OUTER JOIN (RIGHT JOIN, LEFT JOIN) 비교 아우터조인 Oracle OUTER JOIN (RIGHT JOIN, LEFT JOIN) 비교 아우터조인 [LEFT JOIN사용법] SELECT * FROM 테이블1 T1 LEFT JOIN 테이블2 T2 ON (T2.테이블을 연결할 컬럼 = T1.테이블을 연결할 컬럼 ); [예제] 사원정보가 있는 AMT_MST_TEST 와 부서정보가 있는 DEPT_MST_TEST 테이블이 있습니다. AMT_MST_TEST 테이블에 DEPT_CD가 같은 조건으로 DEPT_MST_TEST와 LEFT, RIGHT JOIN을 걸어보겠습니다. SELECT * FROM AMT_MST_TEST T1 LEFT JOIN DEPT_MST_TEST T2 ON (T2.DEPT_CD = T1.DEPT_CD) AMT_MST_TEST(사원) 테이블을 기준으로 .. Database/SQL 2013. 5. 21. Oracle 오라클 주민번호 유효성 체크 함수 * 주민등록번호 유효성 체크 ------------------------------------------------------------ CREATE OR REPLACE FUNCTION KURS.NF_ISNUMBER ( I_STR_NUMBER IN VARCHAR2 ) RETURN VARCHAR2 IS /* 데이터가 NUMBER 형인지 검사하는 함수임. 1 이 나오면 NUMBER 형임 */ V_NUM NUMBER; BEGIN V_NUM := TO_NUMBER (I_STR_NUMBER); RETURN 1; EXCEPTION WHEN OTHERS THEN RETURN 0; END NF_ISNUMBER; NUMBER형으로 가능한 문자열이면 1을 반환하고, 아니면 0을 반환한다. CREATE OR REPLACE .. Database/유용한함수 2013. 5. 21. 오라클 그룹함수 SUM, AVG, MAX, MIN, COUNT의 사용 GROUP BY HAVING 오라클 그룹함수 SUM, AVG, MAX, MIN, COUNT의 사용 GROUP BY HAVING * 많이 사용되는 그룹함수의 종류 함수명 기능 SUM 합을 구한다. AVG 평균을 구한다. MAX 최댓값을 구한다. MIN 최솟값을 구한다. COUNT 행의수를 구한다. 보통 그룹함수는 그룹으로 묶어 위 함수와 같은 데이터를 조회 하고 자 할때 사용한다. *사용법 SELECT SUM(컬럼명) , AVG(컬럼명) , MAX(컬럼명) , MIN(컬럼명) , COUNT(컬럼명) FROM 테이블명 WHERE 조건 GROUP BY 그룹화할 컬럼 HAVING 그룹에 대한 조건 WHERE - GROUP BY - HAVING 의 순서 WHERE은 그룹화 하기 전에 조건이라고 생각하면 되고 HAVING은 그룹화 후의 조건이.. Database/SQL 2013. 5. 21. 오라클 DELETE문 데이터 삭제 오라클 DELETE문 데이터 삭제 *사용법 DELETE FROM 테이블명 WHERE 조건; *예제 DELETE FROM AMT_MST_TEST WHERE EMP_ID = '0004'; -- AMT_MST_TEST 테이블에서 EMP_ID가 '0004'인 것을 지우겠다. *결과 ※ 기존테이블 ※ DELETE문 실행 후 테이블 EMP_ID가 '0004'인 장희빈이 삭제된 것을 볼 수 있다. Database/SQL 2013. 5. 21. 오라클 INSERT문 데이터 생성 오라클 INSERT문 데이터 생성 *INSERT 문 INSERT INTO 테이블명 ( 컬럼1 , 컬럼2 ) VALUES( 컬럼1에 들어갈 데이터값 , 컬럼2에 들어갈 데이터값 ); *예제 INSERT INTO AMT_MST_TEST ( EMP_ID , EMP_NM , RRN_NO , GEN_DIV , TEL_NO , ADDR , DEPT_CD , SALARY ) VALUES( '0004' , '장희빈' , '9001042000001' , '여' , '010-3333-4444' , '부산 사하구 괴정동' , '1115' , 18000000 ); *결과 Database/SQL 2013. 5. 21. Oracle 오라클 테이블 생성과 PK(Primary Key) 설정 *테이블 생성 CREATE TABLE 테이블명( 물리명 데이터타입(크기) NULL여부 ); *PK(Primary Key) 설정 ALTER TABLE 테이블명 ADD (PRIMARY KEY(키로 설정할 컬럼명)); *예제 CREATE TABLE AMT_MST_TEST ( EMP_ID VARCHAR2(10) NOT NULL, EMP_NM VARCHAR2(50) NOT NULL, RRN_NO VARCHAR2(13) NULL, GEN_DIV VARCHAR2(2) NULL, TEL_NO VARCHAR2(50) NULL, ADDR VARCHAR2(300) NULL ); ALTER TABLE AMT_MST_TEST ADD ( PRIMARY KEY (EMP_ID) ) ; *결과 Database/SQL 2013. 5. 20. Oracle 오라클 숫자에 꼼마 찍는 함수 Oracle 오라클 숫자에 꼼마 찍는 함수 * 원하는 자리마다 원하는 문자를 찍어주는 Function CREATE OR REPLACE FUNCTION RESEARCH.NF_SPLITTER ( I_STRNUMBER IN VARCHAR2 -- 문자열 , I_SPACE IN NUMBER -- 몇자리마다? , I_CHRCOMMA IN VARCHAR2 -- 무슨글자를? ) RETURN VARCHAR2 IS V_NUM NUMBER; V_OUTPUT VARCHAR2(1000); BEGIN SELECT LENGTH(I_STRNUMBER) INTO V_NUM FROM DUAL; IF ( V_NUM > I_SPACE ) THEN V_OUTPUT := NF_SPLITTER(SUBSTR(I_STRNUMBER,1,V_NUM-I.. Database/SQL 2013. 5. 14. 이전 1 2 다음 💲 추천 글 반응형