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;