SQL ์ ์
SQL์ด๋ Structured Query Language์ ์ฝ์์ ๋๋ค.
SQL์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ๋๋ ํ์คํ๋ ์ธ์ด์ ๋๋ค.
์๋ ํ์ ๊ฐ์ด ํฌ๊ฒ 3๊ฐ์ง๋ก ๊ตฌ๋ถ๋๋ฉฐ, ABAP ํ๋ก๊ทธ๋จ์ OPEN SQL์์๋ DML์ธ์ด๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
Data Manipulation Language (DML) |
๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ธ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค(ํ ์ด๋ธ)์ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์, ์ฝ์ , ์ญ์ , ๊ฐฑ์ ์ฌ๊ตฌ์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ธ์ด์ด๋ค. |
Data Definition Language (DDL) |
๋ฐ์ดํฐ ์ ์ ์ธ์ด ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ๊ฐ์ ๋ฐ์ดํฐ ์๊ตฌ๋ฅผ ํํํ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ๊ธฐ์ ํ๊ธฐ ์ํ ์ธ์ด๋ก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ธ์ด์ด๋ค. |
Data Control Language (DCL) |
๋ฐ์ดํฐ ์ ์ด ์ธ์ด ๋ฌด๊ฒฐ์ฑ, ๋ณด์ ๋ฐ ๊ถํ ์ ์ด, ํ๋ณต ๋ฑ์ ํ๊ธฐ ์ํ ์ธ์ด๋ก์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ ๊ด๋ฆฌํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. |
SQL์ ์ข ๋ฅ
SQL์๋ OPEN SQL๊ณผ NATIVE SQL ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
OPEN SQL | OPEN SQL์ ABAP ์ธ์ด์์๋ง ์ฌ์ฉ๋๋ฉฐ Database Interface๋ฅผ ํตํด NATIVE SQL๋ก ๋ฒ์ญ๋ฉ๋๋ค. |
NATIVE SQL | NATIVE SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ๋๋ SQL์ธ์ด์ ๋๋ค. |
OPEN SQL์ด๋?
OPEN SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ ์ ์๋ ABAP ๋ช ๋ น์ด๋ก ๊ตฌ์ฑ๋์ด ์๊ณ , ์๋ก ๋ค๋ฅธ DBMS(Database Management System) ํ๊ฒฝ-์ค๋ผํด, MS SQL๊ณผ ๊ฐ์ DB-์์๋ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
OPEN SQL์ DDL, DCL์ ์ฌ์ฉํ ์ ์๊ณ , SELECT๋ฌธ๊ณผ ๊ฐ์ DML๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
Local Buffer๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, NATIVE SQL๋ณด๋ค ์ฌ์ฉ ๋ฐฉ๋ฒ์ด ๊ฐ๋จํฉ๋๋ค.
ABAP ํ๋ก๊ทธ๋จ์ ํ์ฑํํ ๋ ์๋์ผ๋ก Syntax Check๊ฐ ์ํ๋๋ค๋ ํน์ง์ด ์์ต๋๋ค.
Local Buffer๋?
'Local Buffer'๋ฅผ ์ฌ์ฉํ๋ฉด ์ต์ด๋ก DB์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ํด๋น ๋ฐ์ดํฐ๋ฅผ 'Local Buffer'์ ๋ณต์ฌํด๋๊ณ ,
๋ค์์ ๋ค์ ํด๋น ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ฉด DB์์ ๋ค์ ์ฐพ๋ ๊ฒ ์๋๋ผ ๋ฒํผ์์ ์ฐ์ ์ ๊ทผํจ์ผ๋ก์จ ์ฒ๋ฆฌ ์๋๋ฅผ ์ค์ด๋ ๊ธฐ์ ์ ๋๋ค.
Syntax Check๋?
itab ๋ด์ฉ์ ๋ํ ๊ตฌ๋ฌธ ๊ฒ์ฌ ์คํ์ ๋งํฉ๋๋ค.
๋ชจ๋ OPEN SQL์ ์ํ ๊ฒฐ๊ณผ๊ฐ ์ฑ๊ณตํ๋ฉด ์์คํ ๋ณ์ SY-SUBRC = 0์(์ฑ๊ณตํ์ง ๋ชปํ๋ฉด 0 ์ด์ธ์ ๊ฐ์ ๋ฐํ), SY-DBCNT๋ ๋ฐ์ดํฐ LINE ์๋ฅผ ๋ฐํํฉ๋๋ค.
OPEN SQL ๋ช ๋ น์ด
Keyword | ๊ธฐ๋ฅ |
SELECT | ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ |
INSERT | ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํจ |
UPDATE | ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๊ฐ์ ๋ณ๊ฒฝํจ |
MODIFY | INSERT + UPDATE์ ๊ธฐ๋ฅ์ ์ํํจ UPDATE: ๋์ผํ ํค๊ฐ์ด ์๋ ๊ฒฝ์ฐ INSERT: ๋์ผํ ํท๊ฐ์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ |
DELETE | ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๊ฐ์ ์ญ์ |
NATIVE SQL์ด๋?
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ ์ํ์ฌ DML, DDL ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- DDL: ํ ์ด๋ธ์ ์์ฑํ๊ณ (CREATE), ๋ณ๊ฒฝ(MODIFY)ํ ์ ์์ต๋๋ค.
OPEN SQL์ Command Set(SELECT, UPDATE, DELETE ๋ฑ)์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
OPEN SQL๋ก ํด๊ฒฐ์ด ๋์ง ์๋ ๋ณต์กํ SQL์ NATIVE SQL์ ์ด์ฉํ ์ ์์ต๋๋ค.
SQL๊ณผ Local Buffer
SAP Local Buffer๋ R/3 Architecture์์ ์ง์ํ๋ ๊ธฐ์ ๋ก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถํ๋ฅผ ์ค์ด๋ ์ค์ํ ์ญํ ์ ๋ด๋นํฉ๋๋ค.
๋จ, ํ ์ด๋ธ์ Technical Setting์์ Buffer๋ฅผ ์ฌ์ฉํ๋ค๊ณ ์ค์ ํด์ผํฉ๋๋ค.
์๋ ์์ ์์
SELECT * FROM marc WHERE werks = '1101'
IF SY-SUBRC EQ 0.
WRITE marc.
EXIT.
ENDIF.
ENDSELECT.
- MARC ํ ์ด๋ธ์์ WERKS='1101'์ธ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ SQL์ ์คํํฉ๋๋ค.
- DB Interface์์ NATIVE SQL๋ก ํด์ํ์ฌ ํ ์ด๋ธ MARC์์ WERKS ํ๋๊ฐ '1101'์ธ ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค.
- MARC ํ ์ด๋ธ์๋๋ WERKS='1101'์ธ Row๋ 3๊ฑด์ด๋ฉฐ ํด๋น ๋ฐ์ดํฐ๋ Local Buffer์ ์ ์ฅ๋ฉ๋๋ค.
- MARC ํ ์ด๋ธ์๋ WERKS='1101'์ธ Row๋ 3๊ฑด์ด๋ฉฐ ํด๋น ๋ฐ์ดํฐ๋ Local Buffer์ EXITํ๊ฒ ๋์ด, ํ๋ก๊ทธ๋จ์ด Displayํ๋ ๊ฐ์ '1101'์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด ๋ฉ๋๋ค.
- ๋ค์ ํด๋น SQL์ ์คํํ๋ฉด, Local Buffer์ WERKS='1101'์ธ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ์ง ์๊ณ , ๋ฐ๋ก Local Buffer์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
์ฐธ๊ณ
EASY ABAP 2.0 ๋์ ์ฐธ๊ณ
'๐งโ๐ผ SAP > ABAP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SAP ABAP] IS INITIAL๊ณผ IS NOT INITIAL์ด๋? (์์ ํฌํจ) (0) | 2023.12.01 |
---|---|
[SAP ABAP] OPEN SQL ๋ฐ์ดํฐ ์ฝ๋ ๋ฐฉ๋ฒ(SELECT, INTO, FROM ๋ฑ๋ฑ) (0) | 2023.11.03 |
[SAP ABAP] SELECT SINGLE ์ด๋ (0) | 2023.11.03 |
[SAP ABAP] MODIFY ๋? (1) | 2023.10.05 |
[SAP ABAP] TYPE๊ณผ LIKE ์ฐจ์ด (0) | 2023.10.04 |