SQL在SAS中到底使用什么?

时间:2019-04-02 08:35:16

标签: sas

我刚刚开始学习SAS,有些困惑。此链接here显示对数据集的查询。我认为这就像连接到外部数据库并执行对数据库的请求查询一样。 那么DATA SET是数据库吗,SQL语法只是在DATA SET中处理数据的另一种方式? 您也可以推荐更好的教程。免费的开源教程/书/资源会更好。

我仍在学习,我将不胜感激任何意见/答案/建议。

我实际上在计算机上使用SAS University Edition。

3 个答案:

答案 0 :(得分:1)

请勿将SQL(查询语言)与mySQL,postgresql,sqlite或任何其他数据库技术相混淆。

proc sql是数据步骤的替代方法。

大多数情况下,您都可以对两者进行相同的操作,但是在某些情况下,一个可能会表现更好,或者比另一个更容易/更短的语法。

您使用的数据集与用于“查询”它的语言无关。

查看LIBNAME语句以连接到外部数据库。

答案 1 :(得分:1)

  

那么DATA SET是数据库,SQL语法只是处理DATA SET中数据的另一种方式吗?

DATA SET是表(不是数据库),是的,SQL是另一种方式。

您可以将本地 SAS库引擎V9视为数据库。例如:

libname mydata          'c:\projectx\sasdata';  is the same as
libname mydata V9       'c:\projectx\sasdata';
libname mydata <engine> 'c:\projectx\sasdata';
libname mydata <engine> <options for connection parameters>;

V9是libname语句确实指定一个引擎时使用的默认引擎。连接到几乎所有远程(非SAS)数据库,数据文件或数据提供程序的引擎都有不同,这些引擎使SAS编码器可以使用SAS进行编码,而不必学习远程环境的语言或方言。 / p>

SAS结构概念到数据库概念的粗略映射:

  • V9引擎〜“数据库”
  • 本地文件夹〜模式,实例或目录
  • 数据集〜表格
  • 变量〜列
  • 观察〜行

您可以通过在帮助系统中搜索“ SAS引擎”和“引擎如何使用SAS文件”来了解有关引擎的更多信息

Proc SQL使您可以使用SQL进行编码。编码人员可以为自己和眼前的问题选择最佳的语言。是SQLDATA步和PROC步。

答案 2 :(得分:1)

就像以前说过的那样,请不要在SQL(查询语言)和DataSet(SAS中表的名称)之间混淆。 这是使用DATA SET语法和PROC SQL语法的相同结果的示例:

使用数据设置:

DATA myNewTable;
    SET myTable;
    WHERE id = 123;
RUN;

使用PROC SQL语法:

PROC SQL;
   CREATE TABLE myNewTable AS
       SELECT * FROM myTable
       WHERE id = 123;
QUIT;

希望有道理。