본문 바로가기

ABAP 프로그래밍 개념/OPEN SQL

1.Introduction to Open SQL Statements

SAP는 Oracle, Microsoft SQL 및 SAP HANA와 같은 다른 관계형 데이터베이스 관리 시스템(RDBMS)을 지원합니다. Structured Qeury Language(SQL)는 RDBMS에서 데이터 작업을 위해 설계된 프로그래밍 언어입니다.

ABA은 두 종류의 SQL을 지원합니다.

1) Open SQL
-> Open SQL을 사용하면 SAP ERP 시스템이 사용하는 기본 데이터베이스(Underlying Database)와는 독립적으로 데이터베이스 테이블에 액세스하고 일부 동작을 수행할 수 있습니다. Open SQL 문을 실행할 때 작업 프로세스(Work Process)의 데이터베이스 인터페이스(Database Interface)가 Open SQL 문을 기본 데이터베이스에 맞는 Native SQL 문으로 변환합니다. 이를 통해 ABAP 코드가 유동성있게 실행 가능하며 기기본 데이터베이스(Underlying Database)와 관계없이 작동하는 것이 보장됩니다.

2) Native SQL
-> Native SQL은 ABAP 프로그램에서 데이터베이스별(Database-Specific) SQL 문을 사용할 수 있습니다. Native SQL 문을 사용하면 ABAP Data Dictionary의 일부가 아닌 데이터베이스 테이블을 사용할 수 있습니다. 이를 통해 SAP ERP 시스템의 일부가 아닌 데이터를 통합할 수 있습니다. ABAP 프로그램에서 Native SQL 문을 사용하려면 문 앞에 EXEC SQL 키워드를 붙이고 ENDEXEC 문으로 마감합니다.

예를 들어:
EXEC SQL.
<native sql statement>.
ENDEXEC. 

처럼 사용하면 됩니다.

SQL 구문은 아래과 같이 분류됩니다.

1) Data Definition Language(DDL) : DDL 문은 데이터베이스 구조 또는 스키마를 정의하는 데 사용됩니다. DDL 문을 사용하여 테이블을 생성하거나 삭제하고 데이터베이스 테이블의 구조를 변경하는 등의 작업을 수행할 수 있습니다.
-> CREATE : Database에 Object를 생성합니다
-> ALTER : Database의 구조를 변경합니다
-> DROP : Database의 Object를 삭제합니다
-> TRUNCATE : Table의 모든 레코드를  포함한 공간을 삭제합니다.
-> RENAME : Object의 이름을 다시 짓습니다.

2) Data Manipulation Language(DML) : DML 문은 스키마 객체(Schma Object) 내에서 데이터를 관리합니다. DML 문을 사용하여 데이터베이스 스키마를 변경할 수는 없지만 데이터를 조작할 수 있습니다. 예를 들어 데이터베이스 테이블에서 데이터를 가져오고 데이터베이스 테이블의 레코드를 수정하거나 삭제하는 등의 작업을 수행할 수 있습니다.
-> SELECT : 데이터베이스에서 데이터를 검색(Retrieve)합니다
-> INSERT : 데이터베이스테이블에 데이터를 삽입합니다
-> UPDATE : 데이터베이스 테이블에 존재하는 데이터의 값을 바꿉니다
-> DELETE : 테이블에서 모든 레코드를 삭제하지만 레코드를 위한 공간은 그대로 유지합니다.

DML 문은 Open SQL을 사용하여 사용할 수 있으며, DDL 문은 Native SQL을 사용하여 사용할 수 있습니다. 하지만 일반적으로 DDL 문과 Native SQL을 사용하여 수행해야 하는 작업에는 코딩을 통해서 작업하기 보대는 ABAP Data Dictionary(T-CODE : SE11)을 사용합니다.

반응형

'ABAP 프로그래밍 개념 > OPEN SQL' 카테고리의 다른 글

2.4 Relationship  (2) 2023.05.03
2.3 Foreign Keys and Domains  (0) 2023.05.03
2.2 Tables and Keys  (0) 2023.05.02
2.1 Relational Database Design  (0) 2023.05.02
2. Database Overview  (0) 2023.05.02