Matlab 数据库编程 update用法

Matlab 数据库编程 update用法,第1张

A 使用简单的 UPDATE

下列示例说明如果从 UPDATE 语句中去除 WHERE 子句,所有的行会受到什么影响。

下面这个例子说明,如果表 publishers 中的所有出版社将总部搬迁到佐治亚州的亚特兰大市,表 publishers 如何更新。

UPDATE publishers

SET city = 'Atlanta', state = 'GA'

本示例将所有出版商的名字变为 NULL。

UPDATE publishers

SET pub_name = NULL

也可以在更新中使用计算值。本示例将表 titles 中的所有价格加倍。

UPDATE titles

SET price = price 2

B把 WHERE 子句和 UPDATE 语句一起使用

WHERE 子句指定要更新的行例如,在下面这个虚构的事件中,北加利福尼亚更名为 Pacifica(缩写为 PC),而奥克兰的市民投票决定将其城市的名字改为 Bay City。这个例子说明如何为奥克兰市以前的所有居民(他们的地址已经过时)更新表 authors。

UPDATE authors

SET state = 'PC', city = 'Bay City'

WHERE state = 'CA' AND city = 'Oakland'

必须编写另一个语句来更改北加利福尼亚其它城市的居民所在的州名。

C通过 UPDATE 语句使用来自另一个表的信息

本示例修改表 titles 中的 ytd_sales 列,以反映表 sales 中的最新销售记录。

UPDATE titles

SET ytd_sales = titlesytd_sales + salesqty

FROM titles, sales

WHERE titlestitle_id = salestitle_id

AND salesord_date = (SELECT MAX(salesord_date) FROM sales)

这个例子假定,一种特定的商品在特定的日期只记录一批销售量,而且更新是最新的。如果不是这样(即如果一种特定的商品在同一天可以记录不止一批销售量),这里所示的例子将出错。例子可正确执行,但是每种商品只用一批销售量进行更新,而不管那一天实际销售了多少批。这是因为一个 UPDATE 语句从不会对同一行更新两次。

对于特定的商品在同一天可销售不止一批的情况,每种商品的所有销售量必须在 UPDATE 语句中合计在一起,如下例所示:

UPDATE titles

SET ytd_sales =

(SELECT SUM(qty)

FROM sales

WHERE salestitle_id = titlestitle_id

AND salesord_date IN (SELECT MAX(ord_date) FROM sales))

FROM titles, sales

D 将 UPDATE 语句与 SELECT 语句中的 TOP 子句一起使用

这个例子对来自表 authors 的前十个作者的 state 列进行更新。

UPDATE authors

SET state = 'ZZ'

FROM (SELECT TOP 10 FROM authors ORDER BY au_lname) AS t1

WHERE authorsau_id = t1au_id

2 使用struct函数创建结构

使用struct函数也可以创建结构,该函数产生或吧其他形式的数据转换为结构数组

struct的使用格式为:

s = sturct('field1',values1,'field2',values2,…);//注意引号

该函数将生成一个具有指定字段名和相应数据的结构数组,其包含的数据values1、valuese2等必须为具有相同维数的数据,数据的存放位置域其他结构位置一一对应的。对于struct的赋值用到了元胞数组。数组values1、values2等可以是元胞数组、标量元胞单元或者单个数值。每个values的数据被赋值给相应的field字段。

当valuesx为元胞数组的时候,生成的结构数组的维数与元胞数组的维数相同。而在数据中不包含元胞的时候,得到的结构数组的维数是1×1的。例如:

s = struct('type',{'big','little'},'color',{'blue','red'},'x',{3,4})

s =

1x2 struct array with fields:

type

color

x

得到维数为1×2的结构数组s,包含了type、color和x共3个字段。这是因为在struct函数中{'big','little'}、{'blue','red'}和{3,4}都是1×2的元胞数组,可以看到两个数据成分分别为:

s(1,1)

ans =

type: 'big'

color: 'blue'

x: 3

s(1,2)

ans =

type: 'little'

color: 'red'

x: 4

相应的,如果将struct函数写成下面的形式:

s = struct('type',{'big';'little'},'color',{'blue';'red'},'x',{3;4})

s =

2x1 struct array with fields:

type

color

x

则会得到一个2×1的结构数组。

下面给出利用struct构建结构数组的具体实例。

例431-3利用函数struct,建立温室群的数据库。

(1) struct预建立空结构数组方法之一

a = cell(2,3); % 创建2×3的元胞数组

green_house_1=struct('name',a,'volume',a,'parameter',a(1,2))

green_house_1 =

2x3 struct array with fields:

name

volume

parameter

(2)struct预建空结构数组方法之二

green_house_2=struct('name',a,'volume',[],'parameter',[])

green_house_2 =

2x3 struct array with fields:

name

volume

parameter

(3)struct预建空结构数组方法之三

green_hopuse_3(2,3)=struct('name',[],'volume',[],'parameter',[])

green_hopuse_3 =

2x3 struct array with fields:

name

volume

parameter

(4)struct创建结构数组方法之四

a1={'六号房'};a2={'3200立方米'};

green_house_4(2,3)=struct('name',a1,'volume',a2,'parameter',[]);

T6=[312,304,316,287;297,311,309,296]; green_house_4(2,3)parametertemperature=T6;

green_house_4

ans =

2x3 struct array with fields:

name

volume

parameter

引用时就输入struct()就可以了

之前我一般是把sqlite的数据导出到excel里面,然后把数据复制到matlab里面再跑算法的。

感觉有点低效,所以最近两天安装了一个sqlite驱动,用matlab打开db文件,读出数据之后直接跑算法。

您好,我来回答你:

1、连接数据库:

conn=database( 'SampleDB' , '' , '' )

2、测试数据库是否连接成功

ping(conn)

3、打开游标,并把执行SQL语句

cursor = exec(conn,'select from PeopleInfo')

4、读取数据,可以从游标中读取,也可直接读取

result=fetch(cursor)

5、关闭游标和链接

close(cursor)

close(conn)

备注:上面是采用cursorfetch的方式,也可采用databasefetch的方式

conn=database()

result=fetch(conn, sqlquery)

而cursorfetch 的编码方式是:

conn=database()

curs=exec(conn, sqlquery)

curs=fetch(curs)

result = cursData

如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助。

以Matlab R2012b为例。

首先打开matlab;选择current folder并加入当前路径;选择指定的txt文件,右键,选择导入数据;选择相应的数据类型,这里应选matrix。

具体如下图所示:

1、开始导入数据。

2、导入数据。

以上就是关于Matlab 数据库编程 update用法全部的内容,包括:Matlab 数据库编程 update用法、Matlab中,如何生成带变量的struct,如何引用、matlab *** 作sqlite数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9399647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存