< Q_08_01. SQL 이란 무엇인가?
본문 바로가기
SAS연습200제/SASSQL

Q_08_01. SQL 이란 무엇인가?

by sas 2025. 3. 28.

SQL(Structured Query Language)은 관계형 데이터베이스의 테이블(Table)을 정의하고(define), 조작하고(manipulate), 질의(query)를 하는 데 사용되는 표준화된 언어입니다. 테이블을 정의하고, 테이블에 레코드를 추가하고, 추출하고, 갱신하는 데 사용됩니다.
SAS에서는 PROC SQL을 이용하여 여러 가지 데이터를 다루는데 유용하게 사용할 수 있습니다. SET문, MERGE문을 이용하여도 거의 모든 문제를 해결할 수 있으나 가끔 DATA 스텝 기능만으로 해결하기 어려운 일이 있고, 데이터베이스와 연동하여 작업을 하는 경우에는 PROC SQL의 기능을 이용하면 훨씬 편리하게 사용할 수 있습니다. SAS의 기능을 잘 몰라도 PROC SQL 만을 잘 사용하면 데이터 처리를 쉽게 처리할 수 있습니다.
보통 데이터베이스는 대용량이고, 그리고 각 데이터베이스 내에는 수많은 테이블들이 있습니다. 그리고 이들 테이블들도 독립적으로 따로 사용되는 것이 아니고 서로 연관되어 있는 경우가 많이 있습니다.
SAS에서는 “데이터터셋”, SQL에서는 “테이블(Table)”이라고 부릅니다. 그리하여 SAS/SQL을 이용하여 “테이블을 다룬다”는 말은 “SAS 데이터셋을 다룬다”는 것과 같습니다. SAS의 일반적인 PROC 과는 달리 PROC SQL 문에서는 명령문의 순서가 영향을 미치는 경우가 있습니다.

PROC SQL;
  SELECT 컬럼명1, 컬러명2, ...
   FROM  테이블명 (또는 VIEW 명)
    WHERE 조건식
     ORDER BY 컬럼명
      GROUP BY 컬럼명
     /*-----------------------------------------*/                           
     /* PROC SQL 을 이용하여 그룹별 평균값 구하기  */                           
     /*-----------------------------------------*/                           
     DATA a1;INPUT comp $ gender $ hei wei;                                     
     CARDS;                                                                     
     A001 F  162  58                                                            
     A002 F  164  60                                                            
     A003 M  166  64                                                            
     A001 M  168  66                                                            
     A001 F  170  64                                                            
     A002 F  172  67                                                            
     A003 M  174  72                                                            
     A003 M  176  76                                                            
     A002 M  178  74                                                            
     A001 M  180  82                                                            
     ;                                                                          
     SELECT comp, gender, hei FROM a1 WHERE wei> 60 
           ORDER BY comp;                                                           
     SELECT gender, MEAN(hei) as m_hei FROM a1 WHERE wei> 60 
           GROUP BY gender;                                                           
     QUIT;