1、AnIntroductiontoDatabaseSystem数据库系统概论 An Introduction to Database Systemxx大学信息学院大学信息学院第三章第三章 关系数据库标准语言关系数据库标准语言SQL(续续2 2)AnIntroductiontoDatabaseSystem第三章第三章关系数据库标准语言关系数据库标准语言SQL3.1SQL概述概述3.2学生学生-课程数据库课程数据库3.3数据定义数据定义3.4数据查询数据查询3.5数据更新数据更新3.6空值的处理空值的处理3.7视图视图3.8小结小结AnIntroductiontoDatabaseSystem3.5数
2、据更新数据更新3.5.1插入数据插入数据3.5.2修改数据修改数据3.5.3删除数据删除数据AnIntroductiontoDatabaseSystem3.5.1插入数据插入数据v两种插入数据方式两种插入数据方式n插入元组插入元组n插入子查询结果插入子查询结果l可以一次插入多个元组可以一次插入多个元组AnIntroductiontoDatabaseSystem1.插入元组插入元组v语句格式语句格式INSERTINTO(,)VALUES(,);v功能功能n将新元组插入指定表中将新元组插入指定表中AnIntroductiontoDatabaseSystem插入元组(续)插入元组(续)vINTO子句
3、子句n指定要插入数据的表名及属性列指定要插入数据的表名及属性列n属性列的顺序可与表定义中的顺序不一致属性列的顺序可与表定义中的顺序不一致n没有指定属性列:表示要插入的是一条完整的元组,且没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致属性列属性与表定义中的顺序一致n指定部分属性列:插入的元组在其余属性列上取空值指定部分属性列:插入的元组在其余属性列上取空值AnIntroductiontoDatabaseSystem插入元组(续)插入元组(续)vVALUES子句子句n提供的值必须与提供的值必须与INTO子句匹配子句匹配l值的个数值的个数l值的类型值的类型AnIntr
4、oductiontoDatabaseSystem插入元组(续)插入元组(续)例例3.69将一个新学生元组将一个新学生元组(学号:学号:201215128;姓名:陈冬姓名:陈冬;性别:男性别:男;所在系:所在系:IS;年龄:年龄:18岁岁)插入到插入到Student表中。表中。INSERTINTOStudent(Sno,Sname,Ssex,Sdept,Sage)VALUES(201215128,陈冬陈冬,男男,IS,18);AnIntroductiontoDatabaseSystem插入元组(续)插入元组(续)例例3.71插入一条选课记录插入一条选课记录(200215128,1)。INSERT
5、INTOSC(Sno,Cno)VALUES(201215128,1);关系数据库管理系统将在新插入记录的关系数据库管理系统将在新插入记录的Grade列上自动地列上自动地赋空值。赋空值。或者:或者:INSERTINTOSCVALUES(201215128,1,NULL);AnIntroductiontoDatabaseSystem插入元组(续)插入元组(续)例例3.70将学生张成民的信息插入到将学生张成民的信息插入到Student表中。表中。INSERTINTOStudentVALUES(201215126,张成民张成民,男男,18,CS);AnIntroductiontoDatabaseSys
6、tem2.插入子查询结果插入子查询结果v语句格式语句格式INSERTINTO(,)子查询子查询;nINTO子句子句n子查询子查询lSELECT子句目标列必须与子句目标列必须与INTO子句匹配子句匹配值的个数值的个数值的类型值的类型AnIntroductiontoDatabaseSystem插入子查询结果(续)插入子查询结果(续)例例3.72对每一个系,求学生的平均年龄,并把结果存入数据库对每一个系,求学生的平均年龄,并把结果存入数据库第一步:建表第一步:建表CREATETABLEDept_age(SdeptCHAR(15)/*系名系名*/Avg_ageSMALLINT);/*学生平均年龄学生平
7、均年龄*/第二步:插入数据第二步:插入数据INSERTINTODept_age(Sdept,Avg_age)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;AnIntroductiontoDatabaseSystem插入子查询结果(续)插入子查询结果(续)v关系数据库管理系统在执行插入语句时会检查所关系数据库管理系统在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则插元组是否破坏表上已定义的完整性规则n实体完整性实体完整性n参照完整性参照完整性n用户定义的完整性用户定义的完整性lNOTNULL约束约束lUNIQUE约束约束l值域约束值域约束A
8、nIntroductiontoDatabaseSystem3.5数据更新数据更新3.5.1插入数据插入数据3.5.2修改数据修改数据3.5.3删除数据删除数据AnIntroductiontoDatabaseSystem3.5.2修改数据修改数据v语句格式语句格式UPDATESET=,=WHERE;v功能功能n修改指定表中满足修改指定表中满足WHERE子句条件的元组子句条件的元组nSET子句给出子句给出的值用于取代相应的属性列的值用于取代相应的属性列n如果省略如果省略WHERE子句,表示要修改表中的所有元组子句,表示要修改表中的所有元组AnIntroductiontoDatabaseSystem
9、修改数据(续)修改数据(续)v三种修改方式三种修改方式n修改某一个元组的值修改某一个元组的值n修改多个元组的值修改多个元组的值n带子查询的修改语句带子查询的修改语句AnIntroductiontoDatabaseSystem1.修改某一个元组的值修改某一个元组的值例例3.73将学生将学生201215121的年龄改为的年龄改为22岁岁UPDATEStudentSETSage=22WHERESno=201215121;AnIntroductiontoDatabaseSystem2.修改多个元组的值修改多个元组的值例例3.74将所有学生的年龄增加将所有学生的年龄增加1岁。岁。UPDATEStuden
10、tSETSage=Sage+1;AnIntroductiontoDatabaseSystem3.带子查询的修改语句带子查询的修改语句例例3.75将计算机科学系全体学生的成绩置零。将计算机科学系全体学生的成绩置零。UPDATESCSETGrade=0WHERESnoIN(SELETESnoFROMStudentWHERESdept=CS);AnIntroductiontoDatabaseSystem修改数据(续)修改数据(续)v关系数据库管理系统在执行修改语句时会检查修关系数据库管理系统在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则改操作是否破坏表上已定义的完整性规则n实体完整性实
11、体完整性n主码不允许修改主码不允许修改n用户定义的完整性用户定义的完整性lNOTNULL约束约束lUNIQUE约束约束l值域约束值域约束AnIntroductiontoDatabaseSystem3.5数据更新数据更新3.5.1插入数据插入数据3.5.2修改数据修改数据3.5.3删除数据删除数据AnIntroductiontoDatabaseSystem3.5.3删除数据删除数据v语句格式语句格式DELETEFROMWHERE;v功能功能n删除指定表中满足删除指定表中满足WHERE子句条件的元组子句条件的元组vWHERE子句子句n指定要删除的元组指定要删除的元组n缺缺省省表表示示要要删删除除表
12、表中中的的全全部部元元组组,表表的的定定义义仍仍在在字字典中典中AnIntroductiontoDatabaseSystem删除数据(续)删除数据(续)v三种删除方式三种删除方式n删除某一个元组的值删除某一个元组的值n删除多个元组的值删除多个元组的值n带子查询的删除语句带子查询的删除语句AnIntroductiontoDatabaseSystem1.删除某一个元组的值删除某一个元组的值例例3.76删除学号为删除学号为201215128的学生记录。的学生记录。DELETEFROMStudentWHERESno=201215128;AnIntroductiontoDatabaseSystem2.删
13、除多个元组的值删除多个元组的值例例3.77删除所有的学生选课记录。删除所有的学生选课记录。DELETEFROMSC;AnIntroductiontoDatabaseSystem3.带子查询的删除语句带子查询的删除语句例例3.78删除计算机科学系所有学生的选课记录。删除计算机科学系所有学生的选课记录。DELETEFROMSCWHERESnoIN(SELETESnoFROMStudentWHERESdept=CS);AnIntroductiontoDatabaseSystem第三章第三章关系数据库标准语言关系数据库标准语言SQL3.1SQL概述概述3.2学生学生-课程数据库课程数据库3.3数据定义
14、数据定义3.4数据查询数据查询3.5数据更新数据更新3.6空值的处理空值的处理3.7视图视图3.8小结小结AnIntroductiontoDatabaseSystem3.6空值的处理空值的处理v空值就是空值就是“不知道不知道”或或“不存在不存在”或或“无意义无意义”的值。的值。v一般有以下几种情况:一般有以下几种情况:n该属性应该有一个值,但目前不知道它的具体值该属性应该有一个值,但目前不知道它的具体值n该属性不应该有值该属性不应该有值n由于某种原因不便于填写由于某种原因不便于填写AnIntroductiontoDatabaseSystem1.空值的产生空值的产生v空值是一个很特殊的值,含有不
15、确定性。对关系运算空值是一个很特殊的值,含有不确定性。对关系运算带来特殊的问题,需要做特殊的处理。带来特殊的问题,需要做特殊的处理。v空值的产生空值的产生例例3.79向向SC表中插入一个元组,学生号是表中插入一个元组,学生号是”201215126”,课,课程号是程号是”1”,成绩为空。,成绩为空。INSERTINTOSC(Sno,Cno,Grade)VALUES(201215126,1,NULL);/*该学生还没有考试成绩,取空值该学生还没有考试成绩,取空值*/或或INSERTINTOSC(Sno,Cno)VALUES(201215126,1);/*没有赋值的属性,其值为空值没有赋值的属性,其
16、值为空值*/AnIntroductiontoDatabaseSystem空值的产生(续)空值的产生(续)例例3.80将将Student表中学生号为表中学生号为”201215200”的学生所属的学生所属的系改为空值。的系改为空值。UPDATEStudentSETSdept=NULLWHERESno=201215200;AnIntroductiontoDatabaseSystem2.空值的判断空值的判断v判断一个属性的值是否为空值,用判断一个属性的值是否为空值,用ISNULL或或ISNOTNULL来表示。来表示。例例3.81从从Student表中找出漏填了数据的学生信息表中找出漏填了数据的学生信息SELECT*FROMStudentWHERESnameISNULLORSsexISNULLORSageISNULLORSdeptISNULL;AnIntroductiontoDatabaseSystem3.空值的约束条件空值的约束条件v属性定义(或者域定义)中属性定义(或者域定义)中n有有NOTNULL约束条件的不能取空值约束条件的不能取空值n加了加了UNIQUE限制的属性不能取空值限制的属性不
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1