主要内容

选择

执行SQL选择语句并将数据导入MATLAB

描述

例子

数据=选择(康涅狄格州,selectquery从数据库连接返回导入的数据康涅狄格州对于指定的SQL选择声明selectquery

例子

数据=选择(康涅狄格州,selectquery,名称,值使用一个或多个名称-值对参数指定其他选项。例如,MaxRows, 10将返回的最大行数设置为10行。

例子

数据,元数据= select(___使用前面语法中的任何输入参数组合返回关于导入数据的信息。使用此信息可更改导入数据中缺失的值,并查看每个变量的数据类型。

例子

全部折叠

方法从数据库中一次性导入数据选择函数。您可以访问数据并执行即时数据分析。

该代码假设您有一个数据库表病人存储在Microsoft®SQL Server®数据库中。此表包含10列和10行患者数据。表的定义是:

创建表格患者(VARCHAR (50)、性别VARCHAR (10)、年龄非常小的整数、位置VARCHAR (300)、身高短整型、体重短整型,吸烟者,收缩压浮动,舒张压数字, SelfAssessedHealthStatusVARCHAR (20))

本例使用Microsoft®SQL Server®Version 11.00.2100数据库和Microsoft®SQL Server®Driver 11.00.5058。

使用Windows®身份验证创建到Microsoft®SQL Server®数据库的数据库连接。请指定空白的用户名和密码。

数据源='MS SQL Server Auth';Conn =数据库(数据源,,);

导入所有数据病人表通过执行SQL选择语句。选择函数。数据包含导入数据的表。

selectquery ='SELECT * FROM Patients';Data = select(conn,selectquery)
数据= 10×10表姓氏性别年龄位置身高体重吸烟者收缩期舒张自我评估健康状况_____________________ __________________________ __________________________ _________ ________________________‘史密斯’‘男’38‘乡村总医院’-32768 176真124 93‘优秀’‘约翰逊’‘男’43’VA医院’69 163假南77‘公平’‘威廉姆斯’‘女’38”64 131假125 83‘好’‘琼斯’‘女’0’VA医院’67 133假117 75‘公平’‘布伦’‘女’49 '乡村总医院' 64 119假122 80 '好' '戴维斯' '女' 46 '圣玛丽医疗中心' 68 142假121南'好' '米勒' '女' 33 'VA医院' 64 142真130 88 '好' '威尔逊' '男' 40 'VA医院' -32768 180假115 82 '好' '摩尔' '男' 28 '圣玛丽医疗中心' 68 -32768假115 78 '优秀' '泰勒' '女' 31 '乡村总医院' 68 132假南86 '优秀'

通过立即访问数据确定男性患者的数量。使用函数查找在表示男性的字符向量的性别数据中出现的情况。确定出现的总次数。

男性=计数(数据。性别、“男”);总和(男性)
Ans = 4

关闭数据库连接。

关上(康涅狄格州)

方法从数据库中一次性导入数量有限的行选择函数。数据库工具箱™使用MATLAB®数值数据类型导入数据,这些数据类型对应于数据库表中的数据类型。导入数据后,您可以直接访问数据并进行数据分析。

该代码假设您有一个数据库表病人存储在Microsoft®SQL Server®数据库中。此表包含10列和10行患者数据。表的定义是:

创建表格患者(VARCHAR (50)、性别VARCHAR (10)、年龄非常小的整数、位置VARCHAR (300)、身高短整型、体重短整型,吸烟者,收缩压浮动,舒张压数字, SelfAssessedHealthStatusVARCHAR (20))

在这里,使用Microsoft®SQL Server®Driver 11.00.5058连接到Microsoft®SQL Server®Version 11.00.2100数据库。

使用Windows®身份验证创建到Microsoft®SQL Server®数据库的数据库连接。请指定空白的用户名和密码。

数据源='MS SQL Server Auth';Conn =数据库(数据源,,);

病人表通过执行SQL选择语句。选择函数。使用名称-值对参数限制导入的行数“MaxRows”

数据是一张桌子。表中的MATLAB®数据类型对应数据库中的数据类型。在这里,年龄具有数据类型uint8这对应于非常小的整数在表定义中。

元数据是否包含关于每个变量的附加信息的表数据

  • VariableType——MATLAB®数据类型

  • MissingValue--值表示

  • MissingRows——包含缺失值的行索引的向量

selectquery ='SELECT * FROM Patients';[data,metadata] = select(conn,selectquery,)“MaxRows”5)
数据= 5×10表姓氏性别年龄位置身高体重吸烟者收缩期舒张自我评估健康状况_____________________ __________________________ __________________________ _________ ________________________‘史密斯’‘男’38‘乡村总医院’-32768 176真124 93‘优秀’‘约翰逊’‘男’43’VA医院’69 163假南77‘公平’‘威廉姆斯’‘女’38”64 131假125 83‘好’‘琼斯’‘女’0’VA医院’67 133假117 75‘公平’‘布伦’‘女’49 'Country General Hospital' 64 119 false 122 80 'Good' metadata = 10×3 table VariableType MissingValue MissingRows ____________ ____________ ____________ LastName 'char' " [0×1 double] Gender 'char' " [0×1 double] Age 'uint8' [0] [4] Location 'char' " [0×1 double] Height 'int16' [-32768] [1] Weight 'int16' [-32768] [0×1 double] Smoker 'logical' [0] [0×1 double] Systolic 'single' [NaN] [2] Diastolic 'double' [NaN] SelfAssessedHealthStatus 'char' " [0×1 double]

通过立即访问数据确定男性患者的数量。使用函数查找在表示男性的字符向量的性别数据中出现的情况。确定出现的总次数。

男性=计数(数据。性别、“男”);总和(男性)
Ans = 2

关闭数据库连接。

关上(康涅狄格州)

方法从数据库中一次性导入数据选择函数。数据库工具箱™使用MATLAB®数值数据类型导入数据,这些数据类型对应于数据库表中的数据类型。您可以在导入的数据中查看数据类型信息。您还可以访问数据并执行即时数据分析。

该代码假设您有一个数据库表病人存储在Microsoft®SQL Server®数据库中。此表包含10列和10行患者数据。表的定义是:

创建表格患者(VARCHAR (50)、性别VARCHAR (10)、年龄非常小的整数、位置VARCHAR (300)、身高短整型、体重短整型,吸烟者,收缩压浮动,舒张压数字, SelfAssessedHealthStatusVARCHAR (20))

在这里,使用Microsoft®SQL Server®Driver 11.00.5058连接到Microsoft®SQL Server®Version 11.00.2100数据库。

使用Windows®身份验证创建到Microsoft®SQL Server®数据库的数据库连接。请指定空白的用户名和密码。

数据源='MS SQL Server Auth';Conn =数据库(数据源,,);

导入所有数据病人表通过执行SQL选择语句。选择函数。

数据是一张桌子。表中的MATLAB®数据类型对应数据库中的数据类型。在这里,年龄是否有MATLAB®数据类型uint8这对应于非常小的整数在表定义中。

元数据是否包含关于每个变量的附加信息的表数据

  • VariableType——MATLAB®数据类型

  • MissingValue——空值表示

  • MissingRows——包含缺失值的行索引的向量

selectquery ='SELECT * FROM Patients';[data,metadata] = select(conn,selectquery)
数据= 10×10表姓氏性别年龄位置身高体重吸烟者收缩期舒张自我评估健康状况_____________________ __________________________ __________________________ _________ ________________________‘史密斯’‘男’38‘乡村总医院’-32768 176真124 93‘优秀’‘约翰逊’‘男’43’VA医院’69 163假南77‘公平’‘威廉姆斯’‘女’38”64 131假125 83‘好’‘琼斯’‘女’0’VA医院’67 133假117 75‘公平’‘布伦’‘女’49 '乡村总医院' 64 119假122 80 '好' '戴维斯' '女' 46 '圣玛丽医疗中心' 68 142假121 NaN '好' '米勒' '女' 33 'VA医院' 64 142真130 88 '好' '威尔逊' '男' 40 'VA医院' -32768 180假115 82 '好' '摩尔' '男' 28 '圣玛丽医疗中心' 68 -32768假115 78 '优秀' '泰勒' '女' 31 '乡村总医院' 68 132假NaN 86 '优秀'元数据= 10×3 table VariableType MissingValue MissingRows ________________________ ____________ LastName 'char' " [0×1 double]性别'char' " [0×1 double]年龄'uint8'[0][4]位置'char' " [0×1 double]身高'int16' [-32768] [2×1 double]体重'int16'[-32768][9]吸烟者'logical' [0] [0×1 double]收缩期'single' [NaN] [2×1 double]舒张期'double' [NaN] [6] SelfAssessedHealthStatus 'char' " [0×1 double]

查看表中每个变量的数据类型。

元数据。VariableType
Ans = 10×1 cell array 'char' 'char' 'uint8' 'char' 'int16' 'int16' 'logical' 'single' 'double' 'char'

通过立即访问数据确定男性患者的数量。使用函数查找在表示男性的字符向量的性别数据中出现的情况。确定出现的总次数。

男性=计数(数据。性别、“男”);总和(男性)
Ans = 4

关闭数据库连接。

关上(康涅狄格州)

方法从数据库中一次性导入数据选择函数。在导入期间,选择函数为每一行中缺失的数据设置默认值。使用导入的数据信息修改默认值。

该代码假设您有一个数据库表病人存储在Microsoft®SQL Server®数据库中。此表包含10列和10行患者数据。表的定义是:

创建表格患者(VARCHAR (50)、性别VARCHAR (10)、年龄非常小的整数、位置VARCHAR (300)、身高短整型、体重短整型,吸烟者,收缩压浮动,舒张压数字, SelfAssessedHealthStatusVARCHAR (20))

在这里,使用Microsoft®SQL Server®Driver 11.00.5058连接到Microsoft®SQL Server®Version 11.00.2100数据库。

使用Windows®身份验证创建到Microsoft®SQL Server®数据库的数据库连接。请指定空白的用户名和密码。

数据源='MS SQL Server Auth';Conn =数据库(数据源,,);

导入所有数据病人表通过执行SQL选择语句。选择函数。

数据包含导入数据的表。

元数据是否包含关于每个变量的附加信息的表数据

  • VariableType——MATLAB®数据类型

  • MissingValue--值表示

  • MissingRows——指示缺失值位置的行索引的向量

selectquery ='SELECT * FROM Patients';[data,metadata] = select(conn,selectquery)
数据= 10×10表数组LastName性别年龄位置身高体重吸烟者收缩期舒张期自我评估健康状态_____________________ __________________________ __________________________ _________ ________________________ '史密斯''男' 38 '乡村总医院' -32768 176真124 93 '优秀''约翰逊''男' 43 'VA医院' 69 163假南77 'Fair' '威廉姆斯''女' 38 ' 64 131假125 83 '好''琼斯''女' 0 'VA医院' 67 133假117 75 'Fair' 'Broen''女' 49 '乡村总医院' 64 119假122 80 '好' '戴维斯' '女' 46 '圣玛丽医疗中心' 68 142假121 NaN '好' '米勒' '女' 33 'VA医院' 64 142真130 88 '好' '威尔逊' '男' 40 'VA医院' -32768 180假115 82 '好' '摩尔' '男' 28 '圣玛丽医疗中心' 68 -32768假115 78 '优秀' '泰勒' '女' 31 '乡村总医院' 68 132假NaN 86 '优秀'元数据= 10×3 table array VariableType MissingValue MissingRows____________ ____________ ____________ LastName 'char' " [0×1 double]性别'char' " [0×1 double]年龄'uint8'[0][4]位置'char' " [0×1 double]身高'int16' [-32768] [2×1 double]体重'int16'[-32768][9]吸烟者'logical' [0] [0×1 double]收缩期'single' [NaN] [2×1 double]舒张期'double' [NaN] [6] SelfAssessedHealthStatus 'char' " [0×1 double]

检索指示丢失值位置的索引高度变量使用元数据输出参数。

值=元数据。MissingRows {“高度”
值= 1 8

更改缺少数据的默认值-32768年0使用for循环。使用索引访问导入的数据。

i = 1:length(values) data.Height(values(i)) = 0;结束

查看已导入的数据。

数据。高度
Ans = 10×1 int16列向量0 69 64 67 64 68 64 0 68 68

缺少的值显示为0

关闭数据库连接。

关上(康涅狄格州)

方法从数据库中一次性导入数据选择函数。在导入期间,选择函数为每一行中缺失的数据设置默认值。使用关于导入数据的信息,通过向向量建立索引来更改默认值。

该代码假设您有一个数据库表病人存储在Microsoft®SQL Server®数据库中。此表包含10列和10行患者数据。表的定义是:

创建表格患者(VARCHAR (50)、性别VARCHAR (10)、年龄非常小的整数、位置VARCHAR (300)、身高短整型、体重短整型,吸烟者,收缩压浮动,舒张压数字, SelfAssessedHealthStatusVARCHAR (20))

在这里,使用Microsoft®SQL Server®Driver 11.00.5058连接到Microsoft®SQL Server®Version 11.00.2100数据库。

使用Windows®身份验证创建到Microsoft®SQL Server®数据库的数据库连接。请指定空白的用户名和密码。

数据源='MS SQL Server Auth';Conn =数据库(数据源,,);

导入所有数据病人表通过执行SQL选择语句。选择函数。

数据包含导入数据的表。

元数据是否包含关于每个变量的附加信息的表数据

  • VariableType——MATLAB®数据类型

  • MissingValue--值表示

  • MissingRows——指示缺失值位置的行索引的向量

selectquery ='SELECT * FROM Patients';[data,metadata] = select(conn,selectquery)
数据= 10×10表数组LastName性别年龄位置身高体重吸烟者收缩期舒张期自我评估健康状态_____________________ __________________________ __________________________ _________ ________________________ '史密斯''男' 38 '乡村总医院' -32768 176真124 93 '优秀''约翰逊''男' 43 'VA医院' 69 163假南77 'Fair' '威廉姆斯''女' 38 ' 64 131假125 83 '好''琼斯''女' 0 'VA医院' 67 133假117 75 'Fair' 'Broen''女' 49 '乡村总医院' 64 119假122 80 '好' '戴维斯' '女' 46 '圣玛丽医疗中心' 68 142假121 NaN '好' '米勒' '女' 33 'VA医院' 64 142真130 88 '好' '威尔逊' '男' 40 'VA医院' -32768 180假115 82 '好' '摩尔' '男' 28 '圣玛丽医疗中心' 68 -32768假115 78 '优秀' '泰勒' '女' 31 '乡村总医院' 68 132假NaN 86 '优秀'元数据= 10×3 table array VariableType MissingValue MissingRows____________ ____________ ____________ LastName 'char' " [0×1 double]性别'char' " [0×1 double]年龄'uint8'[0][4]位置'char' " [0×1 double]身高'int16' [-32768] [2×1 double]体重'int16'[-32768][9]吸烟者'logical' [0] [0×1 double]收缩期'single' [NaN] [2×1 double]舒张期'double' [NaN] [6] SelfAssessedHealthStatus 'char' " [0×1 double]

检索指示丢失值位置的索引高度变量使用元数据输出参数。

Values =元数据(5,3)valuesindex = Values。MissingRows {1}
value = table MissingRows ____________ Height [2×1 double] valuesindex = 1

更改缺少数据的默认值-32768年0使用矢量索引。

data.Height(valuesindex) = 0;

查看已导入的数据。

数据。高度
Ans = 10×1 int16列向量0 69 64 67 64 68 64 0 68 68

缺少的值显示为0

关闭数据库连接。

关上(康涅狄格州)

输入参数

全部折叠

数据库连接,指定为ODBC连接对象或JDBC连接对象创建的。数据库函数。

SQL选择语句,指定为字符向量或字符串。的选择函数只执行SQL选择语句。要执行其他SQL语句,请使用执行函数。

例子:'SELECT * FROM inventoryTable'

数据类型:字符|字符串

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:“MaxRows”,100年,“QueryTimeOut”,5返回100行数据并等待5秒执行SQL选择声明。

返回的最大行数,指定为逗号分隔的对,由“MaxRows”和一个正的数值标量。默认情况下,选择函数返回执行的SQL查询中的所有行。使用这个名称-值对参数来限制导入MATLAB的行数®

例子:MaxRows, 10

数据类型:

SQL查询超时,指定为逗号分隔的对,由“QueryTimeOut”和一个正的数值标量。默认情况下,选择函数忽略超时值。使用此名称-值对参数指定等待执行SQL查询的秒数selectquery

例子:“QueryTimeOut”,15

输出参数

全部折叠

导入的数据,作为表返回。表的行与执行的SQL查询返回的数据行对应selectquery.表的变量名指定SQL查询中的列。

选择函数将日期或时间数据作为表中的字符向量返回。这个函数将文本作为字符向量或字符向量的单元格数组返回。表中不支持字符串。

如果不存在要导入的数据,则数据是一个空表。

关于导入数据的信息,作为表返回。的行名元数据变量名是否在数据.的变量名中存储每个变量名元数据表作为单元格数组。元数据具有以下变量名:

  • VariableType—中各变量的数据类型数据

  • MissingValue中每个变量缺失值的表示形式数据

  • MissingRows中每个变量的缺失值位置的行索引向量数据

这个表展示了MATLAB是如何表示的数据导入后数据库中的默认值。

数据库数据类型 默认的价值

签署了非常小的整数

-128年

无符号非常小的整数

0

签署了短整型

-32768年

无符号短整型

0

符号整数

-2147483648

无符号整型

0

长整型数字签名

-9223372036854775808

无符号长整型数字

0

真正的

浮动

小数

数字

布尔

日期、时间或文本

更改导入数据中的值表示,则通过遍历导入数据或使用向量索引替换默认值。

限制

  • 不能自定义输出参数中缺失的值数据使用选择函数。索引导入的数据元数据输出参数。

  • 输出参数数据不支持细胞而且结构体数据类型。的选择函数只支持表格

选择功能

使用执行而且获取函数在导入数据时实现完整功能。对于两者之间的差异选择函数和这个选项,见使用数据库资源管理器应用程序或命令行导入数据

版本历史

在R2017a中介绍

Baidu
map