본문 바로가기

스터디/Oracle30

[Oracle / 오라클] 누적합계를 UPDATE 하기 고객정보 테이블 SELECT * FROM TB_CUSTOMER WHERE CUSTOMER_CD ='2017042'; 고객의 포인트 누적 테이블 SELECT * FROM TB_POINT WHERE CUSTOMER_CD ='2017042'; CB_CUSTOMER 테이블의 TOTAL_POINT 칼럼에 TB_POINT의 POINT 합계 UPDATE UPDATE TB_CUSTOMER CU SET CU.TOTAL_POINT = (SELECT SUM(CP.POINT) FROM TB_POINT CP WHERE CP.CUSTOMER_CD = CU.CUSTOMER_CD GROUP BY CP.CUSTOMER_CD ) WHERE CU.CUSTOMER_CD = '2017042'; 2021. 5. 31.
[Oracle / 오라클] INSERT ALL, WHEN으로 조건별 다중 테이블에 일괄 INSERT 시키기 입력할 기준 테이블 조회 SELECT * FROM tb_point order by point; CUSTOMER_CD 기준 2017 ~ 2019개의 27개 로우 년도별 분리할 테이블 생성 TB_POINT_2017; TB_POINT_2018; TB_POINT_2019; INSERT ALL WHEN SUBSTR(REG_DTTM, 1, 4) = '2017' THEN INTO TB_POINT_2017 WHEN SUBSTR(REG_DTTM, 1, 4) = '2018' THEN INTO TB_POINT_2018 WHEN SUBSTR(REG_DTTM, 1, 4) = '2019' THEN INTO TB_POINT_2019 ELSE INTO TB_POINT_2019 SELECT CUSTOMER_CD, SEQ_NO, POI.. 2021. 5. 8.
[Oracle / 오라클] CREATE / ALTER/ TRUNCATE / DROP/ VIEW CREATE AS SELECT 무결성 제약조건은 새로운 테이블에 전달되지 않으며, 열 데이터 유형의 정의만 전달됨 CREATE TABLE newemp AS SELECT empno no, ename name, sal * 2salary FROM emp WHERE sal > 2000; ALTER TABLE 테이블이름 [ADD 컬러명 데이터타입] -- ((ADDRESS VARCHAR2(20), TEL VARCHAR2(13)) [DROP COLUMN 컬럼명] -- [MODIFY 컬럼명 데이터타입] [MODIFY 컬럼명 [NULL | NOT NULL]] [ADD PRIMARY KEY(컬럼명)] [[ADD | DROP] 제약조건이름] TRUNCATE TABLE 모든 데이터 삭제 / 롤백불가 / 속도 빠름 / DELE.. 2021. 4. 26.
[Oracle/오라클] MERGE - 조건에 따른 UPDATE / INSERT MERGE - 조건에 따라 갱신(UPDATE)하거나 입력(INSESRT)을 수행 문법설명 출처 - https://goddaehee.tistory.com/70 [갓대희의 작은공간] MERGE INTO table_name alias -- (실제 데이터를 INSERT 또는 UPDATE할 테이블) USING (table | view | subquery) alias -- 실제 데이터를 조회할 대상 테이블(뷰, 서브쿼리) -- 대상 테이블이 없는 경우 DUAL 테이블 사용 ON (join condition) -- 조건절 (Where절) 이 조건에 의해 아래 MATCHED / NOT MATCHED 로 분기 WHEN MATCHED THEN -- ON 조건에 해당하는 데이터(레코드)가 존재한다면 UPDATE SET [c.. 2021. 4. 24.