《数据库基础知识63377学习教案.pptx》由会员分享,可在线阅读,更多相关《数据库基础知识63377学习教案.pptx(102页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、会计学1数据库基础知识数据库基础知识63377第一页,共102页。23.2 3.2 查询查询(chxn)(chxn)所用数据库所用数据库:1)1)学生学生-课程数据库课程数据库 Students(Sno,Sname,Ssex,Sage,Sdept)Students(Sno,Sname,Ssex,Sage,Sdept)Courses(Cno,Cname,Cpno,Ccredit)Courses(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)SC(Sno,Cno,Grade)第1页/共102页第二页,共102页。32)电影电影(dinyng)数据库数据库 Movi
2、es(title,year,length,genre,studioName,producerC#)StarsIn(movieTitle,movieYear,starName)MovieStars(name,address,gender,birthdate)MovieExecs(name,address,cert#,netWorth)Studios(name,address,presC#)第2页/共102页第三页,共102页。4单表查询单表查询 *选择若干列选择若干列-SQL 投影投影(tuyng)例例:查找学生的学号和姓名查找学生的学号和姓名 SELECT Sno,Sname FROM Stu
3、dents 例例:查找学生的姓名、学号和所在系查找学生的姓名、学号和所在系 SELECT Sname,Sno,Sdept FROM Students第3页/共102页第四页,共102页。5 例例:查找学生查找学生(xu sheng)的相关信息的相关信息 SELECT *FROM Students例例:查找学生查找学生(xu sheng)的姓名和出生年份的姓名和出生年份 SELECT Sname,2011-Sage FROM Students第4页/共102页第五页,共102页。6 去掉重复元组去掉重复元组 例例:查找查找(ch zho)选课学生的学号选课学生的学号 SELECT Sno 等价于
4、等价于 SELECT ALL Sno FROM SC FROM SC SELECT DISTINCT Sno FROM SC 第5页/共102页第六页,共102页。7*查询查询(chxn)满足条件的元组满足条件的元组-SQL 选择选择 WHERE子句子句 运算符运算符/关键字关键字 比较比较 =,=,=,!,!确定范围确定范围 NOT BETWEEN .AND.确定集合确定集合 NOT IN 空值空值 IS NOT NULL 逻辑逻辑 AND OR NOT第6页/共102页第七页,共102页。8例例:查找查找(ch zho)计算机系学生的名字计算机系学生的名字 SELECT Sname FRO
5、M Students WHERE Sdept=计算机计算机第7页/共102页第八页,共102页。9例例:查找查找(ch zho)年龄小于年龄小于19的学生的姓名和年的学生的姓名和年龄龄 SELECT Sname,Sage FROM Students WHERE Sage=19 第8页/共102页第九页,共102页。10例例:查找查找(ch zho)有过不及格成绩的学生的学号有过不及格成绩的学生的学号 SELECT DISTINCT Sno FROM SC WHERE Grade60第9页/共102页第十页,共102页。11P144 例例6.1:查找查找Disney 公司,在公司,在1990年制
6、作的所有年制作的所有(suyu)电影的有关信电影的有关信息息 SELECT*FROM Movies WHERE studioName=Disney AND year=1990第10页/共102页第十一页,共102页。12例:查找例:查找(ch zho)没有成绩的选课记录中的学号和课程号没有成绩的选课记录中的学号和课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NULL 例:查找已有成绩的选课记录例:查找已有成绩的选课记录(jl)中的学号和课程号中的学号和课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NOT NULL第11
7、页/共102页第十二页,共102页。13例:查找计算机系年龄例:查找计算机系年龄(ninlng)小于小于19的学生的名字的学生的名字 SELECT Sname FROM Students WHERE Sdept=计算机计算机 AND Sage19例:查找计算机系或者年龄例:查找计算机系或者年龄(ninlng)小于小于19的学生的名的学生的名字字 SELECT Sname FROM Students WHERE Sdept=计算机计算机 OR Sage,=,=,连接操作选择满足条件连接操作选择满足条件(tiojin)的行的行 第18页/共102页第十九页,共102页。20例:查询例:查询(chx
8、n)选修选修2号课程且成绩在号课程且成绩在90分以上的学生的分以上的学生的 学号与姓名学号与姓名 SELECT Students.Sno,Sname FROM Students,SC WHERE Students.Sno=SC.Sno AND Cno=2 AND Grade90 第19页/共102页第二十页,共102页。21例例:查询每个学生选修的课程名及其成绩查询每个学生选修的课程名及其成绩,同时同时(tngsh)输出学号、姓名输出学号、姓名 SELECT Students.Sno,Sname,Cname,Grade FROM Students,SC,Courses WHERE Studen
9、ts.Sno=SC.Sno AND SC.Cno=Courses.Cno第20页/共102页第二十一页,共102页。22例例:查询查询(chxn)计算机系每个学生选修的课程名及其成绩计算机系每个学生选修的课程名及其成绩 SELECT Students.Sno,Sname,Cname,Grade FROM Students,SC,Courses WHERE Students.Sno=SC.Sno AND SC.Cno=Courses.Cno AND Sdept=计算机计算机第21页/共102页第二十二页,共102页。23子查询(嵌套查询)子查询(嵌套查询)-多表查询的方法二多表查询的方法二 子查
10、询是在子查询是在SELECT语句语句(yj)的的WHERE子句中嵌套子句中嵌套的的SELECT语句语句(yj)。外层。外层SELECT语句语句(yj)称为主称为主查询。查询。又分为又分为 独立子查询:独立子查询:子查询独立求值,其结果代入主查询。子查询独立求值,其结果代入主查询。相关相关(xinggun)子查询:子查询:子查询对主查询可能选出的每一行均执行一次,子查询对主查询可能选出的每一行均执行一次,不能独立求值。不能独立求值。第22页/共102页第二十三页,共102页。24子查询的几种形式:子查询的几种形式:1.NOT IN(1.NOT IN(子查询子查询)P160P160例例6.20 6
11、.20 查找查找(ch zho)Harrison Ford(ch zho)Harrison Ford 主演的所有电影的制片人主演的所有电影的制片人姓名姓名StarsIn(movieTitle,movieYear,starName)StarsIn(movieTitle,movieYear,starName)Movies(title,year,length,genre,studioName,producerC#Movies(title,year,length,genre,studioName,producerC#)MovieExecs(name,address,cert#,netWorth)Mov
12、ieExecs(name,address,cert#,netWorth)第23页/共102页第二十四页,共102页。251)SELECT name2)FROM MovieExecs3)WHERE cert#IN4)(SELECT producerC#5)FROM Movies6)WHERE(title,year)IN SQL Server 20007)(SELECT movieTitle,movieYear8)FROM StarsIn9)WHERE starName=Harrison Ford)10)第24页/共102页第二十五页,共102页。26分析:由内而外分析:由内而外 7)8)9)返回
13、返回(fnhu)图图6-8 4)5)6)返回返回(fnhu)这些影片的制片人的证书号这些影片的制片人的证书号 1)2)3)返回返回(fnhu)这些制片人的姓名这些制片人的姓名书写次序书写次序:由结果到条件由结果到条件第25页/共102页第二十六页,共102页。27不采用不采用(ciyng)子查询:子查询:SELECT DISTINCT name FROM MovieExecs,Movies,StarsIn WHERE cert#=producerC#AND title=movieTitle AND year=movieYear AND starName=Harrison Ford第26页/共1
14、02页第二十七页,共102页。28例:查询选修例:查询选修(xunxi)(xunxi)了了数据结构数据结构的学生的学号、姓名的学生的学号、姓名 SELECT Sno,Sname SELECT Sno,Sname FROM Students FROM Students WHERE Sno IN WHERE Sno IN (SELECT Sno (SELECT Sno FROM SC FROM SC 过程过程 不相关不相关 WHERE Cno IN WHERE Cno IN (SELECT Cno (SELECT Cno FROM FROM Courses Courses WHERE WHERE
15、Cname=Cname=数据结构数据结构)第27页/共102页第二十八页,共102页。292.比较运算符比较运算符 ANY|ALL(子查询子查询)返回返回(fnhu)单值时可使用单值时可使用,=,=,!,等运算符等运算符 P159例例6.19 查找查找(ch zho)“Star Wars”的制片人的制片人 SELECT name FROM MovieExecs WHERE cert#=(SELECT producerC#返回单值返回单值12345 FROM Movies WHERE title=Star Wars)第28页/共102页第二十九页,共102页。30例:查询例:查询(chxn)与刘
16、雪同系的学生学号、姓名及所在系与刘雪同系的学生学号、姓名及所在系 SELECT Sno,Sname,Sdept FROM Students WHERE Sdept=返回单值返回单值 对比对比IN (SELECT Sdept FROM Students WHERE Sname=刘雪刘雪)第29页/共102页第三十页,共102页。31例:查询选修了例:查询选修了数据结构数据结构的学生的学号、姓名的学生的学号、姓名(xngmng)SELECT Sno,Sname FROM Students WHERE Sno IN 集合集合 (SELECT Sno FROM SC WHERE Cno =单值单值 (
17、SELECT Cno FROM Courses WHERE Cname=数据结构数据结构)过程过程 不相关不相关第30页/共102页第三十一页,共102页。323.3 3.3 数据库更新数据库更新插入插入 INSERT INTO INSERT INTO 关系名关系名 (属性属性(shxng)1(shxng)1,属性,属性(shxng)2.)(shxng)2.)VALUES(VALUES(常量常量1 1,常量,常量2.)|SELECT2.)|SELECT语句语句 说明:插入完整的行,可以省略说明:插入完整的行,可以省略(shngl)属性名表属性名表 建议包含属性名表,关系模式变化时仍可正确插入建
18、议包含属性名表,关系模式变化时仍可正确插入 插入不完整行,必须包含属性名表插入不完整行,必须包含属性名表 没有列出的列填入没有列出的列填入NULL(可为空可为空)或缺省值或缺省值 第31页/共102页第三十二页,共102页。33 P173 例例6.35 INSERT INTO StarsIn(movieTitle,movieYear,starName)VALUES (The Maltese Falcon,1942,Sydney Greenstreet)INSERT INTO StarsIn 插入插入(ch r)完整的行标准顺序完整的行标准顺序 VALUES (The Maltese Falco
19、n,1942,Sydney Greenstreet)第32页/共102页第三十三页,共102页。34例例 6.36 插入所有插入所有(suyu)Movie中有中有,Studio中没有的制片公司中没有的制片公司 INSERT INTO Studios(name)SELECT DISTINCT studioName 子查询子查询 FROM Movies WHERE studioName NOT IN (SELECT name FROM Studios)属性属性 address,presC#取取 NULL 第33页/共102页第三十四页,共102页。35删除删除 DELETE FROM 关系名关系名
20、 WHERE 条件条件 无无WHERE子句子句(z j)删除所有行删除所有行 第34页/共102页第三十五页,共102页。36例例6.37:删除删除Sydney Greenstreet主演主演(zhyn)1942年的影片年的影片 The Maltese Falcon这一事实这一事实.DELETE FROM StarsIn WHERE movieTitle=The Maltese Falcon AND movieYear=1942 AND starName=Sydney Greenstreet 多对多多对多 (年年,片名片名)-影片影片 准确描述要删除的元组准确描述要删除的元组第35页/共102
21、页第三十六页,共102页。37例例6.38:删除所有删除所有(suyu)净收入不足净收入不足1000万美金的高级主管万美金的高级主管 DELETE FROM MovieExecs WHERE netWorth=100000)6位编号位编号(bin ho)第66页/共102页第六十七页,共102页。68CREATE TABLE MovieStars(name CHAR(30)PRIMARY KEY,address VARCHAR(255),gender CHAR(1)CHECK(gender IN(F,M),birthdate DATETIME)第67页/共102页第六十八页,共102页。69
22、触发器及其他触发器及其他 触发器(trigger)事件(shjin)条件 动作仅当触发器声明的事件发生时,触发器被激活仅当触发器声明的事件发生时,触发器被激活事件激活的时候测试触发条件事件激活的时候测试触发条件 条件不满足条件不满足(mnz)不做任何动作不做任何动作 条件满足条件满足(mnz)DBMS执行触发器中定义的执行触发器中定义的动作动作第68页/共102页第六十九页,共102页。70 触发器的相关触发器的相关(xinggun)选项选项1)触发器的条件检查和动作)触发器的条件检查和动作 可以在触发器事件可以在触发器事件(shjin)发生之前执行发生之前执行 BEFORE 也可以在触发器事
23、件也可以在触发器事件(shjin)发生之后执行发生之后执行 AFTER2)条件和动作可以引用)条件和动作可以引用(ynyng)元组元组/表的旧值和表的旧值和/或触或触发事件中更新的新值发事件中更新的新值 OLD ROW NEW ROW OLD TABLE NEW TABLE第69页/共102页第七十页,共102页。713)更新)更新(gngxn)事件可以被局限到属性事件可以被局限到属性/属性组属性组4)可以选择动作执行)可以选择动作执行(zhxng)的方式的方式 行级触发行级触发 语句级触发语句级触发第70页/共102页第七十一页,共102页。72例例:阻止阻止(zzh)降低高级主管净资产的操
24、作降低高级主管净资产的操作(改回旧值改回旧值)CREATE TRIGGER NetWorthTrigger AFTER UPDATE OF netWorth ON MovieExecs REFERRENCING OLD ROW AS OldTuple,NEW ROW AS NewTuple FOR EACH ROW 2-1第71页/共102页第七十二页,共102页。73 WHEN (OldTWorthNewTWorth)UPDATE MovieExecs SET netWorth=OldTWorth WHERE cert#=NewTuple.cert#2-2第72页/共102页第七十三页,共1
25、02页。74例例:阻止制片人的平均净资产降到:阻止制片人的平均净资产降到500000美元以下美元以下 这里只给出更新这里只给出更新(gngxn)触发器触发器 删除删除+插入的插入的情况略情况略CREATE TRIGGER AvgNetWorthTrigger AFTER UPDATE OF netWorth ON MovieExec REFERENCING OLD TABLE AS OldStuff NEW TABLE AS NewStuff FOR EACH STATEMENT 第73页/共102页第七十四页,共102页。75WHEN (500000 (SELECT AVG(netWorth
26、)FROM MovieExec)BEGIN DELETE FROM MovieExec WHERE (name,address,cert#,netWorth)IN NewStuff INSERT INTO MovieExec (SELECT*FROM OldStuff)END第74页/共102页第七十五页,共102页。76 断言断言:约束涉及整个关系约束涉及整个关系 甚至其他关系甚至其他关系 CREATE ASSERTION 制片公司制作的所有电影总长制片公司制作的所有电影总长10000分钟分钟 不存在净资产不足不存在净资产不足(bz)1000万美金的万美金的总裁总裁 第75页/共102页第七
27、十六页,共102页。77 3.6 3.6 索引索引#索引的意义索引的意义 SELECT*SELECT*FROM Movies FROM Movies WHERE year=1990 AND studioName=Disney WHERE year=1990 AND studioName=Disney Movies 10 000 Movies 10 000个元组个元组 200 200个个 1990 1990年制作年制作 可否只从可否只从200200个个19901990年制作的影片中查询年制作的影片中查询DisneyDisney公司公司(n(n s)s)的影片的影片?以年代建索引以年代建索引 加快
28、查询速度加快查询速度第76页/共102页第七十七页,共102页。78索引的分类:索引的分类:UNIQUE(唯一性):(唯一性):任意两行的被索引列,不能出现重复值(包括空值)任意两行的被索引列,不能出现重复值(包括空值)CLUSTERED(簇式):(簇式):行的物理顺序和索引顺序相同行的物理顺序和索引顺序相同 一表仅一个一表仅一个 更新时移动更新时移动(ydng)数据数据 NONCLUSTERED(非簇式):(非簇式):默认默认 包含索引值和指向数据行的指针包含索引值和指向数据行的指针 不要求行的物理顺序不要求行的物理顺序和索引顺序相同和索引顺序相同 一表可多个一表可多个 复合索引:对表的两列
29、或多列进行索引复合索引:对表的两列或多列进行索引第77页/共102页第七十八页,共102页。79 例例:在单一在单一(dny)(dny)属性上建索引属性上建索引 CREATE INDEX YearIndex ON Movies(year)CREATE INDEX YearIndex ON Movies(year)索引名索引名 关系名关系名 属性属性 例例:在一组属性上建索引在一组属性上建索引 CREATE INDEX KeyIndex ON Movies(title,year)CREATE INDEX KeyIndex ON Movies(title,year)索引名索引名 关系名关系名 属性
30、组属性组 第78页/共102页第七十九页,共102页。80删除删除(shnch)索引索引:DROP INDEX YearIndex 索引名索引名第79页/共102页第八十页,共102页。81关于速度与开销关于速度与开销 索引的有利之处索引的有利之处:提高该属性值已知的查询的速度提高该属性值已知的查询的速度 索引的不利之处索引的不利之处:占空间占空间 增删改时维护增删改时维护(wih)索引增加索引增加 系统开销系统开销第80页/共102页第八十一页,共102页。82Movies 在什么列建索引在什么列建索引?year title (year,title)速度速度(sd)慢慢/空间小空间小 适中适
31、中 速度速度(sd)快快/空间大空间大 维护的开销小维护的开销小 维护的开销大维护的开销大 考虑考虑:表表 更新多更新多?查询多查询多?经常用什么列查询经常用什么列查询?第81页/共102页第八十二页,共102页。833.7 3.7 视图视图 为什么要有视图?为什么要有视图?视图是从一个视图是从一个(y)(y)或几个基本表(视图)导出的表。或几个基本表(视图)导出的表。第82页/共102页第八十三页,共102页。84从视图中(看到)的数据是从视图中(看到)的数据是 由定义由定义(dngy)(dngy)视图的视图的SELECTSELECT语句查询语句查询而来。而来。与基本表不同,系统只保存视图的
32、定义与基本表不同,系统只保存视图的定义(dngy)(dngy),不重复保存其中数据。,不重复保存其中数据。第83页/共102页第八十四页,共102页。85 视图的使用:视图的使用:可以可以(ky)对视图进行查询,就象它实际存在一样对视图进行查询,就象它实际存在一样 -查询到的数据来自基本表查询到的数据来自基本表 某些情况下,甚至可以某些情况下,甚至可以(ky)对视图进行更新对视图进行更新 -更新基本表中的数据更新基本表中的数据第84页/共102页第八十五页,共102页。86视图的好处:视图的好处:1.1.一定程度的数据一定程度的数据(shj)(shj)的逻辑独立性的逻辑独立性 (更新受限更新受
33、限)2.2.安全性安全性 3.3.简化用户的数据简化用户的数据(shj)(shj)处理处理 4.4.从需要的角度看待数据从需要的角度看待数据(shj)(shj)第85页/共102页第八十六页,共102页。87视图的定义视图的定义(dngy)(dngy)句法:句法:CREATE VIEW CREATE VIEW 视图名视图名 (列名表列名表)AS AS SELECT SELECT 语句语句 第86页/共102页第八十七页,共102页。88说明:说明:1.1.可建视图的视图(可建视图的视图(SELECTSELECT中象使用基本中象使用基本(jbn)(jbn)表一样使用视图)表一样使用视图)2.2.
34、可用列名表指出所有列名可用列名表指出所有列名 或或 省去列名表省去列名表 不指定视图的列名不指定视图的列名 使用查询结果表列名使用查询结果表列名 如下如下(rxi)(rxi)情况必须指定列名:情况必须指定列名:希望使用不同的列名希望使用不同的列名 表达式、函数所得的列表达式、函数所得的列 多表中的公共列多表中的公共列第87页/共102页第八十八页,共102页。89P202 例例8.1 将关系将关系 Movies(title,year,length,genre,studioName,producerC#)的一部分,即的一部分,即Paramount(派拉蒙派拉蒙)制片公司制作的电影名称制片公司制作
35、的电影名称和年份作为和年份作为(zuwi)一个视图:一个视图:CREATE VIEW ParamountMovies AS SELECT title,year FROM Movies WHERE studioName=Paramount视图视图(sht)名名 视图视图(sht)属性(列)属性(列)视图视图(sht)的的定义定义第88页/共102页第八十九页,共102页。90 将视图将视图(sht)(sht)的定义存入系统表,不执行的定义存入系统表,不执行SELECTSELECT语句。语句。对视图对视图(sht)(sht)查询时查询时 按视图按视图(sht)(sht)的定义从基本表中将数据的定义
36、从基本表中将数据查出。查出。第89页/共102页第九十页,共102页。91例:建立数学系学生的视图例:建立数学系学生的视图 CREATE VIEW MA_Students CREATE VIEW MA_Students AS AS SELECT Sno,Sname,Sage SELECT Sno,Sname,Sage FROM Students FROM Students WHERE Sdept=WHERE Sdept=数学数学 视图的列名表视图的列名表 行列行列(hng li)(hng li)子集视图:取行列子集视图:取行列(hng li)(hng li)、保留码保留码第90页/共102页第
37、九十一页,共102页。92视图可以视图可以(ky)(ky)建立在多表(视图)上建立在多表(视图)上P203 P203 例例8.28.2:建立包含电影名和制片人名的视图:建立包含电影名和制片人名的视图 CREATE VIEW MovieProds CREATE VIEW MovieProds AS AS SELECT title,name SELECT title,name FROM Movies,MovieExecs FROM Movies,MovieExecs WHERE producerC#=cert#WHERE producerC#=cert#视图属性名:视图属性名:title,name
38、title,name第91页/共102页第九十二页,共102页。93例:数学例:数学(shxu)(shxu)系选了系选了1 1号课程的学生视图号课程的学生视图 CREATE VIEW MA_S1(Sno,Sname,Grade)CREATE VIEW MA_S1(Sno,Sname,Grade)AS AS SELECT Students.Sno,Sname,Grade SELECT Students.Sno,Sname,Grade FROM Students,SC FROM Students,SC WHERE Sdept=WHERE Sdept=数学数学(shxu)(shxu)AND Stud
39、ents.Sno=SC.Sno AND Students.Sno=SC.Sno AND SC.Cno=1 AND SC.Cno=1 视图属性表不可省视图属性表不可省第92页/共102页第九十三页,共102页。94P203 有时更愿意使用自己选择有时更愿意使用自己选择(xunz)的属性名的属性名改改 例例8.2:建立包含电影名和制片人名的视图:建立包含电影名和制片人名的视图 CREATE VIEW MovieProds(movieTitle,prodName)AS SELECT title,name FROM Movies,MovieExecs WHERE producerC#=cert#视图属
40、性名:视图属性名:movieTitle,prodName第93页/共102页第九十四页,共102页。95例例 数学系选了数学系选了1 1号课程号课程(kchng)(kchng)且分数在且分数在9090以上以上 的学生视图的学生视图 CREATE VIEW MA_S2 CREATE VIEW MA_S2 AS AS SELECT Sno,Sname,Grade SELECT Sno,Sname,Grade FROM MA_S1 FROM MA_S1 WHERE Grade=90 WHERE Grade=90 视图的视图视图的视图 第94页/共102页第九十五页,共102页。96例:定义一个反映学
41、生出生例:定义一个反映学生出生(chshng)(chshng)年份的视年份的视图图 CREATE VIEW BT_S (Sno,Sname,Sbirth)CREATE VIEW BT_S (Sno,Sname,Sbirth)AS AS SELECT Sno,Sname,2010-Sage SELECT Sno,Sname,2010-Sage FROM Students FROM Students 第95页/共102页第九十六页,共102页。97例:将学生的学号和各科的平均例:将学生的学号和各科的平均(pngjn)(pngjn)成绩定义成绩定义 为一个视图为一个视图 CREATE VIEW S_
42、G (Sno,Gavg)CREATE VIEW S_G (Sno,Gavg)AS AS SELECT Sno,AVG(Grade)SELECT Sno,AVG(Grade)FROM SC FROM SC GROUP BY Sno GROUP BY Sno第96页/共102页第九十七页,共102页。98例:例:CREATE VIEW CREATE VIEW F_Students(stdnum,name,sex,age,dept)F_Students(stdnum,name,sex,age,dept)AS AS SELECT *SELECT *FROM Students FROM Students
43、 WHERE Ssex=WHERE Ssex=女女 依当前基本表生成视图定义,基本表改变则不能正常依当前基本表生成视图定义,基本表改变则不能正常(zhngchng)(zhngchng)工作工作第97页/共102页第九十八页,共102页。99法法1 1:CREATE VIEW CREATE VIEW F_Students (stdnum,name,sex,age,dept)F_Students (stdnum,name,sex,age,dept)AS SELECT Sno,Sname,Ssex,Sage,Sdept AS SELECT Sno,Sname,Ssex,Sage,Sdept FROM
44、 Students FROM Students WHERE Ssex=WHERE Ssex=女女 法法2 2:删除删除(shnch)(shnch)旧视图,重建。旧视图,重建。第98页/共102页第九十九页,共102页。100 DBMS 执行视图查询时,执行视图查询时,首先进行有效性检查,检查涉及的表、视图是否首先进行有效性检查,检查涉及的表、视图是否存在,存在,如存在从系统表中取出视图定义,如存在从系统表中取出视图定义,把定义中的把定义中的SELECT语句与对视图进行的查询的语句与对视图进行的查询的SELECT语句结合语句结合(jih)起来,转换成对基本表的查起来,转换成对基本表的查询,询,然
45、后,再执行这个修正后的查询。然后,再执行这个修正后的查询。第99页/共102页第一百页,共102页。101例:查询数学系年龄小于例:查询数学系年龄小于20 的学生的学生(xu sheng)的的学号学号 和年龄和年龄 SELECT Sno,Sage FROM MA_Students WHERE Sage20 过程过程第100页/共102页第一百零一页,共102页。102P203 例例8.4 可以写出涉及可以写出涉及(shj)基本表和视图的查询基本表和视图的查询 SELECT DISTINCT starName FROM ParamountMovies,StarsIn WHERE title=movieTitle AND year=movieYear第101页/共102页第一百零二页,共102页。