SAS - SQL

SAS cung cấp hỗ trợ rộng rãi cho hầu hết các cơ sở dữ liệu quan hệ phổ biến bằng cách sử dụng các truy vấn SQL bên trong các chương trình SAS. Hầu hết cácANSI SQLcú pháp được hỗ trợ. Thủ tụcPROC SQLđược sử dụng để xử lý các câu lệnh SQL. Thủ tục này không chỉ có thể trả lại kết quả của một truy vấn SQL mà còn có thể tạo các bảng và biến SAS. Ví dụ về tất cả các tình huống này được mô tả dưới đây.

Cú pháp

Cú pháp cơ bản để sử dụng PROC SQL trong SAS là:

PROC SQL;
SELECT Columns
FROM TABLE
WHERE Columns
GROUP BY Columns
;
QUIT;

Sau đây là mô tả về các tham số được sử dụng:

  • truy vấn SQL được viết bên dưới câu lệnh SQL PROC theo sau câu lệnh QUIT.

Dưới đây, chúng tôi sẽ xem cách thủ tục SAS này có thể được sử dụng cho CRUD (Tạo, Đọc, Cập nhật và Xóa) trong SQL.

Thao tác tạo SQL

Sử dụng SQL, chúng ta có thể tạo dữ liệu thô dạng tập dữ liệu mới. Trong ví dụ dưới đây, đầu tiên chúng ta khai báo một tập dữ liệu có tên TEMP chứa dữ liệu thô. Sau đó, chúng tôi viết một truy vấn SQL để tạo một bảng từ các biến của tập dữ liệu này.

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;

Khi đoạn mã trên được thực thi, chúng ta nhận được kết quả sau:

Thao tác đọc SQL

Thao tác Đọc trong SQL liên quan đến việc viết các truy vấn SQL SELECT để đọc dữ liệu từ các bảng. Trong chương trình dưới đây truy vấn tập dữ liệu SAS có tên CARS có sẵn trong thư viện SASHELP. Truy vấn tìm nạp một số cột của tập dữ liệu.

PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM 
SASHELP.CARS
;
QUIT;

Khi đoạn mã trên được thực thi, chúng ta nhận được kết quả sau:

SQL SELECT với mệnh đề WHERE

Chương trình dưới đây truy vấn tập dữ liệu CARS với wheremệnh đề. Kết quả là chúng tôi chỉ nhận được quan sát có tên là 'Audi' và nhập là 'Thể thao'.

PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM 
SASHELP.CARS
Where make = 'Audi'
and Type = 'Sports'
;
QUIT;

Khi đoạn mã trên được thực thi, chúng ta nhận được kết quả sau:

Hoạt động CẬP NHẬT SQL

Chúng ta có thể cập nhật bảng SAS bằng câu lệnh SQL Update. Dưới đây, trước tiên chúng ta tạo một bảng mới có tên EMPLOYEES2 và sau đó cập nhật nó bằng cách sử dụng câu lệnh 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;

Khi đoạn mã trên được thực thi, chúng ta nhận được kết quả sau:

Thao tác SQL DELETE

Thao tác xóa trong SQL liên quan đến việc xóa các giá trị nhất định khỏi bảng bằng câu lệnh SQL DELETE. Chúng tôi tiếp tục sử dụng dữ liệu từ ví dụ trên và xóa các hàng khỏi bảng trong đó tiền lương của nhân viên lớn hơn 900.

PROC SQL;
DELETE FROM EMPLOYEES2
      WHERE SALARY > 900;
QUIT;
      PROC PRINT data = EMPLOYEES2;
RUN;

Khi đoạn mã trên được thực thi, chúng ta nhận được kết quả sau: