怎么学习MySQLMySQL中update使用

怎么学习MySQLMySQL中update使用,第1张

可以在自己的电脑上安装MYSQL,然后下载网上的学习资料进行自学。

UPDATE语句

UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [,

col_name2=expr2 ] [WHERE where_definition]

这个函数可以用新值更新原有表行中的各列。

更改mysql配置如下:

# Uncomment the following if you are using InnoDB tables

#innodb_data_home_dir = /var/lib/mysql/

innodb_data_file_path = ibdata1:50M:autoextend

#innodb_log_group_home_dir = /var/lib/mysql/

#innodb_log_arch_dir = /var/lib/mysql/

# You can set _buffer_pool_size up to 50 - 80 %

# of RAM but beware of setting memory usage too high

innodb_buffer_pool_size = 256M

innodb_additional_mem_pool_size = 10M

# Set _log_file_size to 25 % of buffer pool size

#innodb_log_file_size = 128M

innodb_log_buffer_size = 8M

#innodb_flush_log_at_trx_commit = 1

#innodb_lock_wait_timeout = 50

innodb_support_xa=off

用mysql-connector-odbc-5[1]15-win32msi这个驱动程序

哥们,你建主键了没?

排除了以上问题,还慢,就看看你的连接了,如果是自己写的,那么建议你找个别人写好的连接类试试。有时候代码没问题,db没问题,那么只有时连接的问题了!!

希望对你有用。

首先,单表的UPDATE语句:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name

SET col_name1=expr1 [, col_name2=expr2 ]

[WHERE where_definition]

[ORDER BY ]

[LIMIT row_count]

其次,多表的UPDATE语句:

UPDATE [LOW_PRIORITY] [IGNORE] table_references

SET col_name1=expr1 [, col_name2=expr2 ]

[WHERE where_definition]

UPDATE语法可以用新值更新原有表行中的各列。

SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。

如果没有WHERE子句,则更新所有的行。如果指定了ORDER BY子句,则按照被指定的顺序对行进行更新。

LIMIT子句用于给定一个限值,限制可以被更新的行的数目。

UPDATE语句支持以下修饰符:

1,如果您使用LOW_PRIORITY关键词,则UPDATE的执行被延迟了,直到没有其它的客户端从表中读取为止。

2,如果您使用IGNORE关键词,则即使在更新过程中出现错误,更新语句也不会中断。

如果出现了重复关键字冲突,则这些行不会被更新。如果列被更新后,新值会导致数据转化错误,则这些行被更新为最接近的合法的值。

如果您在一个表达式中通过tbl_name访问一列,则UPDATE使用列中的当前值。

例如,把年龄列设置为比当前值多一:

代码如下:

mysql> UPDATE persondata SET age=age+1;

UPDATE赋值被从左到右评估。

例如,对年龄列加倍,然后再进行增加:

代码如下:

mysql> UPDATE persondata SET age=age2, age=age+1;

如果您把一列设置为其当前含有的值,则MySQL会注意到这一点,但不会更新。

如果您把被已定义为NOT NULL的列更新为NULL,则该列被设置到与列类型对应的默认值,并且累加警告数。

对于数字类型,默认值为0;对于字符串类型,默认值为空字符串('');对于日期和时间类型,默认值为“zero”值。

UPDATE会返回实际被改变的行的数目。Mysql_info() C API函数可以返回被匹配和被更新的行的数目,以及在UPDATE过程中产生的警告的数量。

您可以使用LIMIT row_count来限定UPDATE的范围。LIMIT子句是一个与行匹配的限定。

只要发现可以满足WHERE子句的row_count行,则该语句中止,不论这些行是否被改变。

如果一个UPDATE语句包括一个ORDER BY子句,则按照由子句指定的顺序更新行。

您也可以执行包括多个表的UPDATE *** 作。table_references子句列出了在联合中包含的表。

例子:

代码如下:

SQL>UPDATE items,month SET itemsprice=monthprice

WHERE itemsid=monthid;

说明:以上代码显示出了使用逗号 *** 作符的内部联合,但是multiple-table UPDATE语句可以使用在SELECT语句中允许的任何类型的联合,比如LEFT JOIN。

注释:不能把ORDER BY或LIMIT与multiple-table UPDATE同时使用。

在一个被更改的multiple-table UPDATE中,有些列被引用。您只需要这些列的UPDATE权限。有些列被读取了,但是没被修改。您只需要这些列的SELECT权限。

如果您使用的multiple-table UPDATE语句中包含带有外键限制的InnoDB表,则MySQL优化符处理表的顺序可能与上下层级关系的顺序不同。

在此情况下,语句无效并被 回滚。同时,更新一个单一表,并且依靠ON UPDATE功能。

该功能由InnoDB提供,用于对其它表进行相应的修改。

目前,不能在一个子查询中更新一个表,同时从同一个表中选择。

update语句的几种基本用法

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

以上就是mysql update语句用法的全部内容

m_Res=mysql_query(&m_My_Cont,"update pswd set my_pswd='"+我的变量名+"'");

另外,你这条update如果没有where限制,会更新这张表中所有的my_pswd。

以上就是关于怎么学习MySQLMySQL中update使用全部的内容,包括:怎么学习MySQLMySQL中update使用、mysqL update 太慢,求解决方法、mysql中一个update语句如何去写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9851722.html

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

发表评论

登录后才能评论

评论列表(0条)

保存