Sas-sql
SAS-SQL
SASは、SASプログラム内でSQLクエリを使用することにより、一般的なリレーショナルデータベースのほとんどを広範囲にサポートしています。 ほとんどの ANSI SQL 構文がサポートされています。 プロシージャー PROC SQL は、SQLステートメントの処理に使用されます。 このプロシージャは、SQLクエリの結果を返すだけでなく、SASテーブルと変数を作成することもできます。 これらすべてのシナリオの例を以下に説明します。
構文
SASでPROC SQLを使用するための基本的な構文は次のとおりです-
PROC SQL;
SELECT Columns
FROM TABLE
WHERE Columns
GROUP BY Columns
;
QUIT;
以下は、使用されるパラメータの説明です-
- SQLクエリはPROC SQLステートメントの下に記述され、その後にQUITステートメントが続きます。
以下では、このSASプロシージャをSQLの CRUD (作成、読み取り、更新、削除)操作に使用する方法を説明します。
SQL作成操作
SQLを使用して、生データから新しいデータセットを作成できます。 以下の例では、まず、生データを含むTEMPという名前のデータセットを宣言します。 次に、このデータセットの変数からテーブルを作成するSQLクエリを作成します。
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES AS
SELECT * FROM TEMP;
QUIT;
PROC PRINT data = EMPLOYEES;
RUN;
上記のコードが実行されると、次の結果が得られます-
SQL読み取り操作
SQLの読み取り操作には、テーブルからデータを読み取るSQL SELECTクエリの作成が含まれます。 以下のプログラムでは、ライブラリSASHELPで利用可能なCARSという名前のSASデータセットを照会します。 クエリは、データセットの列の一部をフェッチします。
PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM
SASHELP.CARS
;
QUIT;
上記のコードが実行されると、次の結果が得られます-
WHERE句を使用したSQL SELECT
以下のプログラムは、 where 句を使用してCARSデータセットを照会します。 結果では、「Audi」として行われ、「Sports」として入力された観測のみが取得されます。
PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM
SASHELP.CARS
Where make = 'Audi'
and Type = 'Sports'
;
QUIT;
上記のコードが実行されると、次の結果が得られます-
SQL UPDATE操作
SQL Updateステートメントを使用してSASテーブルを更新できます。 以下では、まずEMPLOYEES2という名前の新しいテーブルを作成し、次にSQL UPDATEステートメントを使用して更新します。
DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES2 AS
SELECT ID as EMPID,
Name as EMPNAME ,
SALARY as SALARY,
DEPARTMENT as DEPT,
SALARY*0.23 as COMMISION
FROM TEMP;
QUIT;
PROC SQL;
UPDATE EMPLOYEES2
SET SALARY = SALARY*1.25;
QUIT;
PROC PRINT data = EMPLOYEES2;
RUN;
上記のコードが実行されると、次の結果が得られます-
SQL DELETE操作
SQLの削除操作では、SQL DELETEステートメントを使用してテーブルから特定の値を削除する必要があります。 上記の例のデータを引き続き使用し、従業員の給与が900を超える行をテーブルから削除します。
PROC SQL;
DELETE FROM EMPLOYEES2
WHERE SALARY > 900;
QUIT;
PROC PRINT data = EMPLOYEES2;
RUN;
上記のコードが実行されると、次の結果が得られます-