sql更新语句中update set from用法

        执行一般的sql更新语句为update table_name set column_name=value where column_name1=value1;但是我们有时候需要将某个表用的字段根据两个表中相关字段更新为另一个表中某个字段的数据,即a表中主键aid在b表中有个外键bid相关,b表中字段b需要根据a、b表对应id更新为a表中字段c的数据,如果根据以上的sql一条一条的更新会非常浪费时间,所以我们需要用到update set from的语句用法。

        在数据库中有一张表为student,如下所示:

sql更新语句中update set from用法_第1张图片

        如果以真实的情况来看的话,在一张学生表里,那么有些人的年龄是录入错误的,那么我们需要修改这些错误,在数据量非常大的情况下,这些数据修改起来是很费时间的,所以我们可以用一张excel表核对好所有学生信息,然后导入数据库,成为一张临时的表,如何用excel导入数据库请参见:https://mp.csdn.net/postedit/79943833。

以下为我们导入的临时表:

sql更新语句中update set from用法_第2张图片

其中student_id为生成的guid,那么我们现在需要根据名字在更新他们的年龄,执行以下sql语句:

update student set age=tm.age from temporary tm where student.name=tm.name

执行成功后,就可以看到我们的student表已经更新成功了:

sql更新语句中update set from用法_第3张图片


注:更新、删除等语句在执行后都不可以撤销,返回。所以在操作的时候已经要小心谨慎,如果担心操作失误,可以先备份数据库,或新建两张一样的表,先执行一次,成功后再到正式的表中执行。



你可能感兴趣的:(技术)