主要内容

获取

数据导入MATLAB工作空间执行的SQL语句

描述

例子

结果= fetch (康涅狄格州,sqlquery)返回所有行数据后执行的SQL语句sqlquery连接对象。获取批量导入数据。

例子

结果= fetch (康涅狄格州,sqlquery,选择)定制选项导入数据从一个执行的SQL查询使用SQLImportOptions对象。

例子

结果= fetch (___,名称,值)指定附加选项使用一个或多个名称-值对参数和任何以前的输入参数组合。例如,MaxRows, 5进口5行数据。

例子

(结果,元数据]= fetch (___)还返回元数据表,其中包含元数据导入的数据的信息。

例子

结果= fetch (康涅狄格州,pstmt)返回所有行数据后执行SQL选择事先准备好的声明中pstmt连接对象。

结果= fetch (康涅狄格州,pstmt,名称,值)使用一个或多个指定附加选项名称-值对参数。例如,“DataReturnFormat”、“结构”进口数据结构。

例子

全部折叠

导入所有产品数据从Microsoft®SQL Server®数据库表中使用MATLAB®连接对象。然后,确定单位成本在产品表中最高的。下载188bet金宝搏

创建一个ODBC数据库连接到一个Microsoft®SQL Server使用Windows®®数据库的身份验证。指定一个空白的用户名和密码。数据库包含了表productTable

数据源=“MS SQL Server身份验证”;康涅狄格州=数据库(数据源,,);

检查数据库连接。如果消息属性是空的,那么连接成功。

conn.Message
ans = []

进口的所有数据productTable通过使用连接对象和SQL查询,显示导入的数据。

sqlquery =“SELECT * FROM productTable”;结果=获取(康涅狄格州,sqlquery)
结果= 10×5表productNumber stockNumber supplierNumber unitCost productDescription ________ ___________________ _________________……* * * 9 1.2597 e + 05 1003 13{“维多利亚娃娃”}8 2.1257 e + 05年1001 5{‘火车’}7 3.8912 e + 05 1007 16{“引擎工具包”}2 4.0031 e + 05 1002 9{“绘画组”}4 4.0034 e + 05 1008 21{“空间巡洋舰”}1 4.0035 e + 05 1001 14{“积木”}5 4.0046 e + 05 1005 3{“锡士兵”}6 4.0088 e + 05 1004 8{“帆船”}3 4.01 e + 05 1009 17{“紧身”}10 8.8865 e + 05 1006 24{“泰迪熊”}

确定最高的表中所有产品的单位成本。下载188bet金宝搏

马克斯(results.unitCost)
ans = 24

关闭数据库连接。

关上(康涅狄格州)

自定义导入选项在导入数据从数据库上的一个SQL查询的结果。通过创建一个控制导入选项SQLImportOptions对象。然后,自定义导入选项不同的SQL查询中的列。进口数据使用获取函数。

下面的例子使用了employees_database.mat文件,该文件包含的列first_name,hire_date,DEPARTMENT_NAME。示例还使用Microsoft®SQL Server®版本11.00.2100数据库和Microsoft SQL Server司机11.00.5058。

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

数据源=“MS SQL Server身份验证”;康涅狄格州=数据库(数据源,,);

员工信息加载到MATLAB®工作区。

employeedata =负载(“employees_database.mat”);

创建员工部门使用员工信息数据库表。

emp = employeedata.employees;部门= employeedata.departments;sqlwrite(康涅狄格州,“员工”emp) sqlwrite(康涅狄格州,“部门”、部门)

创建一个SQLImportOptions使用一个SQL查询和对象databaseImportOptions函数。该查询检索所有信息对员工销售经理或程序员。

