SAS - SQL

SAS offre une prise en charge étendue de la plupart des bases de données relationnelles populaires en utilisant des requêtes SQL dans les programmes SAS. La plupartANSI SQLla syntaxe est prise en charge. La procédurePROC SQLest utilisé pour traiter les instructions SQL. Cette procédure peut non seulement restituer le résultat d'une requête SQL, mais également créer des tables et des variables SAS. L'exemple de tous ces scénarios est décrit ci-dessous.

Syntaxe

La syntaxe de base pour l'utilisation de PROC SQL dans SAS est -

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

Voici la description des paramètres utilisés -

  • la requête SQL est écrite sous l'instruction PROC SQL suivie de l'instruction QUIT.

Ci-dessous, nous verrons comment cette procédure SAS peut être utilisée pour CRUD (Créer, lire, mettre à jour et supprimer) opérations dans SQL.

Opération de création SQL

En utilisant SQL, nous pouvons créer un nouvel ensemble de données sous forme de données brutes. Dans l'exemple ci-dessous, nous déclarons d'abord un ensemble de données nommé TEMP contenant les données brutes. Ensuite, nous écrivons une requête SQL pour créer une table à partir des variables de cet ensemble de données.

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;

Lorsque le code ci-dessus est exécuté, nous obtenons le résultat suivant -

Opération de lecture SQL

L'opération de lecture dans SQL implique l'écriture de requêtes SQL SELECT pour lire les données des tables. Dans Le programme ci-dessous interroge l'ensemble de données SAS nommé CARS disponible dans la bibliothèque SASHELP. La requête récupère certaines des colonnes de l'ensemble de données.

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

Lorsque le code ci-dessus est exécuté, nous obtenons le résultat suivant -

SQL SELECT avec clause WHERE

Le programme ci-dessous interroge l'ensemble de données CARS avec un whereclause. Dans le résultat, nous n'obtenons que l'observation qui a fait comme «Audi» et tapez comme «Sports».

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

Lorsque le code ci-dessus est exécuté, nous obtenons le résultat suivant -

Opération SQL UPDATE

Nous pouvons mettre à jour la table SAS à l'aide de l'instruction SQL Update. Ci-dessous, nous créons d'abord une nouvelle table nommée EMPLOYEES2, puis nous la mettons à jour à l'aide de l'instruction 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;

Lorsque le code ci-dessus est exécuté, nous obtenons le résultat suivant -

Opération SQL DELETE

L'opération de suppression dans SQL implique la suppression de certaines valeurs de la table à l'aide de l'instruction SQL DELETE. Nous continuons à utiliser les données de l'exemple ci-dessus et supprimons les lignes du tableau dans lesquelles le salaire des employés est supérieur à 900.

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

Lorsque le code ci-dessus est exécuté, nous obtenons le résultat suivant -