呵呵,园里的兄弟我又来写简单的文章了,希望大家不吝赐教。这次要说的是sql里面的update语句。说到这里,肯定会有很多兄弟不满意了,不就是update语句吗?谁不会写啊,update table set column=expression [where search_condition 啊。
但真的update语句就仅仅这样吗?它的精髓它的原理是什么呢?我们通过例子来说明:
假设有一张成绩表,只有两个字段,姓名和成绩。怎样用一个sql语句查询出某个学生的姓名,成绩以及在表中的排名?
呵呵,这个问题是上次我发过的,详情见http://www.cnblogs.com/jimmyhsu/archive/2005/03/03/111884.aspx
结果可以去那里看。现在改改问题,假设这张成绩表有三个字段,姓名、成绩和排名,现在只有姓名和成绩有值,怎样将他们的排名更新上去呢?
有朋友可能会提出类似解决方案:先还是用查询语句查询出来,然后通过游标更新排名。
有没有更好的解决方案呢?当然是有的,答案就是用update语句。
update 成绩表 set 排名=(select count(*)+1 from 成绩表 where a.成绩<成绩)
from 成绩表 a
可以看到,只用一个语句就实现了。同时我们也可以发现它跟我们平常写的update语句不同,多了from。其实update语句的原理和select语句很类似,完整的update语句应该是update table set column=expression from table [where search_condition] ,可见后面的一截完全就是个查询语句。当update的table和查询的table(也就是from后面的table)完全一致的时候则可以省略,写成我们最常见的update table set column=expression [where search_condition] 。
上面仅仅是举了个例子来说明update的用法,真正在开发的时候,灵活恰当地使用update可以达到事半功倍的效果哦。
0 0 0
(请您对文章做出评价)
分享到:
相关推荐
这篇内容将深入探讨`UPDATE`语句的一些可能被忽视的技巧,揭示其精髓和背后的原理。 通常,一个基本的`UPDATE`语句是这样的: ```sql UPDATE table_name SET column_name = expression [WHERE search_condition]; ...
如果某个属性为空,对应的UPDATE语句部分就会被忽略,避免了无效的更新操作。 这样的做法有几个优点: 1. **动态性**:可以根据对象的实际状态来决定更新哪些字段,避免了硬编码SQL语句。 2. **健壮性**:不会因为...
SQL UPDATE 语句是数据库管理中非常重要的一个命令,它允许你修改已存在于数据库表中的记录。这个语句主要用于更新现有数据,而不是插入新的记录或删除已有记录。在实际操作中,UPDATE 语句通常与 WHERE 子句一起...
官网上的相关介绍如下:“如果你使用 ON DUPLICATE KEY UPDATE 关键字,插入语句将被执行,如果插入失败由于重复的主键或唯一键,那么 UPDATE 语句将被执行。” 结论 在 MySQL 中,使用 IGNORE 关键字或 ON ...
MySQL中的`UPDATE`语句是用于修改数据库表中已有记录的数据。本文将深入解析`UPDATE`语句的各种用法,帮助读者系统全面地理解和掌握这一关键的SQL操作。 首先,我们要了解`UPDATE`语句的基本结构。对于单表操作,`...
UPDATE语句返回实际被修改的行数,可以通过MySQL的API函数`MySQL_info()`获取匹配和更新的行数及警告数。 多表的UPDATE语句允许同时更新多个表,例如: ```sql UPDATE items, month SET items.price = month.price...
MySQL数据库的更新语句主要涉及两个关键操作:`INSERT`和`REPLACE`。这两个语句主要用于向数据库表中添加新的数据,但它们在处理重复数据时有所不同。 1. `INSERT`语句: - 通常形式:`INSERT INTO tablename ...
3. **更新(Update)**: 更新记录使用UPDATE语句,指定要修改的列和新值,并通常带有WHERE子句来指定哪些记录要更新。例如: ```sql UPDATE TableName SET Column1 = NewValue1, Column2 = NewValue2 WHERE ...
执行这些语句后,MySQL将在执行DROP语句期间暂时忽略外键约束,允许你按任意顺序删除表。需要注意的是,`FOREIGN_KEY_CHECKS`变量是基于会话的,这意味着在关闭客户端或重新连接后,其值会恢复为默认(通常是1,即...
总的来说,SQLite在Android开发中的作用不可忽视,掌握基本的SQL语句操作是提升开发效率的关键。通过Eclipse结合SQLiteOpenHelper类,开发者可以轻松地管理应用程序的本地数据库。在实际项目中,还需要注意数据库...
除了以上讨论的点,数据库操作语句还包括`INSERT`(插入数据)、`UPDATE`(修改数据)、`DELETE`(删除数据)以及复杂的`JOIN`操作(如全外连接、交叉连接等)。此外,子查询、聚合函数的组合使用、窗口函数、分组和...
它提供了丰富的API来执行各种类型的SQL语句,如SELECT、INSERT、UPDATE、DELETE等。QSqlQuery类的使用对于开发涉及数据库操作的Qt应用至关重要。下面我们将深入探讨如何利用QSqlQuery类执行SQL语句,以及其相关的...
- `COUNT(*)`不会忽略空值,而其他聚合函数会自动忽略空值。(选择题16) - **空值处理**:SQL中使用`NULL`表示未知或未定义的值。 - `IS NULL`和`IS NOT NULL`用于判断值是否为空。(选择题17) #### 10. 模式...
“常用SQL语句大全”文档可能还包括了一些不常见的或者特定场景下的SQL使用技巧,如窗口函数、递归查询、数据类型转换等,这些都是SQL学习和实践中不可忽视的部分。通过深入学习和实践,你可以熟练地运用SQL来解决...
- UPDATE语句执行耗时0.03秒,更新1条记录。 - DELETE语句执行耗时0.04秒,删除1条记录。 #### 六、总结 《DB查询分析器》作为一款优秀的数据库客户端工具,不仅支持多种数据库产品的访问,还能够提供详细的DML...
- **更新操作**:利用`<set>`和`<where>`,可以构建动态的UPDATE语句,只更新那些有变化的字段。 ### 安全性考虑 虽然动态SQL提供了极大的灵活性,但也带来了潜在的安全风险,特别是SQL注入的问题。为了避免这些...
当字段存储的数字带有前导零时,如果该字段被定义为整型(如INT),则SQL系统可能会自动忽略这些前导零,因为它们对数值大小没有影响。这可能导致数据失真,特别是在需要保持原始格式或精确度的场景下。 标题和描述...
如果指定了这个选项,在修改的事件不存在的情况下,命令不会报错而是直接忽略此次修改操作。 - **event_name**: - 指定需要修改的事件的名称。 - **ON SCHEDULE**: - 定义事件的执行周期。可以通过此选项更改...