我刚刚开始学习SAS,有些困惑。此链接here显示对数据集的查询。我认为这就像连接到外部数据库并执行对数据库的请求查询一样。 那么DATA SET是数据库吗,SQL语法只是在DATA SET中处理数据的另一种方式? 您也可以推荐更好的教程。免费的开源教程/书/资源会更好。
我仍在学习,我将不胜感激任何意见/答案/建议。
我实际上在计算机上使用SAS University Edition。
答案 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结构概念到数据库概念的粗略映射:
您可以通过在帮助系统中搜索“ SAS引擎”和“引擎如何使用SAS文件”来了解有关引擎的更多信息
Proc SQL
使您可以使用SQL进行编码。编码人员可以为自己和眼前的问题选择最佳的语言。是SQL
,DATA
步和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;
希望有道理。