📜  sql 案例更新 - SQL (1)

📅  最后修改于: 2023-12-03 15:35:06.440000             🧑  作者: Mango

SQL案例更新 - 主题介绍

本文将会介绍几个常见的SQL案例更新,以帮助程序员更好地理解SQL的应用。

FAQ
更新单表某一列的值

如果需要更新一张表中的某个列的值,可以使用以下的SQL语句:

UPDATE table_name SET column_name = new_value WHERE condition;

其中,table_name为需要更新的表名,column_name为需要更新的列名,new_value为新值,condition为筛选条件。

例如,想要将表students中的age列全部修改为20,可以使用以下语句:

UPDATE students SET age = 20;

还可以加上WHERE语句,限制更新的范围。例如,只想将age小于18的行修改为18,可以使用以下语句:

UPDATE students SET age = 18 WHERE age < 18;
更新单表多列的值

如果要更新一张表中的多个列的值,可以使用以下的SQL语句:

UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition;

例如,想要将表students中的agegenderscore三列全部修改,可以使用以下语句:

UPDATE students SET age = 20, gender = 'male', score = 100;
更新多表关联的数据

如果需要更新多张表中关联的数据,可以使用以下的SQL语句:

UPDATE table1 SET column1 = new_value1
FROM table1
INNER JOIN table2 ON table1.id = table2.id
WHERE condition;

其中,table1table2是需要更新的两张表,column1是需要更新的列,new_value1是新值,id是关联的列,condition是筛选条件。

例如,想要将表students中的score列修改为100,并将表class中的teacher列修改为Mr. Zhang,可以使用以下语句:

UPDATE students
INNER JOIN class ON students.class_id = class.id
SET students.score = 100, class.teacher = 'Mr. Zhang'
WHERE class.name = 'Math';
按条件递增/递减列的值

如果需要修改某一列的值,但不是固定值,而是需要根据条件进行自增或自减操作,则可以使用以下的SQL语句:

UPDATE table_name SET column_name = column_name +/- increment WHERE condition;

其中,table_name为需要更新的表名,column_name为需要更新的列名,+/-是自增或自减符号,increment是递增或递减的量,condition是筛选条件。

例如,想要将表students中的score列全部增加10,可以使用以下语句:

UPDATE students SET score = score + 10;

还可以加上WHERE语句,限制更新的范围。例如,只想将score大于80的行修改为100,可以使用以下语句:

UPDATE students SET score = score + 20 WHERE score > 80;