mysql 表 在sas中显示,SAS-SQL详细操作图解

本文概述

SAS通过使用SAS程序中的SQL查询, 在大多数流行的关系数据库中提供全面的支持。它支持大多数ANSI SQL语法。我们可以使用过程PROC SQL处理SQL查询。此过程不仅返回SQL查询的结果, 还可以创建SAS表和变量。

所有与SQL相关的方案如下所示。

句法:

PROC SQL;

SELECT Columns

FROM TABLE

WHERE Columns

GROUP BY Columns

;

QUIT;

其中

PROC SQL:这是编写SQL查询的过程。

退出:这是用于关闭SQL查询的语句。

以下是SQL操作, 我们将在其中学习如何对SQL中的CRUD(CREATE, READ, UPDATE和DELETE)操作使用PROC SQL过程。

创建操作

我们可以使用SQL从原始数据创建一个新的数据集。让我们考虑SAS数据集DETAILS, 其中包含组织员工的个人信息。现在, 我们需要编写SQL查询, 以根据变量的原始数据创建表EMPLOYEE。

DATA details;

INPUT empid name $ salary dept $ ;

DATALINES;

1 Akash 22000 IT

6 Jaya 23500 HR

2 Vinita 33000 IT

7 Kumar 27000 IT

4 Anita 53000 HR

5 Taufik 32000 IT

8 Boby 25000 IT

3 Ankita 42000 IT

;

RUN;

PROC SQL;

CREATE TABLE EMPLOYEES AS

SELECT * FROM details;

QUIT;

PROC PRINT data = EMPLOYEES;

RUN;

在SAS Studio中执行以上代码:

sas-sql.png

输出

sas-sql2.png

正如我们在输出中看到的, 已经为所有变量创建了表。

SQL读取操作

在SQL的读取操作中, 我们可以从表中读取数据。要读取数据, 我们需要编写一个SQL SELECT查询。在示例中, 我们将从SASHELP库中可用的表CARS中读取数据。 SELECT查询获取数据集中提到的列(或变量)的数据。

例:

PROC SQL;

SELECT make, model, type, invoice, horsepower

FROM

SASHELP.CARS

;

QUIT;

在SAS Studio中执行以上代码:

sas-sql3.png

输出

sas-sql4.png

从输出中可以看到, 表CARS的所有数据已显示。

带WHERE子句的SQL SELECT查询

SAS在数据子设置中使用” where”子句, 即, 仅用于获取我们所需的值并放弃剩余的值。

下面的程序有一个带有子句where的CARS数据集。在结果中, 我们将仅获得make列值为” Audi”的观察值和type列值为” Sports”的观察值。

PROC SQL;

SELECT make, model, type, invoice, horsepower

FROM

SASHELP.CARS

Where make = 'Audi'

and Type = 'Sports'

;

QUIT;

在SAS Studio中执行以上代码:

sas-sql5.png

输出

sas-sql6.png

从输出中可以看到, 已显示Make = Audi和Type = Sports列的所有观测值, 其余的观测值已被省略。

SQL UPDATE操作

在SQL的更新操作中, 我们可以更新表的数据。要更新数据, 我们需要编写SQL UPDATE查询。在下面的示例中, 我们将更新数据集DETAILS的数据。

DATA DETAILS;

INPUT empid name $ salary dept $ ;

DATALINES;

1 Akash 22000 IT

6 Jaya 23500 HR

2 Vinita 33000 IT

7 Kumar 27000 IT

4 Anita 53000 HR

5 Taufik 32000 IT

8 Boby 25000 IT

3 Ankita 42000 IT

;

RUN;

PROC SQL;

CREATE TABLE EMPLOYEES2 AS

SELECT empid as id, name as empname , salary as salary, dept as department

FROM DETAILS;

QUIT;

PROC SQL;

UPDATE EMPLOYEES2

SET SALARY = SALARY*1.25;

QUIT;

PROC PRINT data = EMPLOYEES2;

RUN;

在SAS Studio中执行以上代码:

sas-sql7.png

输出

sas-sql8.png

如你在输出中看到的, 所有变量都已更新, 例如, empid为id, name为empname, dept为Department。

SQL删除操作

在SQL的Delete操作中, 我们可以从表中删除特定数据。要从表中删除数据, 我们需要编写SQL DELETE查询。在下面的示例中, 我们将从表中删除数据。

在这里, 我们从上面的示例中获取数据, 并将删除员工工资超过30, 000的表中的行。

DATA DETAILS;

INPUT empid name $ salary dept $ ;

DATALINES;

1 Akash 22000 IT

6 Jaya 23500 HR

2 Vinita 33000 IT

7 Kumar 27000 IT

4 Anita 53000 HR

5 Taufik 32000 IT

8 Boby 25000 IT

3 Ankita 42000 IT

;

RUN;

PROC SQL;

DELETE FROM DETAILS

WHERE SALARY > 30000;

QUIT;

PROC PRINT data = DETAILS;

RUN;

在SAS Studio中执行以上代码:

sas-sql9.png

输出

sas-sql10.png

从输出中可以看到, 所有薪水超过30, 000的员工均被删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值