SAS - SQL

SAS offre un ampio supporto alla maggior parte dei database relazionali più diffusi utilizzando query SQL all'interno di programmi SAS. La maggior parte dellaANSI SQLla sintassi è supportata. La proceduraPROC SQLviene utilizzato per elaborare le istruzioni SQL. Questa procedura non solo può restituire il risultato di una query SQL, ma può anche creare tabelle e variabili SAS. L'esempio di tutti questi scenari è descritto di seguito.

Sintassi

La sintassi di base per l'utilizzo di PROC SQL in SAS è:

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

Di seguito la descrizione dei parametri utilizzati:

  • la query SQL viene scritta sotto l'istruzione PROC SQL seguita dall'istruzione QUIT.

Di seguito vedremo come questa procedura SAS può essere utilizzata per il CRUD (Crea, Leggi, Aggiorna ed Elimina) operazioni in SQL.

Operazione di creazione SQL

Usando SQL possiamo creare nuovi set di dati da dati grezzi. Nell'esempio seguente, prima dichiariamo un set di dati denominato TEMP contenente i dati grezzi. Quindi scriviamo una query SQL per creare una tabella dalle variabili di questo set di dati.

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;

Quando il codice precedente viene eseguito, otteniamo il seguente risultato:

Operazione di lettura SQL

L'operazione di lettura in SQL implica la scrittura di query SQL SELECT per leggere i dati dalle tabelle. In Il programma seguente interroga il data set SAS denominato CARS disponibile nella libreria SASHELP. La query recupera alcune delle colonne del set di dati.

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

Quando il codice precedente viene eseguito, otteniamo il seguente risultato:

SQL SELECT con clausola WHERE

Il programma seguente interroga il set di dati CARS con a whereclausola. Nel risultato otteniamo solo l'osservazione che ha come "Audi" e tipo "Sport".

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

Quando il codice precedente viene eseguito, otteniamo il seguente risultato:

Operazione SQL UPDATE

Possiamo aggiornare la tabella SAS utilizzando l'istruzione SQL Update. Di seguito creiamo prima una nuova tabella denominata EMPLOYEES2 e quindi la aggiorniamo utilizzando l'istruzione 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;

Quando il codice precedente viene eseguito, otteniamo il seguente risultato:

Operazione SQL DELETE

L'operazione di eliminazione in SQL implica la rimozione di determinati valori dalla tabella utilizzando l'istruzione SQL DELETE. Continuiamo a utilizzare i dati dell'esempio precedente e cancelliamo le righe dalla tabella in cui lo stipendio dei dipendenti è maggiore di 900.

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

Quando il codice precedente viene eseguito, otteniamo il seguente risultato: