こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
こんな方におすすめ!
- SASプログラムの開発環境でSQLを実行する方法が知りたい。
- SQLを用いてテーブルのCRUD操作を実施する方法が知りたい。
目次
【SAS実践】SQLを用いたテーブルのCRUD操作
SAS環境にSQLを記述し、テーブルの作成・読込・更新・削除する方法についてそれぞれ解説します。
テーブル作成
SASプログラムを用いてテーブルを作成する場合、次のようなコードを記述します。
コード
/* テーブル作成 */
PROC SQL;
CREATE TABLE test_db (
id CHAR(4),
product VARCHAR(20),
price NUMERIC,
store VARCHAR(20),
date DATE
);
QUIT;
出力イメージ
id product price store date
【参考】様々なテーブルの作成方法
SAS言語を用いてテーブルを作成する際、様々な記述方法があります。詳しく知りたい方向けに以下の記事もご紹介します。
テーブル更新|レコード挿入
前述で作成したテーブルに対してレコードを挿入する場合、次のようなコードを記述します。
挿入方法(1)テーブル形式で挿入
コード
/* 挿入用データ作成 */
DATA test_db2;
INPUT id$ product$ price store$ date date9.;
DATALINES;
1000 apple 100 TOKYO 4Mar1985
1001 orange 250 TOKYO 4Mar1985
1002 lemon 300 OSAKA 4Mar1985
1003 grape 400 OSAKA 4Mar1985
1004 banana 300 FUKUOKA 4Mar1985
1005 peach 900 FUKUOKA 4Mar1985
;
RUN;
/* SQL操作 */
PROC SQL;
INSERT INTO test_db SELECT * FROM test_db2; /* テーブル挿入 */
SELECT * FROM test_db; /* 結果出力 */
QUIT;
出力イメージ
id product price store date
1000 apple 100 TOKYO 9194
1001 orange 250 TOKYO 9194
1002 lemon 300 OSAKA 9194
1003 grape 400 OSAKA 9194
1004 banana 300 FUKUOKA 9194
1005 peach 900 FUKUOKA 9194
挿入方法(2)レコード形式で挿入
コード
/* SQL操作 */
PROC SQL;
/* レコード挿入 */
INSERT INTO test_db
(id, product, price, store, date)
VALUES
("1006", "melon", 700, "FUKUOKA", "4Mar1985"d);
/* 結果出力 */
SELECT * FROM test_db;
QUIT;
出力イメージ
id product price store date
1000 apple 100 TOKYO 9194
1001 orange 250 TOKYO 9194
1002 lemon 300 OSAKA 9194
1003 grape 400 OSAKA 9194
1004 banana 300 FUKUOKA 9194
1005 peach 900 FUKUOKA 9194
1006 melon 700 FUKUOKA 9194
テーブル更新|レコード更新
前述で作成したテーブルにある特定のレコードを更新する場合、次のようなコードを記述します。
コード
PROC SQL;
/* レコードを指定し値を更新 */
UPDATE test_db
SET id="9999", store = "NAGOYA"
WHERE product = "grape";
/* 結果出力 */
SELECT * FROM test_db;
QUIT;
出力イメージ
id product price store date
9999 grape 400 NAGOYA 9194
1004 banana 300 FUKUOKA 9194
1005 peach 900 FUKUOKA 9194
1006 melon 700 FUKUOKA 9194
テーブル更新|レコード削除
前述で作成したテーブルから特定のレコードを削除する場合、次のようなコードを記述します。
コード
PROC SQL;
/* レコード削除 */
DELETE FROM test_db
WHERE product in ("apple", "orange", "lemon");
/* 結果出力 */
SELECT * FROM test_db;
QUIT;
出力イメージ
id product price store date
1003 grape 400 OSAKA 9194
1004 banana 300 FUKUOKA 9194
1005 peach 900 FUKUOKA 9194
1006 melon 700 FUKUOKA 9194
テーブル更新|新規カラム追加
前述で作成したテーブルに対して新規のカラムを追加する場合、次のようなコードを記述します。
コード
today
という新規のカラムを追加した場合の例を以下に示します。
/* 新規カラム追加 */
PROC SQL;
ALTER TABLE test_db /* 更新先 */
ADD today /* カラム名 */
date /* データ型 */
label="basic date" /* ラベル */
format=date9.; /* フォーマット */
/* カラムの値更新 */
PROC SQL;
UPDATE test_db /* 更新先データ*/
SET today = today(); /* 更新するカラム */
SELECT * FROM test_db; /* 出力 */
QUIT;
出力イメージ
id product price store date basic date
1003 grape 400 OSAKA 9194 20JAN2024
1004 banana 300 FUKUOKA 9194 20JAN2024
1005 peach 900 FUKUOKA 9194 20JAN2024
1006 melon 700 FUKUOKA 9194 20JAN2024
テーブル更新|既存カラム削除
前述で作成したテーブルから指定のカラムを削除する場合、次のようなコードを記述します。
コード
PROC SQL;
/* カラムの削除 */
ALTER TABLE test_db
DROP COLUMN store, date, today;
/* 結果出力 */
SELECT * FROM test_db;
QUIT;
出力イメージ
id product price
1003 grape 400
1004 banana 300
1005 peach 900
1006 melon 700
テーブル読込
既存のテーブルを参照したい場合、単純なSELECT文で実現できます。SQLを用いたデータ参照の基礎についてはこちらの記事をご覧ください。
【SAS言語】SQLのSELECT文によるデータ参照・集計方法
SASプログラム内にSQLのSELECT文を記述し、データ参照・集計する方法について解説します。
【参考】SASプログラミング記事一覧
当サイトではSASを用いたプログラミング解説記事を多数掲載しております。
SASはデータ処理・分析をはじめ、高度な統計解析や機械学習・AIによる予測モデリングなど様々な用途に利用できます。また金融や医療を代表とする様々な業界の分析業務で広く活用されています。
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら