主要内容

sqlwrite

插入MATLAB数据进入数据库表

描述

例子

sqlwrite (康涅狄格州的表数据从MATLAB中插入数据®表转换为数据库表。如果表存在于数据库中,则此函数将MATLAB表中的数据作为行附加到现有数据库表中。如果该表在数据库中不存在,则此函数创建一个具有指定表名的表,然后将数据作为行插入新表中。此语法相当于执行包含的SQL语句创建表插入ANSI SQL语法。

例子

sqlwrite (康涅狄格州的表数据名称,值使用由一个或多个名称-值对参数指定的附加选项。例如,“目录”、“toy_store”将数据插入到数据库表中,该数据库表位于名为toy_store

例子

全部折叠

使用ODBC连接将MATLAB®表中的产品数据附加到Microsoft®SQL Server®数据库中的现有表中。

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

数据源=“MS SQL Server认证”;Conn = database(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

查看现有数据库表productTable在添加数据之前,将其内容导入MATLAB并显示最后几行。

表名=“productTable”;Rows = sqlread(conn,tablename);尾(行,3)
ans = 3×5表productNumber stockNumber supplierNumber unitCost productDescription  _____________ ___________ ______________ ________ __________________ 13 4.7082 e + 05 1012 17“煎饼”14 5.101 e + 05 1011 19“披肩”15 8.9975 e + 05 1011 20“零食”

创建一个包含一个产品数据的MATLAB表。

Data = table(30,500000,1000,25,“魔方”“VariableNames”, {“productNumber”“stockNumber”“supplierNumber”“unitCost”“productDescription”});

将产品数据追加到数据库表中productTable

sqlwrite(康涅狄格州、表、数据)

再次将数据库表的内容导入MATLAB并显示最后几行。结果包含插入产品的新行。

Rows = sqlread(conn,tablename);尾(行,4)
ans = 4×5表productNumber stockNumber supplierNumber unitCost productDescription _____________ ___________ ______________ ________ __________________ 13 4.7082e+05 1012 17 ' pancake ' 14 5.101e+05 1011 19 '披肩' 15 8.9975e+05 1011 20 'Snacks' 30 5e+05 1000 25 'Rubik's Cube'

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接将MATLAB®中的产品数据插入到Microsoft®SQL Server®数据库中的新表中。

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

数据源=“MS SQL Server认证”;Conn = database(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

创建一个包含两个产品数据的MATLAB表。下载188bet金宝搏

数据表=((30、40)(500000;600000),(1000;2000),[25;30],“魔方”;“娃娃家”],“VariableNames”, {“productNumber”“stockNumber”“supplierNumber”“unitCost”“productDescription”});

将产品数据插入到新的数据库表中toyTable

表名=“toyTable”;sqlwrite(康涅狄格州、表、数据)

将数据库表的内容导入MATLAB并显示行。结果包含两行用于插入的产品。下载188bet金宝搏

Rows = sqlread(conn,tablename)
行= 2×5表productNumber stockNumber supplierNumber unitCost productDescription  _____________ ___________ ______________ ________ __________________ 1000 5 e + 05年25“魔方”40 6 e + 05 2000 30“娃娃家”

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接将MATLAB®中的产品数据插入到Microsoft®SQL Server®数据库中的新表中。指定新数据库表中列的数据类型。

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

数据源=“MS SQL Server认证”;Conn = database(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

创建一个包含两个产品数据的MATLAB表。下载188bet金宝搏

数据表=((30、40)(500000;600000),(1000;2000),[25;30],“魔方”;“娃娃家”],“VariableNames”, {“productNumber”“stockNumber”“supplierNumber”“unitCost”“productDescription”});

将产品数据插入到新的数据库表中toyTable。使用“ColumnType”名称-值对参数和字符串数组,以指定数据库表中所有列的数据类型。

表名=“toyTable”;Coltypes = [“数字”“数字”“数字”“数字”“varchar(255)”];sqlwrite(康涅狄格州、表、数据“ColumnType”coltypes)

将数据库表的内容导入MATLAB并显示行。结果包含两行用于插入的产品。下载188bet金宝搏

Rows = sqlread(conn,tablename)
行= 2×5表productNumber stockNumber supplierNumber unitCost productDescription  _____________ ___________ ______________ ________ __________________ 1000 5 e + 05年25“魔方”40 6 e + 05 2000 30“娃娃家”

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接将MATLAB®中的产品数据插入到Microsoft®SQL Server®数据库中的新表中。将存储为单元格数组的数据插入到新的数据库表中。

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

数据源=“MS SQL Server认证”;Conn = database(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

创建包含两个产品数据的单元格数组。下载188bet金宝搏

C = {30,500000,1000,25,“魔方”30岁的;40、600000、2000“娃娃家”};

通过指定列名将单元格数组转换为MATLAB表。

Colnames = {“productNumber”“stockNumber”“supplierNumber”“unitCost”“productDescription”};数据= cell2table(c,“VariableNames”, colnames);

将产品数据插入到新的数据库表中toyTable

表名=“toyTable”;sqlwrite(康涅狄格州、表、数据)

将数据库表的内容导入MATLAB并显示行。结果包含两行用于插入的产品。下载188bet金宝搏

Rows = sqlread(conn,tablename)
行= 2×5表productNumber stockNumber supplierNumber unitCost productDescription  _____________ ___________ ______________ ________ __________________ 1000 5 e + 05年25“魔方”40 6 e + 05 2000 30“娃娃家”

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接将MATLAB®中的产品数据插入到Microsoft®SQL Server®数据库中的新表中。将作为结构存储的数据插入到新的数据库表中。

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

数据源=“MS SQL Server认证”;Conn = database(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

创建一个包含两个产品数据的结构数组。下载188bet金宝搏

(1)。productNumber = 30;(1)。stockNumber = 500000;(1)。supplierNumber = 1000;(1)。unitCost = 25;(1)。productDescription =“魔方”;(2)。productNumber = 40;(2)。stockNumber = 600000;(2)。supplierNumber = 2000;(2)。unitCost = 30;(2)。productDescription =“娃娃家”;

将结构转换为MATLAB表。

Data = struct2table(s);

将产品数据插入到新的数据库表中toyTable

表名=“toyTable”;sqlwrite(康涅狄格州、表、数据)

将数据库表的内容导入MATLAB并显示行。结果包含两行用于插入的产品。下载188bet金宝搏

Rows = sqlread(conn,tablename)
行= 2×5表productNumber stockNumber supplierNumber unitCost productDescription  _____________ ___________ ______________ ________ __________________ 1000 5 e + 05年25“魔方”40 6 e + 05 2000 30“娃娃家”

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接将来自MATLAB®的销售量数据插入到Microsoft®SQL Server®数据库中的现有表中。将作为数字数组存储的数据插入到现有数据库表中。

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

数据源=“MS SQL Server认证”;Conn = database(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

创建一个数字数组,其中包含特定库存号的每月销售量数据。指定现有数据库表的列名salesVolume

N = [100000 10000 2000 500 3000 450 600 700 750 1450 00];Colnames = {“StockNumber”“1月”“2”“3”“4”“可能”“6月”“7”“八月”“9”“十月”11月的12月的};

将数值数组转换为MATLAB表。

Data = array2table(n,“VariableNames”, colnames);

将销售量数据插入数据库表中salesVolume

表名=“salesVolume”;sqlwrite(康涅狄格州、表、数据)

将数据库表的内容导入MATLAB并显示最后三行。结果包含插入的销售量数据的新行。

Rows = sqlread(conn,tablename);尾(行,3)
ans = 3×13表StockNumber一月二月三月四月五月六月七月八月九月十月十一月十二月___________ _______ ________ __________ ________ __________ _________ _______ ________ ________ 5.101e+05 235 1800 1040 900 750 700 400 350 500 100 3000 18000 8.9975e+05 123 1700 823 689 621 545 421 495 650 4200 11000 1e+05 1000 2000 500 3000 450 600 700 750 1450 00

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接将MATLAB®中的库存数据插入到Microsoft®SQL Server®数据库中的现有表中。将存储为日期号的日期插入到现有数据库表中。

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

数据源=“MS SQL Server认证”;Conn = database(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

创建一个数字数组,其中包含特定产品的库存数据,包括日期号731011。指定现有数据库表的列名inventoryTable

N = [25 1000 50 731011];Colnames = {“productNumber”“数量”“价格”“inventoryDate”};

将数值数组转换为MATLAB表。

Data = array2table(n,“VariableNames”, colnames);

将库存数据中的日期值转换为datetime数组中。的sqlwrite函数不接受日期数字作为插入的有效数据类型。

n = data.inventoryDate;数据。inventoryDate =日期时间(n,“ConvertFrom”“datenum”);

导入数据库表的内容inventoryTable输入MATLAB并显示最后几行。

表名=“inventoryTable”;Rows = sqlread(conn,tablename);尾(行,3)
ans = 3×4表productNumber inventoryDate数量价格  _____________ ________ _____ _________________________ 11 567年11 1278年“2012-09-11 00:30:24.000”12日22 2010-10-29 18:17:47.000 13 1700年17“2009-05-24 10:58:59.000”

将库存数据插入数据库表inventoryTable。属性指定存储表的模式“模式”名称-值对参数。

sqlwrite(康涅狄格州、表、数据“模式”“dbo”

再次将数据库表的内容导入MATLAB并显示最后几行。结果包含插入的库存数据的新行。

Rows = sqlread(conn,tablename);尾(行,4)
ans = 4×4表productNumber inventoryDate数量价格  _____________ ________ _____ _________________________ 11 567年11 1278年“2012-09-11 00:30:24.000”12日22 2010-10-29 18:17:47.000 13 1700年17 2009-05-24 10:58:59.000 25 1000 50 2001-06-09 00:00:00.000的

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接将来自MATLAB®的销售量数据插入到Microsoft®SQL Server®数据库中的现有表中。插入编号到现有的数据库表中。

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

数据源=“MS SQL Server认证”;Conn = database(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

创建一个数字数组,其中包含特定库存号的月销售量数据,并包含一个号码。的值表明价值。指定现有数据库表的列名salesVolume

n = [100000 Inf 0 2000 500 3000 450 600 700 750 1450 00];Colnames = {“StockNumber”“1月”“2”“3”“4”“可能”“6月”“7”“八月”“9”“十月”11月的12月的};

将数值数组转换为MATLAB表。

Data = array2table(n,“VariableNames”, colnames);

转换的值1月变量来。的sqlwrite功能不接受值作为插入的有效缺失数据。

数据。一月=一月;

导入数据库表的内容salesVolume输入MATLAB并显示最后几行。

表名=“salesVolume”;Rows = sqlread(conn,tablename);尾(行,3)
ans = 3×13表StockNumber 1月2月3月4月5月6月7月8月9月10月11月12月___________ _______ ________ __________ ________ __________ _________ _______ ________ ________ 4.7082e+05 3100 9400 1540 1500 1350 1190 900 867 923 1400 3000 35000 5.101e+05 235 1800 1040 900 750 700 400 350 500 100 3000 18000 8.9975e+05 123 1700 823 701 689 621 545 421 495 650 4200 11000

将销售量数据插入数据库表中salesVolume

sqlwrite(康涅狄格州、表、数据)

再次将数据库表的内容导入MATLAB并显示最后几行。结果包含插入的销售量数据的新行。

Rows = sqlread(conn,tablename);尾(行,4)
ans = 4×13表StockNumber 1月2月3月4月5月6月7月8月9月10月11月12月  ___________ _______ ________ _____ _____ ____ ____ ____ ______ _________ _______ ________ ________ 4.7082 e + 05年3100 9400 1540 1500 1350 1190 900 867 923 1400 3000 35000 5.101 e + 05年235 1800 1040 900 750 700 400 350 500 100 3000 18000 8.9975 e + 05年123 1700 823 701 689 621 545 421 495 650 4200 11000 1 e + 05南0 2000 500 3000 450 600 700 750 1450 0 0

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接将MATLAB®中的产品数据插入到Microsoft®SQL Server®数据库中的现有表中。插入一个字符串添加到现有数据库表中。

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

数据源=“MS SQL Server认证”;Conn = database(数据源,);

检查数据库连接。如果消息属性为空,则连接成功。

conn.Message
Ans = []

创建一个MATLAB表,其中包含一个产品的数据,并包含一个的值productDescription变量。

Data = table([30],[500000],[1000],[30],“零”],“VariableNames”, {“productNumber”“stockNumber”“supplierNumber”“unitCost”“productDescription”});

转换的值productDescription变量来”“。的sqlwrite功能不接受值作为插入的有效缺失数据。

data.productDescription (1) =”“;

导入现有数据库表的内容productTable输入MATLAB并显示最后几行。

表名=“productTable”;Rows = sqlread(conn,tablename);尾(行,3)
ans = 3×5表productNumber stockNumber supplierNumber unitCost productDescription  _____________ ___________ ______________ ________ __________________ 13 4.7082 e + 05 1012 17“煎饼”14 5.101 e + 05 1011 19“披肩”15 8.9975 e + 05 1011 20“零食”

将产品数据插入数据库表productTable

sqlwrite(康涅狄格州、表、数据)

再次将数据库表的内容导入MATLAB并显示最后几行。结果包含插入产品的新行。

Rows = sqlread(conn,tablename);尾(行,4)
ans = 4×5表productNumber stockNumber supplierNumber unitCost productDescription  _____________ ___________ ______________ ________ __________________ 13 4.7082 e + 05 1012 17“煎饼”14 5.101 e + 05 1011 19“披肩”15 8.9975 e + 05 1011 20“零食”30 5 e + 05 1000 25”

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接将MATLAB®库存数据的两列插入到Microsoft®SQL Server®数据库中具有几列的现有表中。在插入数据之后,数据库表将包含前两列中的数据。其他列对插入的数据行有空白条目。

使用Windows®身份验证创建到SQL Server数据库的ODBC连接。请指定空白的用户名和密码。数据库中包含该表inventoryTable有库存数据。

数据源=“MS SQL Server认证”;Conn = database(数据源,”“”“);

创建一个包含产品编号和数量两列数据的表。该数据表示要插入的两个产品。下载188bet金宝搏

Data = table([14;15],[350;400],“VariableNames”, (“productNumber”“数量”]);

将库存数据插入数据库表inventoryTable。该表包含四列:产品编号、数量、价格和库存日期。在这种情况下,每个产品插入的产品编号和数量是已知的,但价格和库存日期是未知的。

表名=“inventoryTable”;sqlwrite(康涅狄格州、表、数据)

将数据库表的内容导入MATLAB并显示最后几行。结果包含插入的库存数据的两个新行。的sqlwrite函数为最后两列插入空白项。

Rows = sqlread(conn,tablename);尾(行,3)
ans =3×4表productNumber数量价格inventoryDate  _____________ ________ _____ _______________________ 13 1700 14.5{' 2009-05-24 10:58:59} 14 350 15 400年南南{0×0字符}{0×0字符}

关闭数据库连接。

关上(康涅狄格州)

输入参数

全部折叠

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

数据库表名,指定为字符向量或字符串标量,表示数据库中表的名称。

例子:“员工”

数据类型:字符|字符串

要插入数据库表的数据,指定为表。

MATLAB表中有效的数据类型有:

  • 数字数组

  • 数值数组的单元格数组

  • 字符向量的单元数组

  • 字符串数组

  • Datetime数组

  • 持续时间数组

  • 逻辑阵列

  • 逻辑阵列的单元阵列

数字数组可以包含以下数据类型:

  • int8

  • uint8

  • int16

  • uint16

  • int32

  • uint32

  • int64

  • uint64

对于日期和时间数据,支持的格式是:金宝app

  • 日期-“yyyy-MM-dd”

  • 时间:“hh: mm: ss”

  • 时间戳,“yyyy-MM-dd HH: mm: ss”

如果以无效格式指定日期和时间数据,则sqlwrite函数自动将数据转换为支持的格式。金宝app

如果以无效格式指定字符向量的单元格数组或字符串数组,则sqlwrite函数使数据库驱动程序能够检查格式。如果格式出乎意料,则数据库驱动程序抛出错误。

可以在现有数据库表或新数据库表中插入数据。中的变量的数据类型数据根据数据库表是否存在而变化。有关有效的数据类型,请参见现有表的数据类型新表的数据类型

请注意

sqlwrite函数只支持金宝app表格的数据类型。数据输入参数。若要插入存储在结构、单元格数组或数字矩阵中的数据,请将数据转换为表格通过使用struct2tablecell2table,array2table函数,分别。

sqlwrite函数不支持数据库首选项金宝appNullNumberWriteNullStringWrite。要插入丢失的数据,请参见接受的缺失数据

例子:表((10、20),{' M '; ' F '})

现有表的数据类型

MATLAB表的变量名必须与数据库表中的列名相匹配。的sqlwrite函数区分大小写。

在向数据库表中插入数据时,使用下表所示的数据类型确保数据具有正确的数据类型。该表将MATLAB表变量的有效数据类型与数据库列的数据类型相匹配。例如,当您将数据插入到具有布尔数据类型,确保MATLAB表中对应的变量是逻辑数组或逻辑数组的单元数组。

MATLAB表变量的数据类型 现有数据库列的数据类型
数值数组或数值数组的单元格数组 数字
  • 字符向量的单元数组

  • 字符串数组

  • Datetime数组

  • 持续时间数组

日期时间,或DATETIME
逻辑阵列或逻辑阵列的cell阵列 布尔
字符向量或字符串数组的单元格数组
  • 字符

  • VARCHAR

  • 文本

  • NTEXT

  • 其他文本数据类型

新表的数据类型

为新数据库表指定的表名在数据库中的所有表中必须是唯一的。

MATLAB表中有效的数据类型有:

  • 数字数组

  • 字符向量的单元数组

  • 字符串数组

  • Datetime数组

  • 持续时间数组

  • 逻辑阵列

sqlwrite函数忽略任何无效的变量类型,只将MATLAB中的有效变量作为列插入到新的数据库表中。

sqlwrite函数将变量的数据类型转换为数据库表中列的默认数据类型。下表将MATLAB表变量的有效数据类型与数据库列的默认数据类型进行匹配。

MATLAB表变量的数据类型 数据库列的默认数据类型
数值数组或数值数组的单元格数组 数字

Datetime数组

时间戳

持续时间数组

时间
逻辑阵列 数字
字符串数组

VARCHAR

请注意

该列的大小等于字符串数组中字符串的最大长度与100的和。

字符向量的单元数组

VARCHAR

请注意

该列的大小等于单元格数组中字符向量的最大长度与100的和。

要指定特定于数据库的列数据类型而不是默认值,请使用“ColumnType”名称-值对参数。例如,您可以指定“ColumnType”、“长整型数字”创建一个长整型数字列中的新数据库表。

同样,使用“ColumnType”参数时,可以指定不在默认列表中的其他数据类型。例如,要插入图像,请指定“ColumnType”、“图像”

接受的缺失数据

在数据库中插入数据所接受的缺失数据取决于MATLAB表变量的数据类型和数据库中列的数据类型。下表将MATLAB表变量的数据类型与数据库列的数据类型进行匹配,并指定每种情况下可接受的缺失数据。

MATLAB表变量的数据类型 数据库列的数据类型 接受的缺失数据
datetime数组 日期时间,或时间戳 NaT
持续时间数组 时间
数组
  • 数字

  • 浮动

  • 小数

  • 真正的

单元阵列数组
  • 数字

  • 浮动

  • 小数

  • 真正的

[],或
字符向量的单元数组 日期时间,或时间戳 NaT的
字符向量的单元数组 字符Varchar,或其他文本数据类型
字符串数组 日期时间,或时间戳 ”““NaT”,或失踪
字符串数组 字符Varchar,或其他文本数据类型 失踪

数据类型:表格

名称-值参数

指定可选的逗号分隔对名称,值参数。名字是参数名和吗价值是对应的值。名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数,如Name1, Value1,…,的家

例子:sqlwrite(conn,"tablename",data, " ColumnType ", ["numeric" "timestamp" "image"])将数据插入到名为的表通过为新数据库表中的所有列指定数据类型。

数据库编目名称,指定为由“目录”以及字符向量或字符串标量。目录充当数据库中模式的容器,并包含相关的元数据信息。一个数据库可以有许多目录。

例子:“目录”、“toy_store”

数据类型:字符|字符串

数据库模式名称,指定为由“模式”以及字符向量或字符串标量。模式定义数据库表、视图、表之间的关系和其他元素。一个数据库编目可以有多个模式。

例子:“模式”、“dbo”

数据类型:字符|字符串

指定为字符向量、字符串标量、字符向量的单元格数组或字符串数组的数据库列类型。使用此名称-值对参数为数据库表中的列定义自定义数据类型。为表中的每一列指定列类型。

例子:“ColumnType”,“数字”“varchar (400)”)

数据类型:字符|字符串|细胞

在R2018a中引入