BookmarkSubscribeRSS Feed

[SQL 7-1] 테이블 생성하기(Creating Tables with the SQL Procedure)

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 404

[SQL 7-1] 테이블 생성하기(Creating Tables with the SQL Procedure)

 

안녕하세요​ ^^

이번 시간에는 SQL Procedure를 사용하여 테이블(Table)을 생성하는 방법에 대해 공부해보겠습니다.

 

 

이번 시간의 목표는 다음 네 가지입니다.

  1.  하나의 쿼리를 사용하여 새로운 data를 생성하고 데이터를 추가할 수 있다.
  2.  존재하는 테이블의 컬럼 구조를 복제하여 새로운 빈(empty) 테이블을 생성할 수 있다.
  3.  컬럼 구조를 정의함으로써 새로운 빈(empty) 테이블을 생성할 수 있다.
  4.  테이블에 데이터를 추가할 수 있다.

 

 

 

 

▶ PROC SQL에서는 새로운 테이블을 생성하기 위한 세 가지 방법이 있습니다.

 

▷ 방법 1 : 존재하는 테이블로부터 컬럼과 행을 그대로 복제하는 방법

 

SE22017011712202470.jpg

 

▷ 방법 2 : 존재하는 테이블로부터 컬럼만을(행은 제외함복제하는 방법

 

SE22017011712204370.jpg

 

▷ 방법 3 : SQL 프로그램에서 컬럼만을 정의하는 방법

 

SE22017011712210370.jpg

 

위 세 방법들을 하나씩 살펴보겠습니다.

 

 

 방법 1 : 존재하는 테이블로부터 컬럼과 행을 그대로 복제하는 방법

▷ 이 방법은 직책에 따라 직원들의 생일을 알고 싶을 때 사용할 수 있습니다.

각 직원이 몇 월에 태어났는지에 대한 테이블을 생성하는 코드를 작성해보겠습니다.

 

SE22017011712212970.jpg

 

 먼저 아래에서 확인할 수 있듯이 존재하는 테이블은 우리가 필요한 Job_title(직위)변수와 Birth_Date(생년월일)변수를 포함하고 있습니다.

 

SE22017011712221570.jpg

  

SE22017011712224570.jpg

 

 

테이블을 생성하기 위한 SQL 프로시저 형식은 다음과 같습니다.

 

SE22017011712231770.jpg

 

 

그럼 SQL 프로시저를 사용하여 직원들의 직위와 태어난 달을 포함하는 테이블을 생성해보겠습니다.

 

SE22017011712233670.jpg

  

SE22017011712234870.jpg

  

SE22017011712243970.jpg

 

결과를 보면 2개 변수와 9건의 자료를 갖는 테이블이 생성된 것을 알 수 있으며, 로그창에서도 이를 확인할 수 있습니다.

 

 

이렇게 생성한 새로운 테이블의 정보를 확인하는 절차를 진행하겠습니다.

 

SE22017011712255170.jpg

  

SE22017011712253570.jpg

 

DESCRIBE statement는 SAS log에서 테이블에 대한 정보를 보여주며, SELECT statement는 테이블의 속성을 리포트(output)으로 보여줍니다

(Base SAS procedures에서, DESCRIBE statement는 PROC CONTENTS와, SELECT statement는 PROC PRINT와 유사한 결과를 생성합니다.)

 

 

 

 방법 2 : 존재하는 테이블로부터 컬럼만을(행은 제외함) 복제하는 방법

▷ 이 방법은 판매 테이블(orion.sales)와 같은 구조로 되어있는 새로운 판매 스태프에 대한 테이블을 생성하는 경우 사용할 수 있습니다.

방법 2는 방법 1과는 달리 기존 테이블의 (자료는 제외하고)구조만을 복제하여 가져오는 것입니다.

LIKE 절을 사용하여 존재하는 테이블의 구조를 복제할 수 있습니다.

 

 

SE22017011712262370.jpg

 

 기존 테이블에서 구조를 복제하여 테이블을 생성하는 프로그램 형식은 다음과 같습니다

 

SE22017011712263970.jpg

 

 

 Create table statement like 절을 사용하여 orion 라이브러리에 있는 sales 테이블의 구조를 복제해보겠습니다.

 

SE22017011712270770.jpg

  

SE22017011712271770.jpg

 

로그창을 보면, 행은 가져오지 않고 오직 변수(컬럼)만을 가져온 것을 확인할 수 있습니다.

 

 

 방법 3 : SQL 프로그램에서 컬럼만을 정의하는 방법

▷ 이 방법은 할인(discount) 정보를 포함하는 새로운 테이블을 생성하고자 할 때 상용하는 방법입니다.

이 때 기존 테이블에 필요한 변수가 없을 때에도 원하는 구조의 테이블을 생성할 수 있습니다.

 

SE22017011712275870.jpg

 

CREATE TABLE statement에서 컬럼을 정의하는 프로그램 형식은 다음과 같습니다.

 

SE22017011712281970.jpg

 

CREATE TABLE statement을 사용하여 테이블 구조를 생성해보겠습니다.

 

SE22017011712283870.jpg

 

SE22017011712284970.jpg

 

프로그램을 보면, 테이블 정의는 괄호로 에워싸져 있고 개개별 컬럼의 정의는 ,(comma)로 구별되어있는 것을 볼 수 있습니다.

 

 ANSI(American National Standards Institute) 호환의 경우, PROC SQL은 테이블 정의에서 다음 데이터 형식을 허용합니다.

 

SE22017011712291970.jpg

 

▷ 테이블을 생성하는 세 가지 방법에 대한 정리표입니다.

 

SE22017011712293770.jpg

 

 

 

 앞서 새로운 테이블을 생성해보았습니다. 다음으로는 이렇게 생성한 테이블에 데이터를 쌓는 방법에 대해 살펴보겠습니다.

▷ 우리는 새로운 테이블을 생성하는 방법 3에서 discounts 테이블을 생성하였었습니다.

이 테이블은 컬럼은 존재하지만 자료는 없는 빈 테이블입니다.

따라서 빈 테이블에 자료를 추가하는 방법들을 배워보도록 하겠습니다.

 

SE22017011712302070.jpg

 

테이블에 자료를 추가하기 위한 방법은 세 가지(A, B, C)가 있는데이 중 적절한 방법을 선택하여 사용할 수 있어야 합니다.

INSERT statement는 이 세 가지 방법을 사용하여 빈(empty) 테이블에 자료를 추가하거나 이미 자료가 포함되어 있는 테이블에 자료를 추가할 수 있습니다.

 

SE22017011712310770.jpg

 

 

▷ 방법 A : 열 - 값 쌍을 사용하는 행당 하나의 절

SET 절은 컬럼 이름값 쌍을 사용하여 자료를 추가하며 프로그램 형식은 다음과 같습니다.

 

SE22017011712314070.jpg

 

아래 프로그램을 보면 SET 절을 사용하여 4개의 변수(Product_ID, Start_Date, End_Date, Discount)의 값들을 하나의 쌍으로 지정한 것을 확인할 수 있습니다.

 

SE22017011712315970.jpg

 

여기서는 SET 절이 두 번 사용되어 총 2 행의 자료가 추가될 것입니다.         

 

 

▷ 방법 B : 위치 값을 사용하는 행당 하나의 절

VALUES 절은 데이터의 단일 행에 있는 열에 데이터를 추가하며 프로그램 형식은 다음과 같습니다.

 

SE22017011712324270.jpg

 

주의할 점은, VALUES 절은 열이 테이블에 정의 된 순서와 동일한 순서로 값을 나열해야 한다는 점입니다.

 

SE22017011712325670.jpg

 

방법 A와 같이 2개의 행이 추가될 것입니다.

 

또한 INSERT 문은 VALUES 절이 데이터를 제공하는 순서대로 데이터가 삽입 될 열을 나열 할 수도 있습니다.

 

SE22017011712331370.jpg

 

컬럼 목록의 순서는 테이블의 컬럼 순서와 관계가 없습니다.

 

 

 

▷ 방법 C : 위치 값을 기반으로 여러 행을 반환하는 쿼리

쿼리에서 반환 한 행은 테이블에 삽입되며, 테이블에 기존 행이 있으면 새 행이 추가됩니다.

빈(empty) 테이블 혹은 자료가 있는 테이블에 위치값을 기반으로 행을 추가하는 프로그램 형식은 다음과 같습니다.

 

SE22017011712334070.jpg

 

쿼리는 INSERT statement의 열 목록과 같은 순서로 값을 나열해야 합니다.

 

SE22017011712335470.jpg

  

INSERT statement의 열 목록 Product_ID, Discount, Start_Date, End_Date에 맞추어 SELECT statement에 값을 지정한 것을 확인할 수 있습니다.

 

 

 

 

이상 SQL Procedure를 사용하여 테이블을 생성하고 자료를 추가하는 방법에 대해 살펴보았습니다.

 

감사합니다 ^^

 

Version history
Last update:
‎06-17-2020 12:52 AM
Updated by:
Contributors

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Article Labels
Article Tags