sqlquery = [员工的SELECT * e d '加入部门“在job_id (e.department_id = d.department_id)””(“IT_PROG”、“SA_MAN”)];选择= databaseImportOptions(康涅狄格州,sqlquery)
选择= SQLImportOptions属性:ExcludeDuplicates:假VariableNamingRule:“修改”VariableNames: {‘employee_id’,‘first_name’,‘last_name’……和13}VariableTypes:{“双”,“字符”,“字符”……和13}SelectedVariableNames: {‘employee_id’,‘first_name’,‘last_name’……和13}FillValues:{南”、“…和13}VariableOptions:显示所有16 VariableOptions

显示当前导入选项中选择的变量SelectedVariableNames财产的SQLImportOptions对象。

var = opts.SelectedVariableNames;var varOpts = getoptions(选择)
varOpts = 1 x16 SQLVariableImportOptions数组属性:变量选择:(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(10)|(11)|(12)|(13)| |(14)(15)|(16)名称:“employee_id”|“first_name”|“last_name”|“电子邮件”|“phone_number”|“hire_date”|“job_id”|“工资”|“commission_pct”|“manager_id”|“department_id”|“临时性”|“department_id”|“DEPARTMENT_NAME”|“manager_id”|“LOCATION_ID”类型:“双”|“字符”|“字符”|“字符”|“字符”|“字符”|“字符”|“双重”|“双重”|“双重”|“双重”|“双重”|“双重”|“字符”|“双重”|“双重”MissingRule:“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”FillValue:南|“|”|“|”|“| |”南|南|南|南|南| |“|南|南访问sub-properties每个变量,使用getoptions

改变的数据类型hire_date,DEPARTMENT_NAME,first_name变量使用setoption函数。然后,显示更新导入选项。因为hire_date存储日期和时间数据,改变这个变量的数据类型datetime。因为DEPARTMENT_NAME指定了一组有限的重复值,改变这个变量的数据类型分类。此外,该变量的名称改为小写。因为first_name存储文本数据,改变这个变量的数据类型字符串

选择= setoption(选择,“hire_date”,“类型”,“datetime”);选择= setoption(选择,“DEPARTMENT_NAME”,“名字”,“department_name”,“类型”,“分类”);选择= setoption(选择,“first_name”,“类型”,“字符串”);var = opts.SelectedVariableNames;var varOpts = getoptions(选择)
varOpts = 1 x16 SQLVariableImportOptions数组属性:变量选择:(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(10)|(11)|(12)|(13)| |(14)(15)|(16)名称:“employee_id”|“first_name”|“last_name”|“电子邮件”|“phone_number”|“hire_date”|“job_id”|“工资”|“commission_pct”|“manager_id”|“department_id”|“临时性”|“department_id”|“department_name”|“manager_id”|“LOCATION_ID”类型:“双”|“字符串”|“字符”|“字符”|“字符”|“datetime”|“字符”|“双重”|“双重”|“双重”|“双重”|“双重”|“双重”|“直言”|“双重”|“双重”MissingRule:“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”|“填补”FillValue:南| <失踪> | |”|“| NaT | |南|南|南|南|南|南| <定义> |南|南访问sub-properties每个变量,使用getoptions

选择三个修改变量使用SelectVariableNames财产。

选择。SelectedVariableNames = {“first_name”,“hire_date”,“department_name”};

进口和显示使用的SQL查询的结果获取函数。

employees_data =获取(康涅狄格州,sqlquery选择)
employees_data =10×3表first_name hire_date department_name ___________ ___________售予“亚历山大”03 - 1月- 2006年它“布鲁斯”21日——2007年5月,“大卫”25 - 2005年6月,它“瓦利”05 - 2月- 2006年2月“戴安娜”07——“约翰”01 - 2007——2004年10月——销售“凯伦”05 - 1月- 2005年销售“阿尔贝托”10 - 3月- 2005年10月销售“杰拉尔德”15 - - 2007销售“Eleni”29 - 1月- 2008的销售

删除员工部门数据库表使用执行函数。

执行(康涅狄格州,“删除表的员工”)执行(康涅狄格州,“DROP TABLE部门”)

关闭数据库连接。

关上(康涅狄格州)

指定返回的数据格式和进口数量的行一个SQL查询的结果。使用一个SQL查询和导入数据获取函数。

这个示例使用Microsoft®SQL Server®版本11.00.2100数据库和Microsoft SQL Server司机11.00.5058。

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

数据源=“MS SQL Server身份验证”;康涅狄格州=数据库(数据源,,);

患者信息加载到MATLAB®工作区。

病人= readtable (“patients.xls”);

创建病人使用患者信息数据库表。

表名=“病人”;sqlwrite(康涅狄格州、表、病人)

选择所有的数据病人数据库表和进口五行表结构。使用“DataReturnFormat”名称-值对参数来指定返回结果数据结构。同时,使用“MaxRows”名称-值对参数来指定五行。显示导入的数据。

sqlquery = [“SELECT * FROM”表名);结果=获取(康涅狄格州,sqlquery“DataReturnFormat”,“结构”,“MaxRows”5)
结果=结构体字段:姓:{5×1细胞}性别:{5×1细胞}年龄:[5×1双)地点:{5×1细胞}高度:[5×1双)重量:[5×1双]吸烟者:[5×1双]收缩压:[5×1双]舒张期:[5×1双]SelfAssessedHealthStatus:{5×1细胞}

删除病人数据库表使用执行函数。

sqlquery = [“删除表”表名);execute(康涅狄格州,sqlquery)

关闭数据库连接。

关上(康涅狄格州)

进口产品数据从一个Microsoft®SQL Server®数据库表到MATLAB®使用ODBC连接。表包含非ascii字符的变量名。当导入数据,保存所有的变量的名称。

创建一个ODBC数据库连接到SQL Server数据库与Windows®身份验证。指定一个空白的用户名和密码。数据库包含了表productTable

数据源=“MSSQLServerAuth”;康涅狄格州=数据库(数据源,”“,”“);

检查数据库连接。如果消息属性是空的,那么连接成功。

conn.Message
ans = []

向数据库表中添加一列productTable。列名包含非ascii字符。

sqlquery =“ALTER TABLE productTable添加tamano varchar (30)”;execute(康涅狄格州,sqlquery)

导入数据从数据库表中productTable。的获取MATLAB函数返回一个表,包含了产品数据。显示的第一个三行数据表中。

sqlquery =“从productTable SELECT *”;data =获取(康涅狄格州,sqlquery);头(数据,3)
ans =3×6表productNumber stockNumber supplierNumber unitCost productDescription tama_o ________ _____________ __________ _________________……* * * 9 1.2597 e + 05 1003 13{“维多利亚娃娃”}{0×0字符}8 2.1257 e + 05年1001 5{‘火车’}{0×0字符}7 3.8912 e + 05 1007 16{“引擎工具包”}{0×0字符}

获取函数将新变量的名称转换为ASCII字符。

保存变量的名称通过指定包含非ascii字符VariableNamingRule名称-值对的论点。再次导入数据。

data =获取(康涅狄格州,sqlquery“VariableNamingRule”,“保存”);头(数据,3)
ans =3×6表productNumber stockNumber supplierNumber unitCost productDescription tamano ________ _____________ __________ _________________……* * * 9 1.2597 e + 05 1003 13{“维多利亚娃娃”}{0×0字符}8 2.1257 e + 05年1001 5{‘火车’}{0×0字符}7 3.8912 e + 05 1007 16{“引擎工具包”}{0×0字符}

获取函数保存在变量名非ascii字符。

关闭数据库连接。

关上(康涅狄格州)

检索元数据信息在导入数据从一个SQL查询。进口数据使用获取功能和探索使用点符号的元数据信息。

下面的例子使用了outages.csv文件,其中包含故障数据。此外,示例使用Microsoft®SQL Server®版本11.00.2100数据库和Microsoft SQL Server司机11.00.5058。

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

数据源=“MS SQL Server身份验证”;康涅狄格州=数据库(数据源,”“,”“);

故障信息加载到MATLAB®工作区。

中断= readtable (“outages.csv”);

创建中断使用故障信息数据库表。

表名=“中断”;sqlwrite(康涅狄格州、表、中断)

将数据导入MATLAB工作区并返回元数据导入的数据的信息。

sqlquery =“SELECT * FROM中断”;(结果,元数据)=获取(康涅狄格州,sqlquery);

视图的名称变量导入的数据。

metadata.Properties.RowNames
ans =6×1细胞{“地区”}{‘OutageTime}{‘损失’}{“客户}{‘RestorationTime}{“原因”}

查看每个变量的数据类型在导入数据。

metadata.VariableType
ans =6×1细胞{“字符”}{char的}{“双重”}{“双重”}{char的}{char的}

查看每个变量的缺失的数据值在导入数据。

metadata.FillValue
ans =6×1单元阵列{0×0字符}{0×0字符}{(南)}{(南)}{0×0字符}{0×0字符}

查看每个变量的缺失数据的指数在导入数据。

metadata.MissingRows
ans =6×1单元阵列{0×1双}{0×1双}{604×1双}{328×1双}{29日×1双}{0×1双}

显示导入的数据的前八行包含缺失的修复时间。数据包含恢复时间在第五变量。使用数字指标发现缺失的数据行。

指数= metadata.MissingRows {5, 1};nullrestoration =结果(指数:);头(nullrestoration)
ans =8×6表地区OutageTime损失客户RestorationTime引起_________________ ___________________________ ______ __________售予____________________{“东南”}{' 2003-01-23 00:49:00.000}530.14 - 2.1204 e + 05{0×0字符}{“暴风雪”}{“东北”}{' 2004-09-18 05:54:00.000}0 0{0×0字符}{“设备故障”}{“中西部”}{' 2002-04-20 16:46:00.000}23141年南{0×0字符}{‘未知’}{“东北”}{' 2004-09-16 19:42:00.000}4718年南{0×0字符}{‘未知’}{“东南”}{' 2005-09-14 15:45:00.000}1839.2 - 3.4144 e + 05{0×0字符}{“暴风”}{“东南”}{' 2004-08-17 17:34:00.000}624.1 - 1.7879 e + 05{0×0字符}{“暴风”}{“东南”}{' 2006-01-28 23:13:00.000}498.78南{0×0字符}{“能源应急”}{‘西方’}{' 2003-06-20 18:22:00.000}0 0{0×0字符}{“能源应急”}

删除中断数据库表使用执行函数。

sqlstr =“删除表”;sqlquery = strcat (sqlstr、表);execute(康涅狄格州,sqlquery)

关闭数据库连接。

关上(康涅狄格州)

准备创建一个SQL语句导入数据从Microsoft®SQL Server®数据库使用JDBC数据库连接。使用选择SQL语句的SQL查询。从数据库导入数据并显示结果。

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

数据源=“MSSQLServerJDBCAuth”;康涅狄格州=数据库(数据源,,);

创建一个SQL语句准备导入数据从SQL Server数据库使用JDBC数据库连接。的问号选择SQL语句显示这是一个SQL。这个语句从数据库中选择所有数据表inventoryTable有库存的库存日期指定日期范围内。

查询= strcat (“从inventoryTable SELECT *”,“inventoryDate >在哪里?和inventoryDate < ?”);pstmt = databasePreparedStatement(康涅狄格州、查询)
pstmt = SQLPreparedStatement属性:SQLQuery:“SELECT * FROM inventoryTable inventoryDate >在哪里?和inventoryDate < ?”ParameterCount: 2 ParameterTypes:["字符串" "字符串"]ParameterValues: {[] []}

pstmt是一个SQLPreparedStatement对象与这些属性:

  • SQLQuery——查询SQL准备语句

  • ParameterCount——参数计算

  • ParameterTypes——参数类型

  • ParameterValues——参数值

绑定SQL准备语句的参数值。选择这两个参数在SQL事先准备好的声明中使用他们的数字指标。指定绑定的值作为库存日期范围之间的1月1日,2014年和2014年12月31日。在数据库中匹配日期的格式。的bindParamValues功能更新中的值ParameterValues财产的pstmt对象。

选择= (1 - 2);值= {“2014-01-01 00:00:00.000”,“2014-12-31 00:00:00.000”};pstmt = bindParamValues (pstmt、选择值)
pstmt = SQLPreparedStatement属性:SQLQuery:“SELECT * FROM inventoryTable inventoryDate >在哪里?和inventoryDate < ?”ParameterCount: 2 ParameterTypes:["字符串" "字符串"]ParameterValues: {(“2014-01-01 00:00:00.000”) (“2014-12-31 00:00:00.000”)}

导入数据从数据库中使用获取功能和参数值。结果包含四行数据,代表所有库存与库存之间的日期1月1日,2014年和2014年12月31日。

结果=获取(康涅狄格州,pstmt)
结果=4×4表productNumber数量价格inventoryDate _________________ ________ _____ _______________________ 1 1700 14.5 {' 2014-09-23 09:38:34} 2 1200 9 {' 2014-07-08 22:50:45} 3 356 17 {' 2014-05-14 07:14:28} 7 6034 16 {' 2014-08-06 08:38:00 '}

准备关闭SQL语句和数据库连接。

关闭(pstmt)关闭(康涅狄格州)

输入参数

全部折叠

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

SQL语句,指定为一个特征向量或字符串标量。SQL语句可以是任何有效的SQL语句,包括嵌套查询。SQL语句可以是一个存储过程,等{调用sp_name (parm1、parm2…)}。为存储过程返回一个或多个结果集,使用获取函数。对于返回输出参数的程序,使用runstoredprocedure

关于SQL查询语言的信息,请参阅SQL教程

数据类型:字符|字符串

数据库导入选项,指定为一个SQLImportOptions对象。

SQL事先准备好的声明中,指定为一个SQLPreparedStatement对象。

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:结果=获取(康涅狄格州,sqlquery MaxRows, 50岁“DataReturnFormat”,“结构”)进口50行数据结构。

最大返回的行数,指定为逗号分隔组成的“MaxRows”和积极的数字标量。默认情况下,获取函数返回所有行执行的SQL查询。使用这个名称-值对参数限制导入MATLAB的行数®

例子:MaxRows, 10

数据类型:

数据格式,返回指定为逗号分隔组成的“DataReturnFormat”这些值之一:

  • “表”

  • “cellarray”

  • “数字”

  • “结构”

使用“DataReturnFormat”名称-值对结果的参数来指定数据类型的数据结果。指定整数类数值数据,使用选择输入参数。

您可以指定这些值使用特征向量或字符串标量。

例子:“DataReturnFormat”、“cellarray”进口数据作为一个单元阵列。

变量命名规则,指定为逗号分隔组成的“VariableNamingRule”这些值之一:

  • “修改”——从变量名时,删除非ascii字符获取进口数据的函数。

  • “保存”——保护大多数变量名时获取进口数据的函数。,限制部分。

例子:“VariableNamingRule”,“修改”

数据类型:字符串

输出参数

全部折叠

结果数据,作为一个表,返回单元阵列结构,或者数字矩阵。结果数据包含所有行数据的默认执行的SQL语句。

使用“MaxRows”名称-值对参数来指定要导入的数据的行数。使用“DataReturnFormat”名称-值对结果的参数来指定数据类型的数据。

当执行SQL语句不返回任何行,结果数据是一个空表。

元数据信息,返回一个表与这些变量。

变量名 变量描述 变量的数据类型

VariableType

每个变量的数据类型导入的数据

单元阵列的特征向量

FillValue

每个变量的缺失的数据值在导入数据

细胞缺失的数据值的数组

MissingRows

指数为每个发生的每个变量的缺失数据导入数据

单元阵列的数字指标

默认情况下,获取功能导入文本数据作为特征向量和数字数据翻倍。FillValue是一个空字符数组(对于文本数据)或默认(数值数据)。丢失的数据值更改为另一个值,使用SQLImportOptions对象。

RowNames财产的元数据表包含变量的名称在导入数据。

限制

名称-值对的观点“MaxRows”这些限制:

  • 如果您使用的是微软®访问™不支持,本机ODBC接口。金宝app

  • 并不是所有的数据库驱动程序支持查询执行之前设置的最金宝app大行数。对于一个不支持的驱金宝app动程序,修改您的SQL查询来限制返回的最大行数。SQL语法随司机。详情,请咨询司机文档。

名称-值对的观点“VariableNamingRule”这些限制:

  • 获取当你指定函数返回一个错误“VariableNamingRule”名称-值对参数和设置“DataReturnFormat”名称-值对参数cellarray,结构,或数字

  • 获取当你设置函数返回一个警告VariableNamingRule财产的SQLImportOptions对象“保存”并设置“DataReturnFormat”名称-值对参数结构

  • 获取当你使用这个函数返回一个错误“VariableNamingRule”名称-值对论点的SQLImportOptions对象选择

  • “VariableNamingRule”名称-值对参数设置为值“修改”:

    • 这些变量名称是保留标识符数据类型:属性,RowNames,VariableNames

    • 每个变量名的长度必须小于返回的数量namelengthmax

提示

  • 在数据库中记录的顺序不会保持不变。数据使用SQL命令命令你sqlquery声明。

  • Microsoft Excel®,表sqlqueryExcel工作表。默认情况下,一些工作表包含一个名称美元的象征。选择工作表的数据具有该名称的格式,使用一个SQL语句的形式从“Sheet1 $选择*”(或“美元Sheet1”)。

  • 修改数据库表之前,确保数据库不是打开进行编辑。如果你想编辑数据库,它是开放的,你收到这个MATLAB错误:

    (供应商)(ODBC驱动程序)数据库引擎无法锁表“表”,因为它被另一个人或已经在使用的过程。
  • PostgreSQL数据库管理系统支持多维领域,但是SQL金宝app选择语句失败当检索这些字段,除非你指定一个索引。

  • 有些数据库需要包括一个符号,如#,之前和之后的日期查询,如下:

    执行(康涅狄格州,' SELECT *从mydb替换> # 03/05/2005 # ')
  • 执行获取函数与选择输入参数和“DataReturnFormat”名称-值对参数设置为“数字”价值没有影响。一个相应的警告信息出现在命令窗口。

选择功能

应用程序

获取使用命令行功能进口数据。导入的数据交互,使用数据库资源管理器应用程序。

兼容性的考虑

全部展开

行为改变R2018b

行为改变R2018b

介绍了R2006b