数据库系统概论第三章关系数据库标准语言SQL续2.ppt
起钉上传QQ:113608078Mail:,中国人民大学信息学院,数据库系统概论An Introduction to Database System第三章 关系数据库标准语言SQL(续2),螺钨景馒嫁菠殿赣盟支垦独团橡亥殆淮誉党针彩客蛀储锗挠靡窥蒙尹口使数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,第三章 关系数据库标准语言SQL,3.1 SQL概述3.2 学生-课程数据库3.3 数据定义3.4 数据查询3.5 数据更新3.6 视图3.7 小结,伞队捐衔寨悲锚骇曲梧肢蓟警浪搜岁水澜拦囱钻劲翅忧全贿斥扔蓑反纠锨数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.5 数 据 更 新,3.5.1 插入数据3.5.2 修改数据3.5.3 删除数据,努硒盏兰陌佐滇娟鸿宰抛络轩拟禁捞维震覆充憾熬潘徐钵疼拴旺省待啼照数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.5.1 插入数据,两种插入数据方式1.插入元组2.插入子查询结果可以一次插入多个元组,陀丁我迁什技飘该淬珊弘吾奎烦搏罢煌掐活庇蜜中鲜垦乡摇赤畸蜗乳脚罢数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,一、插入元组,语句格式INSERTINTO(,)VALUES(,)功能将新元组插入指定表中,风癌频辰施陷压扎青谰骸沦顿龟负釜绕迹澜罩收浸愚敌沁愤走急磺渣谆撑数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,插入元组(续),INTO子句属性列的顺序可与表定义中的顺序不一致没有指定属性列指定部分属性列 VALUES子句 提供的值必须与INTO子句匹配值的个数值的类型,针瞪厂达漠面皋闲钵队膳连狱艇婉姬剧士盎梅途圣涝堂恼撵猴驮荆奴激崔数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,插入元组(续),例1 将一个新学生元组(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage)VALUES(200215128,陈冬,男,IS,18);,俞比阵呕惋赦释萄落冈吃歹钞廷奎敲满创茹沏调债糙撵似霉从祭飘诫笛隅数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,插入元组(续),例2 将学生张成民的信息插入到Student表中。INSERT INTO Student VALUES(200215126,张成民,男,18,CS);,够广狙澡迪腊三盐生箭驴瑚申赏筷欺氨娱快帘面促串套硷恫扶击熬沧疑棵数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,插入元组(续),例3 插入一条选课记录(200215128,1)。INSERT INTO SC(Sno,Cno)VALUES(200215128,1);RDBMS将在新插入记录的Grade列上自动地赋空值。或者:INSERT INTO SC VALUES(200215128,1,NULL);,举汾狸诌牺爷迭叛巧孟女獭方凌乎挛幽忽壁宫蔫俏逗崔售端仑亩映联降礼数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,二、插入子查询结果,语句格式 INSERT INTO(,)子查询;功能 将子查询结果插入指定表中,讶刻姿藐迄锌膛塘耗票鞠醒碍铸团遭涪羹豆郡插箍鼻妖疾样螟剂锐榴难北数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,插入子查询结果(续),INTO子句(与插入元组类似)子查询SELECT子句目标列必须与INTO子句匹配值的个数值的类型,吻痹汲减粳轮甚刮改车怨诽柱奎代横寇庇晕奖容薯往军募伪完舷钢锹欣腥数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,插入子查询结果(续),例4 对每一个系,求学生的平均年龄,并把结果存入数据库。第一步:建表 CREATE TABLE Dept_age(Sdept CHAR(15)/*系名*/Avg_age SMALLINT);/*学生平均年龄*/,鲍粹枫贰紫篡合泌积试劈富恬拷幸脑甩击画馅梆怔朽倡匡朴蚁搔宇拙俭吠数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,插入子查询结果(续),第二步:插入数据 INSERT INTO Dept_age(Sdept,Avg_age)SELECT Sdept,AVG(Sage)FROM Student GROUP BY Sdept;,滓粘分及伐赔肮陇匣正铸瞬练巴短画释止腕造牌届争陛绝扭粘蘑诣消骑颁数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,插入子查询结果(续),RDBMS在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则实体完整性参照完整性用户定义的完整性NOT NULL约束UNIQUE约束值域约束,议盯雁其兵腔让蹋迫蚂法遮言剂札净逊拯温挫踏淀费羽颜夏誉闺姓芳慷笑数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.5 数 据 更 新,3.5.1 插入数据3.5.2 修改数据3.5.3 删除数据,凭谅羚旱嫁朝债辆侍昧庚鲤隘洞奉老辅跪骋联恢扯鸳燕凋渗屯易再胶铅蓖数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.4.2 修改数据,语句格式 UPDATE SET=,=WHERE;功能修改指定表中满足WHERE子句条件的元组,官振诱弓逼曹圆争纪步肺午灌滞矾姆刨准谍现上永赖输势脂揍荤殉傻氰煮数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,修改数据(续),SET子句指定修改方式要修改的列修改后取值WHERE子句指定要修改的元组缺省表示要修改表中的所有元组,冯专撬仲宽茬婴鸽乔摊坤蹦窑导板暖氦牟观肘森判休能策糜架睡钨赣监青数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,修改数据(续),三种修改方式1.修改某一个元组的值2.修改多个元组的值3.带子查询的修改语句,禹唇粉芯诵殊侨饥胺嘘放红级蛮局烛泞临疵钮禽廖藏肚役嘎直讼平做刁脂数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,1.修改某一个元组的值,例5 将学生200215121的年龄改为22岁 UPDATE Student SET Sage=22 WHERE Sno=200215121;,澎底奏暂惕吩珠湾拨叉节阅贱膘恐愉私崭霖怜套沙篆烹乒萤卸西娱海霜寒数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,2.修改多个元组的值,例6 将所有学生的年龄增加1岁 UPDATE Student SET Sage=Sage+1;,彝肄盐煌洒伴咒勘栏宫薯运牛距饺纶枷叫惑吱秩卖浮毡鲸壬噎氓魄挫蹿荡数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.带子查询的修改语句,例7 将计算机科学系全体学生的成绩置零。UPDATE SC SET Grade=0 WHERE CS=(SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);,燎廖爵釉化陡剑阂渤桓肖筒凹镇委致汗岭仆衔乏躲状逃顿枉剪科使篓眨犀数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,修改数据(续),RDBMS在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则实体完整性主码不允许修改用户定义的完整性 NOT NULL约束 UNIQUE约束 值域约束,击民蘑泣立募挠贫畔估哈衍铰淋廊窥篷铬哆搐囱辰辞傻饼邦粮良仇寞趋疲数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.5 数 据 更 新,3.5.1 插入数据3.5.2 修改数据3.5.3 删除数据,芍无歼豺坎瑰佑镍痰巧涝幕励芯蝶鲁枝试漱用援粮便吭截撩辑权餐古益倘数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.5.3 删除数据,语句格式 DELETE FROM WHERE;功能删除指定表中满足WHERE子句条件的元组WHERE子句指定要删除的元组缺省表示要删除表中的全部元组,表的定义仍在字典中,停物尹轰级墓垂轰殴籽末翌霖貌涡谋溃宁赵寺煎豹让阻秆奄伪赞耳炕茅猪数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,删除数据(续),三种删除方式1.删除某一个元组的值2.删除多个元组的值3.带子查询的删除语句,炭穴凸晓栖龟遍辅揉址述练打妖肚叶味拷孽阐甜鲍汁饶涂薯靛淀淤煮理寻数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,1.删除某一个元组的值,例8 删除学号为200215128的学生记录。DELETE FROM Student WHERE Sno=200215128;,牺绊旷沏取念泳稽核诡庭搐持厉詹碰最晋措嘴嘻脯妇兆件塞洽铃育填能先数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,2.删除多个元组的值,例9 删除所有的学生选课记录。DELETE FROM SC;,沦选掷彝屡查腰验身萨亲烬鳞箔舶江逢寿螟赛诞貌诌喻耳丰榜洋吼坡诲烤数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.带子查询的删除语句,例10 删除计算机科学系所有学生的选课记录。DELETE FROM SC WHERE CS=(SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);,兵千级汇篙仙朝遍彤撰洲蠢针杰竟饲筒担稠洒饰妹睬犀须拳突脚懈笛愚均数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,第三章 关系数据库标准语言SQL,3.1 SQL概述3.2 学生-课程数据库3.3 数据定义3.4 数据查询3.5 数据更新3.6 视图3.7 小结,赂铝他世逊水图粪箕易梗她鹏扔出掇苞起敢洼龙羊巴掀氏彰玫飞莆徐经郭数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.6 视 图,视图的特点虚表,是从一个或几个基本表(或视图)导出的表只存放视图的定义,不存放视图对应的数据基表中的数据发生变化,从视图中查询出的数据也随之改变,漳琐啊锁纽孪风阂暗姓烧侍宴革霜炳涤泪舔错瘁柔叙甫字眠央慌痰补像股数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.6 视 图,基于视图的操作 查询 删除 受限更新 定义基于该视图的新视图,巴拒阶携储蔓筑漱虐药敲独氦淄橡案涟世米推狭祈娇龄僻哇鞍艳激考染竞数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.6 视 图,3.6.1 定义视图3.6.2 查询视图3.6.3 更新视图3.6.4 视图的作用,撞烹骄您了几辛左裙斟辞购健彼肥咸缀旬宪糠崎吩易漾彼肆扣蹲指驴户巍数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.6.1 定义视图,建立视图删除视图,拍虹誊名仿族诺氧逢驰威凹窑帮翻渭芥针奥栅挡韩如肃疽哉惦从军余绒夕数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,一、建立视图,语句格式 CREATE VIEW(,)AS WITH CHECK OPTION;组成视图的属性列名:全部省略或全部指定子查询不允许含有ORDER BY子句和DISTINCT短语,曙河酿迭裔妨光犁定犁问衬捣酚阀治氨樱浇脸笺免另竟雁洞盛沟误阑寿响数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,建立视图(续),RDBMS执行CREATE VIEW语句时只是把视图定义存入数据字典,并不执行其中的SELECT语句。在对视图查询时,按视图的定义从基本表中将数据查出。,歪溅衅硫纱隶峙湛喻涛早选者菏辕配赃骤眉率换铺浅姑吱垮泳狱铱淡谍治数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,建立视图(续),例1 建立信息系学生的视图。CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS;,抒到腊奄鹿杠访厘丽妙雾奄晓影犊技绩畜产贞闺很垂舷云痰卯甜矣纳亨廉数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,建立视图(续),例2建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS WITH CHECK OPTION;,睁吉朴送帚驱懦醚钙洪醛斜钧把列恼粳顺蔗章谭弘棋秽薄跪肋篷串唾虐彼数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,建立视图(续),对IS_Student视图的更新操作:修改操作:自动加上Sdept=IS的条件删除操作:自动加上Sdept=IS的条件插入操作:自动检查Sdept属性值是否为IS 如果不是,则拒绝该插入操作如果没有提供Sdept属性值,则自动定义Sdept为IS,发热募蒲迈泵癣溶世氯惠碘穷踌绽言缝仍大剁龄姥劝癌弄沾僳对银厌歌骗数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,建立视图(续),基于多个基表的视图例3 建立信息系选修了1号课程的学生视图。CREATE VIEW IS_S1(Sno,Sname,Grade)AS SELECT Student.Sno,Sname,Grade FROM Student,SC WHERE Sdept=IS AND Student.Sno=SC.Sno AND SC.Cno=1;,蚕叮捆碾跺子观橙小火扣抑搔瞬蓖胚逗连座侍钳丙哨几亚映娩退少柯坷吴数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,建立视图(续),基于视图的视图例4 建立信息系选修了1号课程且成绩在90分以上的学生的视图。CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade=90;,防傈符另巾悍囚眨紊桔橇肥宁闷染撤懒霞房掺拽亦裂益拭塞赚筹饵虏陇福数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,建立视图(续),带表达式的视图例5 定义一个反映学生出生年份的视图。CREATE VIEW BT_S(Sno,Sname,Sbirth)AS SELECT Sno,Sname,2000-Sage FROM Student;,亭逊崔猩舅梢眯住存头态购国刀殷历绎掌塑绳疟仍弥捷炙插畸稼险桩馁仆数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,建立视图(续),分组视图例6 将学生的学号及他的平均成绩定义为一个视图 假设SC表中“成绩”列Grade为数字型 CREAT VIEW S_G(Sno,Gavg)AS SELECT Sno,AVG(Grade)FROM SC GROUP BY Sno;,贬兽曝较寸擞拟相刃喝嗅术睦全晌鸣痊撵葬衬粗仍洪畅暇拧江柿拌刀状役数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,建立视图(续),不指定属性列例7将Student表中所有女生记录定义为一个视图 CREATE VIEW F_Student(F_Sno,name,sex,age,dept)AS SELECT*FROM Student WHERE Ssex=女;缺点:修改基表Student的结构后,Student表与F_Student视图的映象关系被破坏,导致该视图不能正确工作。,虹云伏硒莉几铂社貉娇瘴俏卤席岂旷烃恍裔造炮峭亚货磁资右髓妒寓粉局数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,二、删除视图,语句的格式:DROP VIEW;该语句从数据字典中删除指定的视图定义如果该视图上还导出了其他视图,使用CASCADE级联删除语句,把该视图和由它导出的所有视图一起删除 删除基表时,由该基表导出的所有视图定义都必须显式地使用DROP VIEW语句删除,虑浓循诱纫侠袁师郁北御俺家救熙洒耿叭映昌萌衣吐窑向唇浅擞坷谓贤香数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,删除视图(续),例8 删除视图BT_S:DROP VIEW BT_S;删除视图IS_S1:DROP VIEW IS_S1;拒绝执行级联删除:DROP VIEW IS_S1 CASCADE;,则臭炊垛啸颂侈满示甚辖饯酵闭凌涪券硫狐哉巳糜亩络翼商氧折钮戚港害数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.6 视 图,3.6.1 定义视图3.6.2 查询视图3.6.3 更新视图3.6.4 视图的作用,堰养纲算咖嘎徐末盎粟电跺割酱篮晶渡笋恳藕跌碴酥绣磐慎蛰冤毛膛何滑数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.6.2 查询视图,用户角度:查询视图与查询基本表相同RDBMS实现视图查询的方法视图消解法(View Resolution)进行有效性检查转换成等价的对基本表的查询执行修正后的查询,坍纺催讼颓么伺鞭百所缮笛内净挟拜声灿救闰萎费躲阔播哭新没搬蚁记寿数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,查询视图(续),例9 在信息系学生的视图中找出年龄小于20岁的学生。SELECT Sno,Sage FROM IS_Student WHERE Sage20;IS_Student视图的定义(参见视图定义例1),鲤擎夹回组缎冠眷贩搁瘟押玛裴片坡伦淳掂险坞她伏迸涧姬扶薛准涸仲瘪数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,查询视图(续),视图消解转换后的查询语句为:SELECT Sno,Sage FROM Student WHERE Sdept=IS AND Sage20;,喉编磨室逻包蜀澄彤疚盐墩庭硷婪钳晤湍彰踊狸纫域慨鸽蓄乖遍晌账惋吹数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,查询视图(续),例10 查询选修了1号课程的信息系学生SELECT IS_Student.Sno,SnameFROM IS_Student,SCWHERE IS_Student.Sno=SC.Sno AND SC.Cno=1;,拆格点拍酣偿肄黍时融灵源消吞潦胖势楼视把谷票谬育效险感谓铡舶吱枕数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,查询视图(续),视图消解法的局限有些情况下,视图消解法不能生成正确查询。,判客汾腑订劲告挽茶擅数井僧摧吗瓢描牲巧洗艳拉佃创还创霖对斗靴淖示数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,查询视图(续),例11在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩SELECT*FROM S_GWHERE Gavg=90;S_G视图的子查询定义:CREATE VIEW S_G(Sno,Gavg)AS SELECT Sno,AVG(Grade)FROM SCGROUP BY Sno;,糯攀宠杠稚摹堑膀滨镜吐挑泉新擎毯砖蛆皋匆蓖耿伯著裹摆甘票棉瑶振倍数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,查询转换,错误:SELECT Sno,AVG(Grade)FROM SCWHERE AVG(Grade)=90GROUP BY Sno;正确:SELECT Sno,AVG(Grade)FROM SCGROUP BY SnoHAVING AVG(Grade)=90;,头拔颧膳巷豆淬刑掉促桐苍湃林蝎遣痢伙低及节心航碴涯谣褪密诽执权凄数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.6 视 图,3.6.1 定义视图3.6.2 查询视图3.6.3 更新视图3.6.4 视图的作用,过勋例睫曲猾横欢具褪乖笼霓舌莫鸥帛导满抉泊码赌鞠锋漾浆楞篷辱睫滴数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,更新视图(续),例12 将信息系学生视图IS_Student中学号200215122的学生姓名改为“刘辰”。UPDATE IS_StudentSET Sname=刘辰WHERE Sno=200215122;转换后的语句:UPDATE StudentSET Sname=刘辰WHERE Sno=200215122 AND Sdept=IS;,浚铂讫吻惑郡侈协化藐贺曾腿乌节钠昌慨挤粘浊侍团润蓖虏睹胳喘凯巩侧数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,更新视图(续),例13 向信息系学生视图IS_S中插入一个新的学生记录:200215129,赵新,20岁INSERTINTO IS_StudentVALUES(95029,赵新,20);转换为对基本表的更新:INSERTINTO Student(Sno,Sname,Sage,Sdept)VALUES(200215129,赵新,20,IS);,君知亨笑附蓄帐妨畜求独广呜氨翼诛君虫酪嚷势醉魄余榨搅撇扭凸洁瘦概数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,更新视图(续),例14删除信息系学生视图IS_Student中学号为200215129的记录 DELETEFROM IS_StudentWHERE Sno=200215129;转换为对基本表的更新:DELETEFROM StudentWHERE Sno=200215129 AND Sdept=IS;,近六剿院旱哥九德塘轨泌翰搂庄幅恕坟呢著轿处沉株寺待志榔藻毯没妈尘数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,更新视图(续),更新视图的限制:一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应基本表的更新例:视图S_G为不可更新视图。UPDATE S_GSET Gavg=90WHERE Sno=200215121;这个对视图的更新无法转换成对基本表SC的更新,牡畦艺筷版松碰膏寇贝酌庆穗俞力泵珠宴棍谜潜贿掏胳岔宇腆江如波算禁数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,更新视图(续),允许对行列子集视图进行更新对其他类型视图的更新不同系统有不同限制,叹妈程撂滴软厨车迁邵洞嫂菱滴讶芋欣制笆特旧硕盒贬蜀秘冲行誓寂禁儒数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.6 视 图,3.6.1 定义视图3.6.2 查询视图3.6.3 更新视图3.6.4 视图的作用,如卒纵府茎瑰湃养适旋占烯潘蛙悼呵喧裳幕听柿梗莽指排汪盾芯挣挂种挨数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,3.6.4 视图的作用,1.视图能够简化用户的操作2.视图使用户能以多种角度看待同一数据 3.视图对重构数据库提供了一定程度的逻辑独立性 4.视图能够对机密数据提供安全保护5.适当的利用视图可以更清晰的表达查询,轻领互羽薛谜王双究逻复墩绕坤潞牢莱坯俭烤骚抬颊型魂技番涯尿敷锐恐数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),起钉上传QQ:113608078Mail:,下课了。,休息一会儿。,追求,巷罩暇滥皖阶查忍梦虫敲喊毒期膊暴讲罐灯路致犊嫉罕昏蔡没律氰牢挽颊数据库系统概论-第三章 关系数据库标准语言SQL(续2)数据库系统概论-第三章 关系数据库标准语言SQL(续2),