SAS - SQL

SAS ให้การสนับสนุนอย่างกว้างขวางสำหรับฐานข้อมูลเชิงสัมพันธ์ยอดนิยมส่วนใหญ่โดยใช้การสืบค้น SQL ภายในโปรแกรม SAS ส่วนใหญ่ANSI SQLรองรับไวยากรณ์ ขั้นตอนPROC SQLใช้ในการประมวลผลคำสั่ง SQL โพรซีเดอร์นี้ไม่เพียง แต่ให้ผลลัพธ์ของคิวรี SQL เท่านั้น แต่ยังสามารถสร้างตารางและตัวแปร SAS ได้อีกด้วย ตัวอย่างของสถานการณ์ทั้งหมดเหล่านี้อธิบายไว้ด้านล่าง

ไวยากรณ์

ไวยากรณ์พื้นฐานสำหรับการใช้ PROC SQL ใน SAS คือ -

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

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -

  • แบบสอบถาม SQL เขียนอยู่ใต้คำสั่ง PROC SQL ตามด้วยคำสั่ง QUIT

ด้านล่างเราจะดูว่าขั้นตอน SAS นี้สามารถใช้สำหรับไฟล์ CRUD (สร้างอ่านอัปเดตและลบ) การดำเนินการใน SQL

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 เพื่ออ่านข้อมูลจากตาราง ในโปรแกรมด้านล่างจะค้นหาชุดข้อมูล SAS ชื่อ CARS ที่มีอยู่ในไลบรารี SASHELP แบบสอบถามดึงข้อมูลบางคอลัมน์ของชุดข้อมูล

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

เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -

SQL SELECT พร้อม WHERE Clause

โปรแกรมด้านล่างจะค้นหาชุดข้อมูล CARS ด้วยไฟล์ whereอนุประโยค ผลลัพธ์ที่ได้เราได้รับเฉพาะการสังเกตที่ทำให้เป็น 'Audi' และพิมพ์เป็น 'Sports'

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

เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -

การทำงานของ SQL UPDATE

เราสามารถอัปเดตตาราง SAS โดยใช้คำสั่ง SQL Update ด้านล่างเราสร้างตารางใหม่ชื่อ 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

การดำเนินการลบใน SQL เกี่ยวข้องกับการลบค่าบางอย่างออกจากตารางโดยใช้คำสั่ง SQL DELETE เรายังคงใช้ข้อมูลจากตัวอย่างข้างต้นและลบแถวออกจากตารางที่เงินเดือนของพนักงานมากกว่า 900

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

เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -