主要内容

sqlouterjoin

两个PostgreSQL数据库表之间的外部连接

描述

例子

数据= sqlouterjoin (康涅狄格州lefttablerighttable返回由左右数据库表之间的外部连接产生的表。此函数使用两个数据库表中的所有共享列或键匹配行。外部连接保留两个表之间已匹配和未匹配的行。执行这个函数等同于编写SQL语句SELECT * FROM lefttable, rightttable OUTER JOIN left ttable。Key = rightable . Key

例子

数据= sqlouterjoin (康涅狄格州lefttablerighttable名称,值使用由一个或多个名称-值对参数指定的其他选项。例如,“钥匙”、“productNumber”指定使用productNumber列作为连接两个数据库表的键。

例子

全部折叠

使用PostgreSQL本机接口数据库连接将产品数据从两个PostgreSQL数据库表之间的外部连接导入到MATLAB®。

使用数据源名称、用户名和密码创建到PostgreSQL数据库的PostgreSQL本机接口数据库连接。数据库包含表productTable而且供应商

数据源=“PostgreSQLDataSource”;用户名=“dbdev”;密码=“matlab”;Conn = postgresql(数据源,用户名,密码);

连接两个数据库表,productTable而且供应商.的productTable表是连接的左表,而供应商表是连接的右表。的sqlouterjoin函数自动检测表之间的共享列。的sqlouterjoin函数自动检测表之间的共享列。数据是一个表,其中包含来自两个表的匹配行和不匹配行。

lefttable =“productTable”;righttable =“供应商”;Data = sqlouterjoin(conn,left ttable,right ttable);

显示联接数据的前三行。右表中的列(供应商)出现在左表列的右侧(productTable).

头(数据,3)
ans =表3×10productnumber stocknumber suppliernumber unitcost productdescription suppliernumber_1 suppliername faxnumber城市国家  _____________ ___________ ______________ ________ __________________ ________________ _________________ __________ ________________ ______________ 1 4.0035 e + 05 1001 14“积木”1001“神奇产品”“纽约”“美国”“212 435 1617”22022世界杯八强谁会赢? 4.0031 e + 05 1002 9“绘画”1002“很棒的玩具”“伦敦”“联合王国”“44 456 9345 3 4.01 e + 05 1009 17“紧身”1009“Doll’s Galore”“伦敦”“英国”“44 222 2397”

关闭数据库连接。

关上(康涅狄格州)

使用PostgreSQL本地接口数据库连接,从两个PostgreSQL数据库表导入连接的产品数据到MATLAB®。指定用于连接表的键。

使用数据源名称、用户名和密码创建到PostgreSQL数据库的PostgreSQL本机接口数据库连接。数据库包含表productTable而且供应商

数据源=“PostgreSQLDataSource”;用户名=“dbdev”;密码=“matlab”;Conn = postgresql(数据源,用户名,密码);

连接两个数据库表,productTable而且供应商.的productTable表是连接的左表,而供应商表是连接的右表。方法在表之间指定键或共享列“钥匙”名称-值对参数。数据是一个表,其中包含来自两个表的匹配行和不匹配行。

lefttable =“productTable”;righttable =“供应商”;Data = sqlouterjoin(conn,lefttable, rightttable,“钥匙”“supplierNumber”);

显示匹配数据的前三行。右表中的列(供应商)出现在左表列的右侧(productTable).

头(数据,3)
ans =表3×10productnumber stocknumber suppliernumber unitcost productdescription suppliernumber_1 suppliername faxnumber城市国家  _____________ ___________ ______________ ________ __________________ ________________ _________________ __________ ________________ ______________ 1 4.0035 e + 05 1001 14“积木”1001“神奇产品”“纽约”“美国”“212 435 1617”22022世界杯八强谁会赢? 4.0031 e + 05 1002 9“绘画”1002“很棒的玩具”“伦敦”“联合王国”“44 456 9345 3 4.01 e + 05 1009 17“紧身”1009“Doll’s Galore”“伦敦”“英国”“44 222 2397”

关闭数据库连接。

关上(康涅狄格州)

输入参数

全部折叠

PostgreSQL本地接口数据库连接,指定为连接对象。

左表,指定为字符向量或字符串标量。在连接的左侧指定数据库表的名称。

例子:“inventoryTable”

数据类型:字符|字符串

右表,指定为字符向量或字符串标量。在连接的右侧指定数据库表的名称。

例子:“productTable”

数据类型:字符|字符串

名称-值参数

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

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

例子:data = sqlouterjoin(conn,"productTable","suppliers", " Type "," left "," MaxRows ", 5)在左表和右表之间执行外部左连接,并返回连接数据的五行。

左目录,指定为逗号分隔的对,由“LeftCatalog”和字符向量或字符串标量。指定存储连接左表的数据库编目名称。

例子:“LeftCatalog”、“toy_store”

数据类型:字符|字符串

右目录,指定为逗号分隔的对,由“RightCatalog”和字符向量或字符串标量。指定存储连接的正确表的数据库编目名称。

例子:“RightCatalog”、“toy_store”

数据类型:字符|字符串

左模式,指定为逗号分隔的对,由“LeftSchema”和字符向量或字符串标量。指定存储连接左表的数据库模式名称。

例子:“LeftSchema”、“dbo”

数据类型:字符|字符串

右模式,指定为逗号分隔的对,由“RightSchema”和字符向量或字符串标量。指定存储连接的右表的数据库模式名称。

例子:“RightSchema”、“dbo”

数据类型:字符|字符串

键,指定为逗号分隔的对,由“钥匙”以及字符向量、字符串标量、字符向量的单元格数组或字符串数组。指定字符向量或字符串标量来表示一个键。对于多个键,请指定字符向量的单元格数组或字符串数组。使用此名称-值对参数标识要连接的两个表之间的共享键(列)。

方法不能使用此名称-值对参数“LeftKeys”而且“RightKeys”名称-值对参数。

例子:“钥匙”、“MANAGER_ID”

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

左键,指定为逗号分隔的对,由“LeftKeys”以及字符向量、字符串标量、字符向量的单元格数组或字符串数组。指定字符向量或字符串标量来表示一个键。对于多个键,请指定字符向量的单元格数组或字符串数组。此名称-值对参数标识左表中连接到右表的键。

方法使用此名称-值对参数“RightKeys”名称-值对参数。两个参数必须指定相同数量的键。的sqlouterjoin函数根据键的顺序对键的值。

例子:'LeftKeys',["productNumber" "Price"],'RightKeys',["productNumber" "Price"]

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

右键,指定为逗号分隔的一对,由“RightKeys”以及字符向量、字符串标量、字符向量的单元格数组或字符串数组。指定字符向量或字符串标量来表示一个键。对于多个键,请指定字符向量的单元格数组或字符串数组。此名称-值对参数为连接到左表标识右表中的键。

方法使用此名称-值对参数“LeftKeys”名称-值对参数。两个参数必须指定相同数量的键。的sqlouterjoin函数根据键的顺序对键的值。

例子:'LeftKeys',["productIdentifier" "Cost"],'RightKeys',["productNumber" "Price"]

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

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

例子:MaxRows, 10

数据类型:

外部连接类型,指定为逗号分隔的对,由“类型”其中一个价值观是:

  • “全部”—完全连接检索在两个表的选定列中具有匹配值的记录,以及从左右表中都具有不匹配值的记录。

  • “左”—左连接检索在两个表的选定列中具有匹配值的记录,而只从左表中检索不匹配的记录。

  • “对”—右连接检索在两个表的选定列中具有匹配值的记录,而只从右表中检索不匹配的记录。

可以将此值指定为字符向量或字符串标量。

例子:“类型”、“左派”

变量命名规则,指定为逗号分隔的对,由“VariableNamingRule”其中一个价值观是:

  • “保存”时,保留大多数变量名sqlouterjoin函数导入数据。详细信息请参见限制部分。

  • “修改”—删除变量名中的非ascii字符sqlouterjoin函数导入数据。

例子:“VariableNamingRule”,“修改”

数据类型:字符串

输出参数

全部折叠

连接数据,作为表返回,其中包含由左右数据库表中的键匹配的行和保留的不匹配行。数据还为左右表中的每一列包含一个变量。

默认情况下,变量数据类型为对于包含数字数据库表中的数据类型。

如果列名在连接的数据库表之间共享且大小写相同,则sqlouterjoin中对应的变量名添加唯一后缀数据

的变量数据对应于左表中包含的列的在正确的数据库表中没有匹配的行时。类似地,对应于右表中列的变量包含左数据库表中没有匹配的行时的值。

导入数据时,sqlouterjoin函数将每个列的数据类型从PostgreSQL数据库转换为MATLAB数据类型。此表将数据库列的数据类型映射到转换后的MATLAB数据类型。

PostgreSQL数据类型 MATLAB数据类型

布尔

逻辑

短整型

整数

长整型数字

小数

数字

真正的

双精度

Smallserial

串行

Bigserial

Varchar

字符串

字符

字符串

文本

字符串

Bytea

字符串

时间戳

datetime

Timestampz

datetime

Abstime

datetime

日期

datetime

时间

持续时间

Timez

持续时间

时间间隔

calendarDuration

Reltime

calendarDuration

枚举

分类

Cidr

字符串

Inet

字符串

Macaddr

字符串

Uuid

字符串

Xml

字符串

限制

名称-值对参数“VariableNamingRule”当它被设置为该值时是否有这些限制“修改”

  • 变量名属性RowNames,VariableNames的保留标识符表格数据类型。

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

版本历史

在R2020b中引入

Baidu
map