데이터 변경
INSERT 구문
테이블에 하나 또는 여러개의 데이터 삽입
1) Single Line
테이블 하나에 Line을 삽입하기 위한 문장
INSERT INTO <target> VALUES <wa>. INSERT <target> FROM <wa>.
2) Several Line
인터널 테이블의 모든 값을 한 번에 테이블에 삽입
같은 KEY값을 INSERT하게 되면 error가 발생하는데 이를 방지하기 위해 ACCEPTING DUPLICATE KEYS 구문을 사용한다.
- 중복된 키가 입력된 값을 INSERT 하게 되면 신규행은 정상 입력 중복된 값을 미입력, INSERT 구문이 실패하면 SY-SUBRC 값 4를 반환
INSERT <target> FROM TABLE <itab> [ACCEPTING DUPLICATE KEYS].
UPDATE 구문
테이블 하나 또는 여러 line을 변경함
UPDATE INTO <target> <lines>.
1) Single Line
2) Several Lines
Work Area를 사용하는 것보다 UPDATE SET 구문을 이용해 개별 컬럼 값을 변경하는 것이 성능이 우수
UPDATE <target> SET <set 1> <set 2> WHERE <cond>
DELETE 구문
테이블 하나 또는 여러 line의 데이터를 삭제
1) Single Line
2) Several Lines
MODIFY 구문
UPDATE + INSERT 의 기능을 수행
키 값을 가지는 데이터가 테이블에 존재하면 UPDATE
존재하지 않으면 INSERT
1) Single Line
2) Several Lines
테이블의 데이터를 확인하는 방법
- SE11 : 테이블과 같은 오브젝트를 조회/수정/생성하는 용도
- 데이터 조회버튼을 클릭하면 SE16이 호출됨
- SE16 : 데이터를 조회하는 용도
둘 중 익숙한 트랜잭션을 사용하면 됨.
효율적인 SQL문 구문 작성
- 적중 리스트 최소화
- 결과 리스트가 최소화 되도록 WHERE 절을 구성
- 전송되는 데이터양의 최소화
- 결과로 나오는 데이터양을 최소화 하여 전송 ( UP TO ~ROWS 와 같이 )
- LOOP에 소요되는 비용 최소화
- Nested SELECT 구문 피하기
- 검색 비용의 최소화
- index를 활용하고
- OR 구문 피하기
- AND와 EQ 구문으로 쿼리 구성
- 데이터베이스의 부담 제거
- ORDER BY 보다는 SORT 사용
- 인덱스에 사용된 필드 모두 기술
- 인덱스에 사용된 모든 필드는 될 수 있으면 모두 기술하기
- RANGE 변수를 적극 활용하기
- 가급적 Application Server에서 실행
- ORDER BY는 데이터베이스에서 수행
- ORDER BY는 Application Server에서 실행
'SAP > Easy ABAP' 카테고리의 다른 글
Ch 04 Modularization (0) | 2021.01.26 |
---|---|
Ch 03 OPEN SQL & NATIVE SQL - 3 (0) | 2021.01.18 |
Ch 03 OPEN SQL & NATIVE SQL - 1 (0) | 2021.01.12 |
Ch 02 Data Type - 2 (0) | 2021.01.08 |
Ch 02 Data Type - 1 (0) | 2021.01.07 |