资源描述:
《数据库原理及应用-孙浩军 第3章关系数据库SQL语言PartB》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库原理及应用ThePrincipleofDatabaseandapplications第三章关系数据库SQL语言PartB3-4SQL的数据更新SQL中数据更新包括:插入数据修改数据删除数据3-4-1SQL数据插入插入数据就是向一个表插入一个或多个记录的过程。SQL中使用INSERT语句来完成数据插入功能。1.插入单条记录插入单条记录的INSERT语句的格式为:INSERTINTO<表名>[(<列名>[,<列名>…])]VALUES(<常量>[,<常量>…]);【例3.53】向Student表插入一条新的
2、学生信息,满足:学号为2006409001,姓名为李志,性别为男,年龄为18,所在系为CS。INSERTINTOStudent(StudentNO,Name,Sex,Age,Dept)VALUES('2006409001','李志','男',18,'CS');VALUES子句中的各个值之间要用“,”分开,并且要与表名后面的括号中所指出的属性的排列顺序一致。当要插入的新记录包含表中的所有属性值时,表名后面可以省略列名,例如上面的语句可以写成:INSERTINTOStudentVALUES('2006409001
3、','李志','男',18,'CS');【例3.54】向SC表插入一条选课记录,只知道学生的学号为2006409001,所选的课程号码为2,其他情况不详。INSERTINTOSC(StudentNO,CourseNO)VALUES('2006409001','2');对于新插入的记录,此记录对应于INTO子句所指出的列的取值为VALUES子句所指定的相同顺序的值,其他的未在INTO子句中指出的列,其取值为NULL。2.插入多条记录可以通过子查询将多条记录插入到一个表中。语句的格式为:INSERTINTO<表名
4、>[(<列名>[,<列名>…])]子查询;【例3.55】求每个选修了课程的学生的学号、姓名及其所修的总学分,并把结果存入一个新表StudentCredit中。首先创建一个新表StudentCredit:CREATETABLEStudentCredit(StudentNOCHAR(10),NameCHAR(20),CreditNumINT);然后使用INSERT语句:INSERTINTOStudentCredit(StudentNO,Name,CreditNum)SELECTStudent.StudentNO,
5、Name,SUM(Credit)FROMStudent,SC,CourseWHERESC.StudentNO=Student.StudentNOANDSC.CourseNO=CourseNOGROUPBYStudentNO,Name;3-4-2SQL数据修改SQL可以通过UPDATE语句对表中的记录进行修改。一般格式为:UPDATE<表名>SET<列名>=<表达式>[,<列名>=<表达式>]…[WHERE<条件>];SQL数据修改(续)1.修改单条记录【例3.56】把学号为2003409001的学生的年龄改为
6、23,所在系改为信息系。UPDATEStudentSETAge=23,Dept='IS'WHEREStudentNO='2003409001';2.修改多条记录【例3.57】把所有学生的年龄都增加1岁。UPDATEStudentSETAge=Age+1;SQL数据修改(续)3.带子查询的修改【例3.58】把信息系的全体学生成绩置零。UPDATESCSETGrade=0WHEREStudentNOIN(SELECTStudentNOFROMStudentWHEREDept='IS');这个修改操作还可以写成:U
7、PDATESCSETGrade=0WHERE'IS'=(SELECTDeptFROMStudentWHEREStudent.StudentNO=SC.StudentNO);3-4-3SQL数据删除SQL提供了DELETE语句去删除某个表中的一条或多条记录。值得注意的是,要区分开DELETE语句与DROP语句。DROP是数据定义语句,作用是删除表或索引的定义。当删除表定义时,连同表所对应的数据都被删除;DELETE是数据操纵语句,只是删除表中的某些记录,不能删除表的定义。DELETE语句的一般格式为:DELET
8、EFROM<表名>WHERE<条件>;SQL数据删除(续)1.删除单条记录【例3.59】删除学号为2003409001的学生记录。DELETEFROMStudentWHEREStudentNO='2003409001';2.删除多条记录【例3.60】删除所有教师信息。DELETEFROMTeacher;该操作删除了表Teacher中的所有记录,使其成为空表,但表的定义仍然存在。3.带子查询的删除【例