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;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้ -