选择
执行SQL选择
语句并将数据导入MATLAB
描述
例子
立即导入和访问数据
方法从数据库中一次性导入数据选择
函数。您可以访问数据并执行即时数据分析。
该代码假设您有一个数据库表病人
存储在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
关闭数据库连接。
关上(康涅狄格州)
使用for循环更改导入数据中缺失的值
方法从数据库中一次性导入数据选择
函数。在导入期间,选择
函数为每一行中缺失的数据设置默认值。使用导入的数据信息修改默认值。
该代码假设您有一个数据库表病人
存储在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
.
关闭数据库连接。
关上(康涅狄格州)
输入参数
selectquery
- - - - - -SQL选择
声明
特征向量|字符串
SQL选择
语句,指定为字符向量或字符串。的选择
函数只执行SQL选择
语句。要执行其他SQL语句,请使用执行
函数。
例子:'SELECT * FROM inventoryTable'
数据类型:字符
|字符串
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:“MaxRows”,100年,“QueryTimeOut”,5
返回100行数据并等待5秒执行SQL选择
声明。
MaxRows
- - - - - -返回的最大行数
正数值标量
返回的最大行数,指定为逗号分隔的对,由“MaxRows”
和一个正的数值标量。默认情况下,选择
函数返回执行的SQL查询中的所有行。使用这个名称-值对参数来限制导入MATLAB的行数®.
例子:MaxRows, 10
数据类型:双
QueryTimeOut
- - - - - -SQL查询超时
正数值标量
SQL查询超时,指定为逗号分隔的对,由“QueryTimeOut”
和一个正的数值标量。默认情况下,选择
函数忽略超时值。使用此名称-值对参数指定等待执行SQL查询的秒数selectquery
.
例子:“QueryTimeOut”,15
输出参数
数据
—导入数据
表格
导入的数据,作为表返回。表的行与执行的SQL查询返回的数据行对应selectquery
.表的变量名指定SQL查询中的列。
的选择
函数将日期或时间数据作为表中的字符向量返回。这个函数将文本作为字符向量或字符向量的单元格数组返回。表中不支持字符串。
如果不存在要导入的数据,则数据
是一个空表。
元数据
—数据导入信息
表格
关于导入数据的信息,作为表返回。的行名元数据
变量名是否在数据
.的变量名中存储每个变量名元数据
表作为单元格数组。元数据
具有以下变量名:
VariableType
—中各变量的数据类型数据
MissingValue
中每个变量缺失值的表示形式数据
MissingRows
中每个变量的缺失值位置的行索引向量数据
这个表展示了MATLAB是如何表示的零
数据导入后数据库中的默认值。
数据库数据类型 | 默认的零 价值 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
布尔 |
|
日期、时间或文本 |
|
更改零
导入数据中的值表示,则通过遍历导入数据或使用向量索引替换默认值。
限制
不能自定义输出参数中缺失的值
数据
使用选择
函数。索引导入的数据元数据
输出参数。输出参数
数据
不支持细胞
而且结构体
数据类型。的选择
函数只支持表格
.
选择功能
使用执行
而且获取
函数在导入数据时实现完整功能。对于两者之间的差异选择
函数和这个选项,见使用数据库资源管理器应用程序或命令行导入数据.
版本历史
在R2017a中介绍
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。