본문 바로가기

Database5

MySql ON DUPLICATE KEY UPDATE 구문 MySql에서 데이터가 없으면 INSERT, 이미 데이터가 있으면 UPDATE*하나의 쿼리로 두 가지 경우를 해결할 수 있다.  ▷ 사용법 INSERT INTO [TABLE] ( [COLUMN1], [COLUMN2], [COLUMN3], [COLUMN4] ) VALUES ( [VALUES1], [VALUES2], [VALUES3], [VALUES4])ON DUPLICATE KEY UPDATE[COLUMN2] = [VALUES2],[COLUMN3] = [VALUES3],[COLUMN4] = [VALUES4];  ▷ Example /** 테스트 테이블 생성 */CREATE TABLE test( TEST_ID varchar(225) NOT NULL, TEST_NAME varchar(225) NOT.. 2023. 8. 2.
Mybatis Oracle BEGIN-END(PL/SQL) 한 번에 쿼리를 2개 이상 실행해야 하는 경우 사용*PL/SQL에 대한 설명은 간단히 하고, Mybatis에서 어떻게 사용했는지를 다룰 예정  ▷ PL/SQL(Oracle's Procedural Language extension to SQL)이란오라클에서 제공하는 SQL을 확장한 프로그래밍 언어(절차적 언어, 블록 언어)로 블록 구조를 가지고 있다.  ▷ PL/SQL 블록 구조 -- 전체가 하나의 블록이고 구성요소는 아래와 같다.DECLARE -- 선언부(옵션) -- 변수나 상수를 정의 BEGIN -- 실행부(필수, BEGIN-END) -- 로직 수행(일반 SQL문, 조건문, 반복문 등) EXCEPTION -- 예외처리부(옵션) -- 로직 수행중 에러 발생 시 예외 사항 처리 END;  ▷ PL/SQL.. 2021. 2. 4.
Mybatis foreach문(반복문/동적 SQL) List or Array 형태의 동적인 값을 반복 처리하기 위해 사용  ▷ 기본 형태 ...   ▷ 지원 태그태그 명태그 설명collection전달 받은 인자item전달 받은 인자 Alias(별명)open구문 시작 시 들어갈 문자열close구문 종료 시 들어갈 문자열separator매 반복 회차 종료 시 들어갈 문자열(반복 구분자)index반복 횟수  ▷ ExampleData[id:ST0001, name:홍일동, age:23][id:ST0002, name:홍이동, age:34][id:ST0003, name:홍삼동, age:15]  ▷ Example SELECT * FROM GRADES_TABLE WHERE STUDENT_ID IN .. 2021. 2. 4.
Mybatis Oracle Paging Query(더보기 기능) "더보기" 기능을 위해 페이징을 하는 경우 이와 같이 사용한다.*고정된 개수로 조회하는 페이징*자세한 설명 생략  ▷ 조회 범위 계산 int page = 1; // 현재 페이지 번호int size = 10; // 페이지당 조회 건수int offset = (page - 1) * size; // OFFSET 값int limit = size; // 조회할 건수 (LIMIT)  ▷ Example*Oracle에는 LIMIT 함수가 없다 따라서 ROWNUM을 이용해 동일한 결과를 추출*서브쿼리는 시간순으로 정렬한 후 행에 순번을 매기기 위해 사용*순번이 매겨진 전체 행에  RECORD_NUM부터 ROWNUM 건을 조회  SELECT * FROM ( .. 2021. 2. 3.
Mybatis Oracle MERGE INTO 구문 Oracle에서 데이터가 없으면 INSERT, 이미 데이터가 있으면 UPDATE*하나의 쿼리로 두 가지 경우를 해결할 수 있다.  ▷ 사용법 --쿼리 대상 [TABLE/VIEW]MERGE INTO [TABLE/VIEW] --비교대상 [TABLE/VIEW], DUAL은 위와 동일 할때 사용(쿼리 대상 [TABLE/VIEW]) USING [TABLE/VIEW/DUAL] ON ( -- 조건에 사용한 COLUMN은 UPDATE 불가 [조건] ) --조건 일치 시 UPDATE WHEN MATCHED THEN UPDATE SET [COLUMN1] = [VALUE1], [COLUMN2] = .. 2021. 1. 29.
728x90
728x90