본문 바로가기

전체 글59

[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.
[PHP] foreach 결과 2021. 5. 29.
[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.
[Oracle/ 오라클] 서브쿼리를 이용한 INSERT, UPDATE, DELETE 서브쿼리를 이용한 INSERT 다른 테이블 SELECT하여 INSERT 방법 - 열개수가 일치해야 함 INSERT 대상 테이블의 칼럼명과, SELECT 테이블 칼럼명이 달라도 가능 INSERT INTO SAWON SELECT EMPNO, ENAME, SAL*2 FROM EMP WHERE DEPTNO =10; 서브쿼리를 이용한 UPDATE UPDATE emp SET JOB = (SELECT JOB FROM emp WHERE empno=7499), deptno = (SELECT deptno FROM dept WHERE dname = 'SALES') WHERE empno in (7369, 7782, 7788); 서브쿼리를 이용한 DELETE DELETE emp WHERE deptno = (SELECT dept.. 2021. 4. 24.
[Oracle] 오라클 스칼라 서브쿼리, 상호연관 서브쿼리, EXISTS 스칼라 서브쿼리 - 반환값이 단일 값이 되는 서브쿼리 SELECT, ORDER BY 위치에는 스칼라 서브쿼리만 사용이 가능함 SELECT 절에서 서브 SELECT로 조회 할경우 컬럼 1개, 로우1개 만 나와야 한다 상호 연관 서브쿼리 - 메인(바깥쪽) 쿼리의 한 ROW에 대해ㅓ 서브쿼리가 한번씩 실행 - 테이블에서 행을 먼저 읽고 각 행의 값을 서브쿼리 실행 시용 - 서브쿼리에서 메인 쿼리의 컬럼명을 사용할 수 있으나, 메인쿼리에서는 서브쿼리의 컬럼명을 사용할 수 없음 1) DEPTNO에 맞는 DNAME A1으로 조회 하고자 하는 경우 SELECT ENAME, SAL, DEPTNO, (SELECT DNAME FROM DEPT WHERE DEPTNO=A.DEPTNO) A1 FROM EMP A; 2) 부서별.. 2021. 4. 21.
[Oracle/오라클] 서브쿼리 - 서브쿼리를 괄호로 묶어야 함 - 일반적인 서브쿼리(Top-N 분석 제외) 에서는 ORDER BY절 X - FROM 절에서만 ORDER BY 가능 - 단일 비교 연산자(=, >, (SELECT sal FROM emp WHERE ename = 'JONES'); 2) K02팀 평균 키보다 큰 선수는 몇 명인가? select count.. 2021. 4. 18.
[Oracle] 집합연산자 (SET) - INTERSECT, MINUS, UNION SET 연산자는 마지막에 실행 SET 연산자가 포함하는 질의를 복합 질의라고 함 SET 연산자는 서브쿼리에서도 사용 됨 ( ) 가 없을 경우, SQL문장에서 순선대로 실행, 명시적 표현을 위해 ( ) 사용 권함 조회하는 테이블의 SELECT 컬럼수가 맞아야 함 - 컬럼수가 맞추기 어려운경우, 컬렴에 NULL 을 추가 - 칼럼 1, 칼럼 2, 칼럼 3 = NULL, 칼럼 1, 칼럼 2 ORDER BY 절에서 사용되는 칼럼은 첫번째 SELECT 목록에 있어야 함 조회 테이블 기본정보 조회 -- 테이블 조회 Select D.Deptno D, E.Deptno E From Dept D Full Join Emp E On D.Deptno = E.Deptno Group By D.Deptno, E.Deptno Order.. 2021. 4. 18.