第十二讲第十二讲SQLSQL语言的语言的DMLDML和和DCLDCL本讲内容本讲内容介绍介绍SQLSQL语言的语言的DMLDML,即数据操作语,即数据操作语句。句。介绍介绍SQLSQL语言的语言的DCLDCL,即数据控制语,即数据控制语句。句。数据操作数据操作插入数据——插入数据——INSERTINSERT修改数据——修改数据——UPDATEUPDATE删除数据——删除数据——DELETEDELETE插入数据插入数据插入单个元组插入单个元组–格式:格式:INSERTINTO[(<>[(<属性列属性列1>[,<1>[,<属性列属性列2>]……)]2>]……)]VALUES([,<1>[,<常量常量2>]……);2>]……);插入多个元组(子查询结果)插入多个元组(子查询结果)–格式:格式:INSERTINTO[(<>[(<属性列属性列1>[,<1>[,<属性列属性列2>]……)]2>]……)]<<子查询子查询>;>;例:对每一个系,求学生的平均年龄,并把结果存入例:对每一个系,求学生的平均年龄,并把结果存入数据库。数据库。INSERTINTODeptage(Sdept,Avgage)INSERTINTODeptage(Sdept,Avgage)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;修改数据修改数据格式:格式:UPDATE>SET=<>=<表达式表达式>[,<>[,<列名列名>=<>=<表达式表达式>]…>]………[WHERE<[WHERE<条件条件>];>];根据条件的指定可以根据条件的指定可以修改一个元组的值,也可以修改一个元组的值,也可以修改多个元组修改多个元组的值,此外也可以使用的值,此外也可以使用带子查询的修改语句。带子查询的修改语句。例:将计算机科学系的学生的成绩置零。例:将计算机科学系的学生的成绩置零。UPDATESCUPDATESCSETGrade=0SETGrade=0WHERE‘CS’=WHERE‘CS’=(SELECTSdeptFROMStudentWHEREStudent.Sno=SC.Sn(SELECTSdeptFROMStudentWHEREStudent.Sno=SC.Sno);o);一致性问题一致性问题UPDATEUPDATE语句一次只能操作一个表。这会带来数据库的一致性问语句一次只能操作一个表。这会带来数据库的一致性问题。例如,学号为题。例如,学号为9500795007的学生因病休学一年,复学后需要将其的学生因病休学一年,复学后需要将其学号改为学号改为9608996089,由于,由于StudentStudent表和表和SCSC表都有关于表都有关于9500795007的信息,的信息,因此两个表都需要修改,而这种修改只能通过两条因此两个表都需要修改,而这种修改只...