首页 理论教育数据库技术与应用教程:数据修改语句

数据库技术与应用教程:数据修改语句

【摘要】:SQL修改数据操作语句的一般格式为:UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>][,……UPDATE选课SET成绩=成绩*1.2WHERE课程号=;解题说明:该例中的元组修改条件是数据库课程,而在选课表中只有课程号而无课程名。因此,要通过在课程表中查找课程名为数据库的课程号,才能确定修改的元组,所以该题的WHERE子句中使用了子查询。

SQL修改数据操作语句的一般格式为:

UPDATE<表名>

SET<列名>=<表达式>[,<列名>=<表达式>][,……n]

[WHERE<条件>];

SQL的修改数据语句功能是将<表名>中那些符合WHERE子句条件的元组的某些列,用SQL子句中给出的表达式的值替代。如果UPDATE语句中无WHERE子句,则表示要修改指定表中的全部元组。值得指出的是,在UPDATE的WHERE子句中也可以嵌入查询语句。

【例4-32】将学生表中全部学生的年龄加上2岁。

UPDATE学生

SET’年龄=年龄+2;

解题说明如下。

①由于该题要求修改全部学生记录,所以不需要WHERE子句对修改的记录加以选择。

②SET子句中的“年龄=年龄+2”为赋值语句,它使每个记录用原年龄加上2作为新年龄值,并用新年龄值替代原有的年龄值。

【例4-33】将选课表中的数据库课程的成绩乘以1.2。(www.chuimin.cn)

UPDATE选课

SET成绩=成绩*1.2

WHERE课程号=(SELECT课程号

FROM课程

WHERE课程名=’数据库’);

解题说明:该例中的元组修改条件是数据库课程,而在选课表中只有课程号而无课程名。因此,要通过在课程表中查找课程名为数据库的课程号,才能确定修改的元组,所以该题的WHERE子句中使用了子查询。该题也可以表示为:

UPDATE选课

SET成绩=成绩*1.2

WHERE’数据库’=(SELECT课程名

FROM课程

WHERE选课.课程号=课程.课程号);