목록SQL (5)
차차로그
--로그 PRINT('로그 1 >>>>>>>>>'); --날짜변환포맷 (https://oppr123.tistory.com/16)SELECT CONVERT(CHAR(8), GETDATE(), 11); -- YY/MM/DD SELECT CONVERT(CHAR(6), GETDATE(), 12); -- YYMMDD SELECT CONVERT(CHAR(10), GETDATE(), 23); -- YYYY-MM-DD SELECT CONVERT(CHAR(10), GETDATE(), 111); -- YYYY/MM/DD SELECT CONVERT(CHAR(8), GETDATE(), 112); -- YYYYMMDD --NVL처리 SELECT ISNULL(:COL, 'NVL처리'); --DECODE/NVL2처리 S..
PL/SQL (PROCEDURE LANGUAGE EXTENSION TO SQL) 오라클 자체에 내장된 절차적 언어 SQL의 단점을 보완하여 SQL 문장 내에서 변수의 정의, 조건처리, 반복처리, 예외처리 등을 지원한다. - SQL의 단점 > 변수가 없음 > 한 번에 하나의 명령문만 사용이 가능해서 트래픽이 증가 > 제어문 사용이 불가 > 예외처리가 없음 PL/SQL의 특징 블록단위의 실행을 제공. 이를 위해 BEGIN, END를 사용한다. 변수, 상수 등을 선언해 SQL와 절차형 언어에서 사용한다. IF문, LOOP문 사용이 가능하다. CURSOR를 사용해 여러 행을 검색 및 처리할 수 있다. PL/SQL에서 사용 가능한 SQL은 쿼리, DML, TCL PL/SQL의 장점 BLOCK 구조로 다수의 SQL..
처음 SQL을 배웠을 때 MERGE 라는 개념이 너무 헷갈리고 어려웠다. 문법도 기존에 사용하던 것과 다르고 복잡해서 잘 안 썼는데 실무에서는 자주 쓰게 된 MERGE 구문 MERGE를 사용하면 하나의 쿼리문에서 UPDATE, INSERT, DELETE를 사용할 수 있어 간단하다 MERGE INTO 문법 MERGE INTO T_TARGET T -- 타겟테이블/뷰 USING T_SOURCE S -- 소스테이블/뷰/서브쿼리 ON (T.ID = S.ID) -- 타겟과 소스의 MATCH를 확인하는 조건 WHEN MATCHED THEN -- 일치하는 경우 UPDATE SET T.NAME = S.NAME WHEN NOT MATCHED THEN -- 일치하지 않는 경우 INSERT(T.ID, T.NAME) VALUE..

함수와 프로시저의 가장 큰 차이는 결과값을 반환하는지 아닌지의 차이다. 함수는 특정 연산을 수행하고 결과값을 반환하지만 프로시저는 특정 로직만 처리한다 (그런데 사실 프로시저도 OUT으로 결과를 반환할 수 있다.. 그러면 차이가 없는 거 아닌가?) 프로시저는 데이터를 추출해서 조작 후 그 결과를 다른 테이블에 저장하거나 갱신하는 것처럼 연속적인 처리를 할 때 자주 사용된다. CREATE OR REPLACE PROCEDURE 프로시저 이름 ( 매개변수명 [IN|OUT|IN OUT] 데이터타입 [:=디폴트값] ) IS[AS] 프로시저 내에서 사용할 변수/상수 선언 BEGIN 실행할 쿼리 [EXCEPTION 예외 처리] END [프로시저 이름]; 프로시저의 생성 구문 매개변수를 작성할 때 IN은 생략이 가능하..
DDL (Data Definition Language) : 데이터 정의어. 데이터 구조(테이블)과 관련된 명령어들 CREATE CREATE TABLE TABLE_NM ( NAME VARCHAR2(10) PRIMARY KEY, AGE NUMBER (CONSTRAINT NN_AGE) NOT NULL, STATUS VARCHAR2(1), (CONSTRAINT CK_STATUS) CHECK(STATUS IN ('Y', 'N')); ); --주석 COMMENT ON COLUMN TABLE_NM.NAME IS '이름'; --다른 테이블의 구조와 데이터를 그대로 복사해 새 테이블 생성이 가능하다. CREATE TABLE EMP_DEPT_D1 AS SELECT EMP_ID, EMP_NAME, DEPT_CODE, HIR..