首页 《SPSS编程与数据管理》:从数据库中获得数据

《SPSS编程与数据管理》:从数据库中获得数据

举报
开通vip

《SPSS编程与数据管理》:从数据库中获得数据《SPSS编程与数据管理》:从数据库中获得数据 《SPSS编程与数据管理》:从数据库中获得数据 SPSS依靠ODBC(开放式数据库联接)从数据库中读入数据。ODBC是多平台各种版本的开放标准,包括Windows,UNIX和Macintosh。 ? 安装数据库驱动程序 能从数据库驱动软件的数据库格式中读入数据。在单机模式中,驱动程序安装在本机上。分布模式中,驱动程序安装在远端服务器上。数据库格式的ODBC数据库驱动程序包含在SPSS安装CD上,包括: ?Access ?Btrieve ?DB2 ?dB...

《SPSS编程与数据管理》:从数据库中获得数据
《SPSS编程与数据管理》:从数据库中获得数据 《SPSS编程与数据管理》:从数据库中获得数据 SPSS依靠ODBC(开放式数据库联接)从数据库中读入数据。ODBC是多平台各种版本的开放标准,包括Windows,UNIX和Macintosh。 ? 安装数据库驱动程序 能从数据库驱动软件的数据库格式中读入数据。在单机模式中,驱动程序安装在本机上。分布模式中,驱动程序安装在远端服务器上。数据库格式的ODBC数据库驱动程序包含在SPSS安装CD上,包括: ?Access ?Btrieve ?DB2 ?dBASE ?Excel ?FoxPro ?Informix ?Oracle ?Paradox ?Progress ?SQL Base ?SQL Server ?Sybase 大部分驱动程序能安装在SPSS的Data Access Pack中。从SPSS安装CD上自动运行菜单安装SPSS Data Access Pack。如果需要微软 Access 驱动程序,也需要安装微软Data Access Pack。安装版本位于SPSS安装CD上的Microsoft Data Access Pack文件夹上。 使用安装数据库驱动程序前,需要使用Windows ODBC 数据源管理器来配置驱动程序,安装指导和配置数据源信息位于SPSS安装CD的Installation Instructions文件夹上。 ?数据库向导 使用数据库向导(文件菜单,打开数据库)首次从数据源提取数据或许是一个好的想法。在向导的最后一步,能用粘贴按钮将等价的命令粘贴到命令窗口中。虽然由向导生成的SQL语句很烦琐,但是没有向导你也不会领会所产生的CONNECT字符串。 ?读入一张数据库 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf SPSS通过从数据库中读取数据库表读入数据。在相同的数据库中,能从一张数据表中读入数据或从多张数据表读入合并数据。数据表同SPSS数据文件一样,有相同的二维结构:记录是个案,字段是变量。所以读入一张表很简单。 范例 本例从Access数据库中读入一张数据表。包含表中记录和字段。(译者注:这 些参数是计算机自动生成的,没有必要去记它。) *access1.sps. GET DATA /TYPE=ODBC /CONNECT= 'DSN=MS Access Database;DBQ=C:\examples\data\dm_demo.mdb;'+ 'DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;' /SQL = 'SELECT * FROM CombinedTable'. EXECUTE. ?GET DATA命令用于读入数据库。 ?TYPE=ODBC表明ODBC驱动程序用于读入数据。这是从数据库中读入数据所必需的,也能用ODBC驱动程序读入其它数据库的数据,例如Excel工作薄(见“读入多张数据表”)。 ?CONNECT识别数据源。对这个例子,CONNECT字符串是通过数据库向导从生成的命令中复制的。完整的字符串必须包括单引号或双引号。本例中,将长字符串分为两行,使用加号(+)连接两个字符串。 ?SQL子命令包含由数据库格式支持的SQL声明。每行必须包括单引号或双引号。 ?SELECT * FROM CombinedTable从表名为CombinedTable 的表中读入字段(列)和记录(行)。 ?无效SPSS变量名的字段名自动地转换为有效变量名,原字段名作为变量标签。在这个数据表中,许多字段名包含空格,在变量名中空格被去掉。(译者注:如数据库中Marital Status字段,转换为SPSS的MaritalStatus变量,而Marital Status作为值标签,两个单词间的空格自动地被去掉。) 示图 3-1 数据库字段名转换为有效变量名 范例 现在读入相同的数据表——只不过这次只读入字段和记录的一个子集。 *access2.sps. GET DATA /TYPE=ODBC /CONNECT= 'DSN=MS Access Database;DBQ=C:\examples\data\dm_demo.mdb;'+ 'DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;' /SQL = 'SELECT Age, Education, [Income Category]' ' FROM CombinedTable' ' WHERE ([Marital Status] <> 1 AND Internet = 1 )'. EXECUTE. ?SELECT子句明确地指定来自文件的三个字段,所以当前数据文件只包含三个变量。 ?WHERE子句选择Marital Status 字段不等于1并且Internet 字段等于1的记录。本例中,意味着只包括未婚并有互联网业务的人。 这里两个细节值得关注: ?字段名Income Category和Marital Status包含方括号。因为这些字段名含空格,它们必须用方括号或引 号。由于单引号已经用于SQL声明,所以这里选择方括号代替双引号。 ?将FROM和WHERE子句放置在不同的行以确保代码易读,然而,为了完全地读入这个命令,在单引号起始点和第一个字母之间要有一个空格。当处理命令时,SQL声明按字面意思合并在一起。WHERE子句前没有空格,程序试图读入CombinedTableWhere表,会产生错误。概括地说,应该在引号和连续行的第一个字母之间插入一个空格。 ?读入多张数据库表 用“结合”方式能连接来自两个或多个数据表的数据(同一个数据库中的多张数据表)。当前数据文件能用两张以上的表来构建,但是“结合”关系只能在两个表间定义: ?Inner join.(内部连接)包括两张表中匹配一个和多个指定字段的记录。例如,惟一ID号或许在每个表中都使用,用匹配的ID号来连接记录。在另一个表中没有与ID号匹配的记录将被省略。 ?Left outer join.(外部左连接)包含第一张表的所有记录和第二张表中与连接字段相等的记录。 ?Right outer join.(外部右连接)包括第二张表的所有记录和第一张表中与连接字段相等的记录。 范例 在前两个例子中,所有数据都取自一张数据库表。但是如果数据被分成两个表怎么办,这个例子合并两张不同表的数据:一张表包含调查应答者的人口统计信息,一张表包含应答者的响应信息。 *access_multtables1.sps. GET DATA /TYPE=ODBC /CONNECT= 'DSN=MS Access Database;DBQ=C:\examples\data\dm_demo.mdb;'+ 'DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;' /SQL = 'SELECT * FROM DemographicInformation, SurveyResponses' ' WHERE DemographicInformation.ID=SurveyResponses.ID'. EXECUTE. ?SELECT子句从两个表中指定所有字段。 ?WHERE子句从两个表中匹配ID值相等的记录。两个表中ID值不相等的记录均被删除。 ?结果是在当前数据文件中只包括两张表ID值相等记录的内部连接。 范例 除了一对一匹配外,同前面的内部连接例子一样,也能用一对多技术合并数据表。例如,能将只有几个数据和描述标签的数据表与包含成百或上千条记录的调查应答者数据表相匹配。 本例中,读入来自SQL SERVER数据库的数据,使用外部连接避免在较小的表中没有匹配识别值的记录在较大的表中被忽略。 *sqlserver_outer_join.sps. GET DATA /TYPE=ODBC /CONNECT= 'DSN=SQLServer;UID=;APP=SPSS For Windows;' 'WSID=ROLIVERLAP;Network=DBMSSOCN;Trusted_Connection=Yes' /SQL = 'SELECT SurveyResponses.ID, SurveyResponses.Internet,' ' [Value Labels].[Internet Label]' ' FROM SurveyResponses LEFT OUTER JOIN [Value Labels]' ' ON SurveyResponses.Internet' ' = [Value Labels].[Internet Value]'. 示图 3-2 用外部连接合并的 SQL Server 表 示图 3-3 SPSS中的数据文件 ?FROM SurveyResponses LEFT OUTER JOIN [Value Labels]包括所有SurveyResponses 数据表的记录,即使没有记录符合Value Labels 表的匹配标准。 ?ON SurveyResponses.Internet = [Value Labels].[Internet Value] 匹配基于SurveyResponses表的Internet字段和Value Labels表的Internet Value字段的记录。 ?结果数据文件中,InternetLabel 为No的记录(没有互联网业务),Internet的值为0,InternetLabel 为Yes(有互联网业务), Internet 的值为1。 ?因为外部左连接包括SurveyResponses 表的所有记录,所以当前数据文件中有Internet变量为8或9,InternetLabel 变量没有值(空字符串)的记录;因为值8或9在Value Labels 表的Internet Value 字段中没有定义。 既然在当前数据文件中值标签是单独变量的形式,转换这些值为标准值标签是可能的(要了解更多的信息见第六章 “Importing from MS Access”。 译者注:这一段有点搞,尤其是一对多的数据库连接,包括我本人在内都没有SQL SERVER可供练习,不过SPSS自带的数据库向导实现以上功能并不难,只是有点烦。现介绍如下: 首先从文件菜单上选择:打开数据库——新建查询,打开数据库向导。 接下来执行数据库向导的操作: 1、选择MS Access Database 点击下一步。 2、点击浏览按钮,在自己的文件夹中选择dm_demo.mdb 点击OK。 3、在Available下选择Survey Responses表下的ID拖到右侧Retrieve Fields In 中(或双击),选择Survey Responses表下的Internet拖到右侧;选择Value Labels表下的Internet Label拖到右侧。 点击下一步。 4、取消Auto Join Table,选择Survey Responses表中的Internet拖动到Value Labels表的Internet Value上。 5、双击两表间的连线,弹出一个对话框,选择第三项选项,即建立左连接。点击 OK。 6、这时出现一个从Survey Responses表指向Value Labels表的箭头。点击下 一步。 7、连续点击两个下一步。 8、在Results中选择Paste it into the syntax editor for further„,然 后点击完成。 9、在命令窗口运行上面的程序就可以得到同SQL SERVER一样效果的SPSS数据 文件。
本文档为【《SPSS编程与数据管理》:从数据库中获得数据】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:287KB
软件:Word
页数:12
分类:生活休闲
上传时间:2017-10-11
浏览量:39