第3章关系数据库标准语言SQL第3部分PPT文件格式下载.ppt
《第3章关系数据库标准语言SQL第3部分PPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《第3章关系数据库标准语言SQL第3部分PPT文件格式下载.ppt(80页珍藏版)》请在冰豆网上搜索。
性别:
男;
所在系:
IS;
年龄:
18岁)插入到Student表中。
INSERTINTOStudentVALUES(95020,陈冬,男,IS,18);
AnIntroductiontoDatabaseSystem插入单个元组(续)插入单个元组(续)例2插入一条选课记录(95020,1)。
INSERTINTOSC(Sno,Cno)VALUES(95020,1);
新插入的记录在Grade列上取空值AnIntroductiontoDatabaseSystem插入单个元组(续)插入单个元组(续)nINTO子句n指定要插入数据的表名及属性列n属性列的顺序可与表定义中的顺序不一致n没有指定属性列:
表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致n指定部分属性列:
插入的元组在其余属性列上取空值nVALUES子句n提供的值必须与INTO子句匹配值的个数值的类型AnIntroductiontoDatabaseSystem2.插入子查询结果插入子查询结果n语句格式INSERTINTO(,)子查询;
n功能将子查询结果插入指定表中AnIntroductiontoDatabaseSystem插入子查询结果(续)插入子查询结果(续)例3对每一个系,求学生的平均年龄,并把结果存入数据库。
第一步:
建表CREATETABLEDeptage(SdeptCHAR(15)/*系名*/AvgageSMALLINT);
/*学生平均年龄*/AnIntroductiontoDatabaseSystem插入子查询结果(续)插入子查询结果(续)第二步:
插入数据INSERTINTODeptage(Sdept,Avgage)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;
AnIntroductiontoDatabaseSystem插入子查询结果(续)插入子查询结果(续)nINTO子句(与插入单条元组类似)n指定要插入数据的表名及属性列n属性列的顺序可与表定义中的顺序不一致n没有指定属性列:
表示要插入的是一条完整的元组n指定部分属性列:
插入的元组在其余属性列上取空值n子查询nSELECT子句目标列必须与INTO子句匹配n值的个数n值的类型AnIntroductiontoDatabaseSystem插入子查询结果(续)插入子查询结果(续)DBMS在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则n实体完整性n参照完整性n用户定义的完整性n对于有NOTNULL约束的属性列是否提供了非空值n对于有UNIQUE约束的属性列是否提供了非重复值n对于有值域约束的属性列所提供的属性值是否在值域范围内AnIntroductiontoDatabaseSystem3.4数数据据更更新新3.4.1插入数据3.4.2修改数据3.4.3删除数据AnIntroductiontoDatabaseSystem3.4.2修改数据修改数据n语句格式UPDATESET=,=WHERE;
n功能修改指定表中满足WHERE子句条件的元组AnIntroductiontoDatabaseSystem修改数据(续)修改数据(续)n三种修改方式n修改某一个元组的值n修改多个元组的值n带子查询的修改语句AnIntroductiontoDatabaseSystem1.修改某一个元组的值修改某一个元组的值例4将学生95001的年龄改为22岁。
UPDATEStudentSETSage=22WHERESno=95001;
AnIntroductiontoDatabaseSystem2.修改多个元组的值修改多个元组的值例5将所有学生的年龄增加1岁。
UPDATEStudentSETSage=Sage+1;
AnIntroductiontoDatabaseSystem修改多个元组的值修改多个元组的值(续续)例6将信息系所有学生的年龄增加1岁。
UPDATEStudentSETSage=Sage+1WHERESdept=IS;
AnIntroductiontoDatabaseSystem3.带子查询的修改语句带子查询的修改语句例7将计算机科学系全体学生的成绩置零。
UPDATESCSETGrade=0WHERECS=(SELETESdeptFROMStudentWHEREStudent.Sno=SC.Sno);
AnIntroductiontoDatabaseSystem修改数据(续)修改数据(续)nSET子句指定修改方式要修改的列修改后取值nWHERE子句指定要修改的元组缺省表示要修改表中的所有元组AnIntroductiontoDatabaseSystem修改数据(续)修改数据(续)DBMS在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则n实体完整性n主码不允许修改n用户定义的完整性nNOTNULL约束nUNIQUE约束n值域约束AnIntroductiontoDatabaseSystem3.4数数据据更更新新3.4.1插入数据3.4.2修改数据3.4.3删除数据AnIntroductiontoDatabaseSystem3.4.3删除数据删除数据DELETEFROMWHERE;
功能w删除指定表中满足WHERE子句条件的元组WHERE子句w指定要删除的元组w缺省表示要修改表中的所有元组AnIntroductiontoDatabaseSystem删除数据(续)删除数据(续)n三种删除方式n删除某一个元组的值n删除多个元组的值n带子查询的删除语句AnIntroductiontoDatabaseSystem1.删除某一个元组的值删除某一个元组的值例8删除学号为95019的学生记录。
DELETEFROMStudentWHERESno=95019;
AnIntroductiontoDatabaseSystem2.删除多个元组的值删除多个元组的值例9删除2号课程的所有选课记录。
DELETEFROMSC;
WHERECno=2;
例10删除所有的学生选课记录。
AnIntroductiontoDatabaseSystem3.带子查询的删除语句带子查询的删除语句例11删除计算机科学系所有学生的选课记录。
DELETEFROMSCWHERECS=(SELETESdeptFROMStudentWHEREStudent.Sno=SC.Sno);
AnIntroductiontoDatabaseSystem删除数据删除数据(续续)DBMS在执行删除语句时会检查所删元组是否破坏表上已定义的完整性规则参照完整性不允许删除级联删除AnIntroductiontoDatabaseSystem更新数据与数据一致性更新数据与数据一致性DBMS在执行插入、删除、更新语句时必须保证数据库一致性l必须有事务的概念和原子性l完整性检查和保证AnIntroductiontoDatabaseSystem第三章第三章关系数据库标准语言关系数据库标准语言SQL3.1SQL概述3.2数据定义3.3查询3.4数据更新3.5视图3.6数据控制3.7嵌入式SQL3.8小结AnIntroductiontoDatabaseSystem3.5视视图图视图的特点n虚表,是从一个或几个基本表(或视图)导出的表n只存放视图的定义,不会出现数据冗余n基表中的数据发生变化,从视图中查询出的数据也随之改变AnIntroductiontoDatabaseSystem3.5视视图图基于视图的操作n查询n删除n受限更新n定义基于该视图的新视图AnIntroductiontoDatabaseSystem3.5视视图图3.5.1定义视图3.5.2查询视图3.5.3更新视图3.5.4视图的作用AnIntroductiontoDatabaseSystem1.建立视图建立视图n语句格式CREATEVIEW(,)ASWITHCHECKOPTION;
AnIntroductiontoDatabaseSystem建立视图(续)建立视图(续)DBMS执行CREATEVIEW语句时只是把视图的定义存入数据字典,并不执行其中的SELECT语句。
在对视图查询时,按视图的定义从基本表中将数据查出。
AnIntroductiontoDatabaseSystem组成视图的属性列名组成视图的属性列名全部省略或全部指定n省略:
由子查询中SELECT目标列中的诸字段组成n明确指定视图的所有列名:
(1)某个目标列是集函数或列表达式
(2)目标列为*(3)多表连接时选出了几个同名列作为视图的字段(4)需要在视图中为某个列启用新的更合适的名字AnIntroductiontoDatabaseSystem行列子集视图行列子集视图例1建立信息系学生的视图。
CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudentWHERESdept=IS;
从单个基本表导出只是去掉了基本表的某些行和某些列保留了码AnIntroductiontoDatabaseSystem建立视图(续)建立视图(续)nWITHCHECKOPTION透过视图进行增删改操作时,不得破坏视图定义中的谓词条件(即子查询中的条件表达式)AnIntroductiontoDatabaseSystemWITHCHECKOPTION的视图的视图例2建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息系学生。
CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudentWHERESdept=ISWITHCHECKOPTION;
AnIntroductiontoDatabaseSystem对对IS_Student视图的更新操作视图的更新操作n修改操作:
DBMS自动加上Sdept=IS的条件n删除操作:
DBMS自动加上Sdept=IS的条件n插入操作:
DBMS自动检查Sdept属性值是否为ISn如果不是