SAS ofrece un amplio soporte para la mayoría de las bases de datos relacionales populares a través de consultas SQL dentro de los programas SAS. La mayoría de ANSI SQL sintaxis compatible. Procedimiento PROC SQL utilizado para procesar sentencias SQL. Este procedimiento no solo puede devolver el resultado de una consulta SQL, sino también crear tablas y variables SAS. A continuación se describe un ejemplo de todos estos escenarios.
La sintaxis básica para usar PROC SQL en SAS es:
PROC SQL; SELECT Columns FROM TABLE WHERE Columns GROUP BY Columns ; QUIT;
A continuación se muestra la descripción de los parámetros utilizados:
La consulta SQL se escribe bajo la instrucción PROC SQL seguida de la instrucción QUIT.
Veremos a continuación cómo se puede utilizar este procedimiento SAS para CRUD (Crear, leer, actualizar y eliminar) operaciones en SQL.
Usando SQL, podemos crear un nuevo conjunto de datos a partir de los datos sin procesar. En el siguiente ejemplo, primero declaramos un conjunto de datos llamado TEMP que contiene los datos sin procesar. Luego escribimos una consulta SQL para crear una tabla a partir de las variables de este conjunto de datos.
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;
Cuando se ejecuta el código anterior, obtenemos el siguiente resultado:
Leer en SQL implica escribir sentencias SELECT SQL para leer datos de tablas. En el siguiente ejemplo, el programa consulta un conjunto de datos SAS llamado CARS disponible en la biblioteca SASHELP. La consulta selecciona algunas de las columnas del conjunto de datos.
PROC SQL; SELECT make,model,type,invoice,horsepower FROM SASHELP.CARS ; QUIT;
Cuando se ejecuta el código anterior, obtenemos el siguiente resultado:
El programa siguiente solicita un conjunto de datos CARS con Dónde párrafo. Como resultado, solo obtenemos observaciones que son de la marca Audi y del tipo deportivo.
PROC SQL; SELECT make,model,type,invoice,horsepower FROM SASHELP.CARS Where make="Audi" and Type="Sports" ; QUIT;
Cuando se ejecuta el código anterior, obtenemos el siguiente resultado:
Podemos actualizar la tabla SAS usando la instrucción SQL Update. A continuación, primero creamos una nueva tabla llamada EMPLOYEES2 y luego la actualizamos usando la instrucción 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;
Cuando se ejecuta el código anterior, obtenemos el siguiente resultado:
Una operación de eliminación en SQL implica eliminar valores específicos de una tabla utilizando la instrucción DELETE de SQL. Seguimos utilizando los datos del ejemplo anterior y eliminamos de la tabla las filas en las que el salario de los empleados es superior a 900.
PROC SQL; DELETE FROM EMPLOYEES2 WHERE SALARY > 900; QUIT; PROC PRINT data = EMPLOYEES2; RUN;
Cuando se ejecuta el código anterior, obtenemos el siguiente resultado:
🚫