SQL里SELECT和UPDATE语句的用法.

说白了,SELECT和UPDATE是SQL中最常用的两个命令,但它们不可能一分钟就让数据库崩溃。

扩展一下,SELECT的关键在于WHERE条件怎么写。
去年我们跑一个项目,用SELECT查询3 0岁以上的用户,结果返回了几百万条数据,把服务器CPU烧坏了。
这就是行话中所谓的雪崩效应。
事实上,前面的一个小延迟就导致了其余部分的崩溃。
因此,最好先使用SELECT COUNT()来运行数量级。
例如,如果要检查超过3 000个用户的表,则直接使用LIMIT 1 ,000。
还有一点就是UPDATE的WHERE条件一定不能省略。
上次有同事忘记加条件,直接更新整个表来改变字段值。
他连夜加班才恢复——说实话,挺尴尬的。
还有另一个关键细节。
例如UPDATE时使用WHERE job_id = 1 2 ,但实际表中只有5 条记录,所以只会改变5 条记录,不会进行随机改变。

一开始我以为更新而不添加where会改变所有的行,但后来我发现这是错误的。
它将更改当前可以找到的匹配行。
等等,还有一件事。
如果表中有自增主键,而更新时忘记添加where条件,则新的数据主键会从0开始随机填充。

建议多在实际项目中练习,不要只看教程。

SQL里面的UPDATE更新语句数据怎么写?

上周,我的朋友正在学习 SQL UPDATE 语句。
他说:
语法有点简单,即 UPDATE 表名 SET 列名 = 新值,其中列名 = 固定值。

比如他有一个表叫Person1 ,他想更新一个人的名字,所以他写:
sql 更新人员设置名字 = 'Fred',其中姓氏 = 'Wilson'
结果,每个叫威尔逊的人都变成了弗雷德。

然后,他想更新地址和城市信息,所以他写道:
sql UPDATE person SET 地址 = '中山 2 3 ',城市 = '南京' WHERE 姓氏 = 'Wilson'
于是,威尔逊的地址变成了中山2 3 ,城市变成了南京。

他表示,这样做之后,表中的相关记录将会更新。
好吧,他只是想到了别的事情。
如果 WHERE 条件不匹配任何记录,则此 UPDATE 语句将不会执行任何更新。
算了,就让他暂时这样用吧。

用于更改表中指定记录的某字段值的sql命令

说实话,刚学SQL的时候,update语句让我头疼了一段时间。
记得第一次把where条件拼错的时候,我把整个表的数据都改成了同一个值。
太尴尬了。
因此,现在,在写更新语句之前,我总是对自己说三遍:带到哪里,带到哪里,带到哪里!
以您提供的将名为 Wilson 的人的姓名更新为 Fred 的示例为例。
这其实是一个很常见的操作。
但有趣的是,有时我们面临的问题更为复杂。
例如,有一次我面临需要更新某个部门员工的工资,但条件是排除已经离职的员工。
目前,仅仅写where Department='IT'是不够的,还需要添加where status='active'。
说实话,当组合多个条件时,很容易漏掉一个,从而导致更新错误。

说到更新多个字段,我有一个小习惯。
每次写更新语句时,我首先考虑要更改哪些列,然后用逗号分隔它们。
例如,在您提供的示例中,要更新地址和城市,我会编写地址='zhongshan2 3 ',城市='南京'。
个人认为这样写比分别写两条update语句清晰很多,代码也更干净。

但尽管如此,更新运算符确实是一个强大但危险的工具。
有时数据库表非常大,您执行的更新语句可能需要很长时间。
我记得有一次更新一个有几百万条记录的表中的数据,需要等待近十分钟才能得到执行结果。
因此,在编写更新语句之前,我将在一个小型测试表上运行它,看看它的效果如何。
我个人没有处理数百万表的经验,但我记得数据范围从X秒到几十秒。
具体时间应该取决于你的表的结构和索引。

还有一个细节。
在更新语句中用新值替换旧值时,请注意注意数据类型。
例如,如果将整数字段更改为字符串,则肯定会出现问题。
当时不明白为什么,后来了解到是数据库强制类型转换,但是如果转换失败就会抛出错误信息。
因此,在更改值之前最好检查数据类型是否正确。

总的来说,如果使用正确,更新运算符是一个神奇的工具,但如果使用不正确,它可能会带来灾难。
所以写之前要考虑清楚,尤其是条款,不要马虎。