主要内容

sqlwrite

插入MATLAB数据到数据库表

描述

例子

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

例子

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

例子

全部折叠

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

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

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

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

conn.Message
ans = []

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

表名=“productTable”;行= sqlread(康涅狄格州、表);尾(行,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 =表(30、500000、1000,25岁,“魔方”,“VariableNames”,{“productNumber”“stockNumber”“supplierNumber”“unitCost”“productDescription”});

产品数据添加到数据库表中productTable

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

数据库表的内容导入MATLAB又显示最后几行。结果产品包含插入一个新行。

行= sqlread(康涅狄格州、表);尾(行,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®数据库中。

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

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

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

conn.Message
ans = []

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

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

将产品数据插入一个新的数据库表toyTable

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

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

行= sqlread(康涅狄格州,表名)
行= 2×5表productNumber stockNumber supplierNumber unitCost productDescription ________ _____________ _________________……* * * 30 5 e + 05 1000 25“魔方”40 6 e + 05 2000 30“娃娃家”

关闭数据库连接。

关上(康涅狄格州)

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

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

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

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

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金宝搏

行= sqlread(康涅狄格州,表名)
行= 2×5表productNumber stockNumber supplierNumber unitCost productDescription ________ _____________ _________________……* * * 30 5 e + 05 1000 25“魔方”40 6 e + 05 2000 30“娃娃家”

关闭数据库连接。

关上(康涅狄格州)

使用ODBC连接从MATLAB®产品数据插入一个新表在Microsoft®SQL Server®数据库中。将数据存储为一个细胞数组插入到新的数据库表。

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

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

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

conn.Message
ans = []

创建一个单元阵列,其中包含两个产品的数据。下载188bet金宝搏

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

细胞数组转换为一个表指定列名MATLAB。

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

将产品数据插入一个新的数据库表toyTable

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

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

行= sqlread(康涅狄格州,表名)
行= 2×5表productNumber stockNumber supplierNumber unitCost productDescription ________ _____________ _________________……* * * 30 5 e + 05 1000 25“魔方”40 6 e + 05 2000 30“娃娃家”

关闭数据库连接。

关上(康涅狄格州)

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

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

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

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

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(年代);

将产品数据插入一个新的数据库表toyTable

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

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

行= sqlread(康涅狄格州,表名)
行= 2×5表productNumber stockNumber supplierNumber unitCost productDescription ________ _____________ _________________……* * * 30 5 e + 05 1000 25“魔方”40 6 e + 05 2000 30“娃娃家”

关闭数据库连接。

关上(康涅狄格州)

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

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

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

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

conn.Message
ans = []

创建一个数字数组,其中包含月度销量数据为一个特定的股票数量。指定现有的数据库表的列的名称salesVolume

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

MATLAB数值数组转换为一个表。

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

销量数据插入到数据库表中salesVolume

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

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

行= sqlread(康涅狄格州、表);尾(行,3)
ans = 3×13表StockNumber 1月2月3月4月5月6月7月8月9月10月11月12月___________累积________ _____ _____ _____ _____上解释说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 1000 0 2000 500 3000 450 600 700 750 1450 0 0

关闭数据库连接。

关上(康涅狄格州)

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

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

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

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

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 = datetime (n,“ConvertFrom”,“datenum”);

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

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

将库存数据插入到数据库表中inventoryTable。指定表的模式存储使用“模式”名称-值对的论点。

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

数据库表的内容导入MATLAB又显示最后几行。结果包含插入一个新行库存数据。

行= sqlread(康涅狄格州、表);尾(行,4)
ans = 4×4表productNumber数量价格inventoryDate _________________ ________ _____ _________________________ 11 567年11 2012-09-11 00:30:24.000 12 1278年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®数据库中。插入数字到现有的数据库表中。

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

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

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

conn.Message
ans = []

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

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

MATLAB数值数组转换为一个表。

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

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

数据。1 =南;

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

表名=“salesVolume”;行= sqlread(康涅狄格州、表);尾(行,3)
ans = 3×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

销量数据插入到数据库表中salesVolume

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

数据库表的内容导入MATLAB又显示最后几行。结果包含插入一个新行销量数据。

行= sqlread(康涅狄格州、表);尾(行,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®数据库中。插入一个字符串到现有的数据库表中。

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

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

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

conn.Message
ans = []

创建一个MATLAB表,它包含一个产品的数据,包括一个的价值productDescription变量。

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

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

data.productDescription (1) =”“;

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

表名=“productTable”;行= sqlread(康涅狄格州、表);尾(行,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又显示最后几行。结果产品包含插入一个新行。

行= sqlread(康涅狄格州、表);尾(行,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®数据库中。插入的数据后,数据库表包含前两列中的数据。其他列有空白的条目插入的行数据。

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

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

创建一个表有两列数据的产品编号和数量。这些数据代表了两个产品插入。下载188bet金宝搏

数据表= ((14、15),(350;400),“VariableNames”,(“productNumber”“数量”]);

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

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

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

行= sqlread(康涅狄格州、表);尾(行,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数据类型的数据输入参数。插入数据存储在一个结构,单元阵列,或数字矩阵,将数据转换成通过使用struct2table,cell2table,array2table函数,分别。

sqlwrite功能不支持数据库的偏好金宝appNullNumberWriteNullStringWrite。插入缺失的数据,看看接受了缺失的数据

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

现有表的数据类型

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

当你将数据插入数据库表,使用的数据类型如下表所示,确保数据正确的数据类型。这个表匹配的有效MATLAB表的数据类型变量数据库列的数据类型。例如,当您将数据插入数据库的列布尔数据类型,确保相应的MATLAB表中的变量是一个逻辑数组或单元阵列逻辑数组。

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

  • 字符串数组

  • Datetime数组

  • 持续时间数组

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

  • 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,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:sqlwrite(康涅狄格州,“表”数据,“ColumnType”,(“数值”“时间戳”“形象”))将数据插入一个新的数据库表命名的表通过指定新的数据库表中的所有列的数据类型。

数据库目录名称,指定为一个字符串标量或特征向量。一个目录作为模式的容器在数据库,包含相关的元数据信息。一个数据库可以有多个目录。

例子:目录= " toy_store "

数据类型:字符串|字符

数据库模式名称,指定为一个字符串标量或特征向量。一个模式定义了数据库表、视图、表之间的关系,和其他元素。数据库目录可以有大量的模式。

例子:模式= " dbo "

数据类型:字符串|字符

数据库列类型,指定为一个特征向量,字符串标量,单元阵列的特征向量,或字符串数组。使用这个名称-值对参数自定义数据类型的列在一个数据库表中。指定一个表中的每一列的列类型。

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

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

版本历史

介绍了R2018a