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 = titles.ytd_sales + sales.qty

FROM titles, sales

WHERE titles.title_id = sales.title_id

AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

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

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

UPDATE titles

SET ytd_sales =

(SELECT SUM(qty)

FROM sales

WHERE sales.title_id = titles.title_id

AND sales.ord_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 authors.au_id = t1.au_id

一、使用Windows系统自带的数据源工具创建基于Access的数据库。具体步骤是:控制面板--》管理工具--》数据源(ODBC)---》用户DSN--》添加。创建数据源SampleDB。

二、在Matlab中连接ODBC数据源:可以使用database工具箱或者代码编程的方式,下面介绍编程的方式

1、连接数据库:

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

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

ping(conn)

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

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

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

result=fetch(cursor)

5、关闭游标和链接

close(cursor)

close(conn)

备注:上面是采用cursor.fetch的方式,也可采用database.fetch的方式

conn=database(...)

result=fetch(conn, sqlquery)

而cursor.fetch 的编码方式是:

conn=database(...)

curs=exec(conn, sqlquery)

curs=fetch(curs)

result = curs.Data

1。 C++ 主要是 编程(就是通常大家所认为的coding),和 C &Java &Pascal……是同一类东西; 而 matlab 主要是 数据处理(通过编程解决问题,但如果一个人在编matlab,我们通常不会说他在 编程,那会被人误解是在编 C++ 之类的)。

2。 正如楼所说,matlab是由C++编的,但其实这两者已无其他相通之处。也许你会说学过C++学matlab会好学,但其实是只要学过 编程语言的,一般学其他语言都比较容易入手(相对性的说),那只是思想上的相通(当然语言有一些相同之处,但本人觉得思想作用更是突出。

。。)总之你学 matlab or C++,那你也就学了一种编程思想,这东西是内在的、持久的,我觉得也是最重要的,一种语言不可能打天下,但有了这种思想,入手其他语言就很容易了,这也是为什么程序员都会很多种语言!


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存