Mysql实例mysql update语句的用法详解
《Mysql实例mysql update语句的用法详解》要点: MYSQL必读首先,单表的UPDATE语句: MYSQL必读UPDATE [LOW_PRIORITY] [IGNORE] tbl_name MYSQL必读其次,多表的UPDATE语句: MYSQL必读UPDATE [LOW_PRIORITY] [IGNORE] table_references MYSQL必读UPDATE语法可以用新值更新原有表行中的各列. MYSQL必读SET子句指示要修改哪些列和要给予哪些值.WHERE子句指定应更新哪些行. MYSQL必读UPDATE语句支持以下修饰符: MYSQL必读1,如果您使用LOW_PRIORITY关键词,则UPDATE的执行被延迟了,直到没有其它的客户端从表中读取为止. MYSQL必读2,如果您使用IGNORE关键词,则即使在更新过程中出现错误,更新语句也不会中断. MYSQL必读如果您在一个表达式中通过tbl_name访问一列,则UPDATE使用列中的当前值. MYSQL必读例如,把年龄列设置为比当前值多一: ? UPDATE赋值被从左到右评估. MYSQL必读例如,对年龄列加倍,然后再进行增加: ? 如果您把一列设置为其当前含有的值,则MySQL会注意到这一点,但不会更新. MYSQL必读如果您把被已定义为NOT NULL的列更新为NULL,则该列被设置到与列类型对应的默认值,并且累加警告数. MYSQL必读UPDATE会返回实际被改变的行的数目.Mysql_info() C API函数可以返回被匹配和被更新的行的数目,以及在UPDATE过程中产生的警告的数量. MYSQL必读您可以使用LIMIT row_count来限定UPDATE的范围.LIMIT子句是一个与行匹配的限定. MYSQL必读如果一个UPDATE语句包括一个ORDER BY子句,则按照由子句指定的顺序更新行. MYSQL必读您也可以执行包括多个表的UPDATE操作.table_references子句列出了在联合中包含的表. MYSQL必读例子: 代码如下:SQL>UPDATE items,month SET items.price=month.price WHERE items.id=month.id; MYSQL必读说明:以上代码显示出了使用逗号操作符的内部联合,但是multiple-table UPDATE语句可以使用在SELECT语句中允许的任何类型的联合,比如LEFT JOIN. MYSQL必读注释:不能把ORDER BY或LIMIT与multiple-table UPDATE同时使用. MYSQL必读在一个被更改的multiple-table UPDATE中,有些列被引用.您只需要这些列的UPDATE权限.有些列被读取了,但是没被修改.您只需要这些列的SELECT权限. MYSQL必读如果您使用的multiple-table UPDATE语句中包含带有外键限制的InnoDB表,则MySQL优化符处理表的顺序可能与上下层级关系的顺序不同. MYSQL必读在此情况下,语句无效并被 回滚.同时,更新一个单一表,并且依靠ON UPDATE功能. MYSQL必读目前,不能在一个子查询中更新一个表,同时从同一个表中选择. MYSQL必读update语句的几种基本用法 MYSQL必读A. 使用简单的 UPDATE MYSQL必读下列示例说明如果从 UPDATE 语句中去除 WHERE 子句,所有的行会受到什么影响. MYSQL必读下面这个例子说明,如果表 publishers 中的所有出版社将总部搬迁到佐治亚州的亚特兰大市,表 publishers 如何更新. 代码如下:UPDATE publishers SET city = 'Atlanta',state = 'GA' MYSQL必读本示例将所有出版商的名字变为 NULL. 代码如下:UPDATE publishers SET pub_name = NULL MYSQL必读也可以在更新中使用计算值.本示例将表 titles 中的所有价格加倍. 代码如下:UPDATE titles SET price = price * 2 MYSQL必读B.把 WHERE 子句和 UPDATE 语句一起使用 UPDATE authors ??? SET state = 'PC',city = 'Bay City' ?????? WHERE state = 'CA' AND city = 'Oakland' MYSQL必读必须编写另一个语句来更改北加利福尼亚其它城市的居民所在的州名. MYSQL必读C.通过 UPDATE 语句使用来自另一个表的信息 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) MYSQL必读这个例子假定,一种特定的商品在特定的日期只记录一批销售量,而且更新是最新的.如果不是这样(即如果一种特定的商品在同一天可以记录不止一批销售量),这里所示的例子将出错.例子可正确执行,但是每种商品只用一批销售量进行更新,而不管那一天实际销售了多少批.这是因为一个 UPDATE 语句从不会对同一行更新两次. MYSQL必读对于特定的商品在同一天可销售不止一批的情况,每种商品的所有销售量必须在 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 MYSQL必读D. 将 UPDATE 语句与 SELECT 语句中的 TOP 子句一起使用 UPDATE authors SET state = 'ZZ' FROM (SELECT TOP 10 * FROM authors ORDER BY au_lname) AS t1 WHERE authors.au_id = t1.au_id MYSQL必读以上就是mysql update语句用法的全部内容,希望对大家有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |