The SQL procedure in SAS enables you to retrieve and update data from
SYSTEM 2000
databases. You must have update authority in order to edit SYSTEM 2000 data. To retrieve
and browse SYSTEM 2000 data, specify a
view descriptor by using a SELECT statement in PROC SQL. To update the data, you can specify
view descriptors in the INSERT, DELETE, and UPDATE statements in PROC SQL. The following
is a summary of these PROC SQL statements:
DELETE
deletes values from a SYSTEM 2000
database.
INSERT
inserts values in a SYSTEM 2000 database.
SELECT
retrieves and displays data from SYSTEM 2000 databases. A SELECT statement is usually
referred to as a query because it queries the database for information.
UPDATE
updates values in a SYSTEM 2000 database.
The query in the following program retrieves and displays values in the SYSTEM 2000
database Employee. These values are described by the view descriptor Vlib.Emppos,
if the previous updates using the
SAS/FSP procedures have occurred (that is, you added the values Mary and Adkins to the programmer
position.) Notice that PROC SQL prints the
variable labels instead of the
SAS variable names, and the data is displayed in the SAS output window. Notice also that the
SELECT statement executes without using a RUN statement. PROC SQL executes when you
submit it and displays output data automatically, without your having to use the PRINT
procedure. The following output displays the results.
proc sql;
title 'SYSTEM 2000 Data Output Using
a SELECT Statement';
select *
/* Asterisk indicates 'select all items' */
from vlib.emppos;
SYSTEM 2000 Data Output Using a PROC SQL Query
SYSTEM 2000 Data Output Using a SELECT Statement
LAST NAME FORENAME POSITION TITLE DEPARTMENT MANAGER
-----------------------------------------------------------------
ADKINS MARY PROGRAMMER INFORMATION SY MYJ
AMEER DAVID JR SALES REPRESE MARKETING VPB
AMEER DAVID SR SALES REPRESE MARKETING VPB
BOWMAN HUGH E. EXECUTIVE VICE-P CORPORATION CPW
BROOKS RUBEN R. JR SALES REPRESE MARKETING MAS
BROWN VIRGINA P. MANAGER WESTERN MARKETING OMG
CAHILL JACOB MANAGER SYSTEMS INFORMATION SY JBM
CANADY FRANK A. MANAGER PERSONNE ADMINISTRATION PRK
CHAN TAI SR SALES REPRESE MARKETING TZR
COLLINS LILLIAN MAIL CLERK ADMINISTRATION SQT
FAULKNER CARRIE ANN SECRETARY CORPORATION JBM
As in the
SAS/FSP procedures, you can specify a WHERE clause in the SELECT statement to subset the
observations that you want to display. The following program requests data about employees
who are technical writers. Notice that the PROC SQL statement is not repeated in this
query because you do not need to repeat the PROC SQL statement unless you use another
SAS procedure or DATA step between PROC SQL statements. Because you are referencing
a view descriptor, you use the SAS names for items in the WHERE clause. The following
output shows
the data about the one employee who is a technical writer.
title 'SYSTEM 2000 Data Output Subset by a
WHERE Clause';
select *
from vlib.emppos
where position='TECHNICAL WRITER';
SYSTEM 2000 Data Output Subset by a WHERE Clause
SYSTEM 2000 Data Output Subset by a WHERE Clause
LAST NAME FORENAME POSITION TITLE DEPARTMENT MANAGER
-----------------------------------------------------------------
GIBSON MOLLY I. TECHNICAL WRITER INFORMATION SY JC
You can use the UPDATE statement to update SYSTEM 2000 data. Remember that when
you
reference a view descriptor in a PROC SQL statement, you are not updating the view
descriptor. You are updating the SYSTEM 2000 data described by the view descriptor.
Therefore, if Mary Adkins, whose name you previously added to the unfilled programmer
position, decided to change her position from programmer to technical writer, you
could update the information about her position title and manager by using the following
program. The following output displays the results.
update vlib.emppos
set position='TECHNICAL WRITER'
where lastname='ADKINS';
update vlib.emppos
set manager='JC'
where lastname='ADKINS';
title 'Updated VLIB.EMPPOS View Descriptor';
select *
from vlib.emppos;
Updated Vlib.Emppos View Descriptor
Updated VLIB.EMPPOS View Descriptor 1
LAST NAME FORENAME POSITION TITLE DEPARTMENT MANAGER
-------------------------------------------------------------------
ADKINS MARY TECHNICAL WRITER INFORMATION SY JC
AMEER DAVID SR SALES REPRESE MARKETING VPB
AMEER DAVID JR SALES REPRESE MARKETING VPB
BOWMAN HUGH E. EXECUTIVE VICE-P CORPORATION CPW
BROOKS RUBEN R. JR SALES REPRESE MARKETING MAS
BROWN VIRGINA P. MANAGER WESTERN MARKETING OMG
CAHILL JACOB MANAGER SYSTEMS INFORMATION SY JBM
CANADY FRANK A. MANAGER PERSONNE ADMINISTRATION PRK
CHAN TAI SR SALES REPRESE MARKETING TZR
COLLINS LILLIAN MAIL CLERK ADMINISTRATION SQT
FAULKNER CARRIE ANN SECRETARY CORPORATION JBM
You can use the INSERT statement to add values to a SYSTEM 2000 database or the
DELETE statement to remove values as described by a view descriptor. In the following
program, the values described by the view descriptor Vlib.Emppos for the employee
whose last name is Adkins are deleted from
the database Employee. The following output displays the results.
delete from vlib.emppos
where lastname='ADKINS';
title 'Data Deleted from SYSTEM 2000 EMPLOYEE
Database';
select *
from vlib.emppos;
Vlib.Emppos Data with an Observation Deleted
Data Deleted from SYSTEM 2000 EMPLOYEE Database 1
LAST NAME FORENAME POSITION TITLE DEPARTMENT MANAGER
-----------------------------------------------------------------
ADKINS MARY
AMEER DAVID SR SALES REPRESE MARKETING VPB
AMEER DAVID JR SALES REPRESE MARKETING VPB
BOWMAN HUGH E. EXECUTIVE VICE-P CORPORATION CPW
BROOKS RUBEN R. JR SALES REPRESE MARKETING MAS
BROWN VIRGINA P. MANAGER WESTERN MARKETING OMG
CAHILL JACOB MANAGER SYSTEMS INFORMATION SY JBM
CANADY FRANK A. MANAGER PERSONNE ADMINISTRATION PRK
CHAN TAI SR SALES REPRESE MARKETING TZR
COLLINS LILLIAN MAIL CLERK ADMINISTRATION SQT
FAULKNER CARRIE ANN SECRETARY CORPORATION JBM
CAUTION:
You must
use the WHERE clause in the DELETE statement.
If you omit the WHERE clause from a DELETE statement in PROC SQL, you delete all
the data in the database accessed by the view descriptor.
For more information
about the SQL procedure in SAS, see the Base SAS Procedures Guide.