
sql关系图建立.doc
10页第7章 SQL Server 2005关系图和视图管理 2第7章 SQL Server 2005关系图和视图管理教学目标:通过第1章介绍的E-R图和本章关系图的对照,加深理解实体和实体之间的联系在数据库中的实现;熟练掌握视图的操作:创建、使用、修改和删除,应该做到给一个应用后就能马上反映到用不用视图,用什么样的视图,怎么用视图的熟练程度7.1 SQL Server 2005关系图数据库关系图:数据库中对象的图形表示形式;数据库关系图既可以是整个数据库结构的图片,也可以是部分数据库结构的图片;它包括表对象、表所包含的列以及它们之间的关系数据源视图设计器(SSAS):使用 Business Intelligence Development Studio 中的数据源视图设计器可以编辑数据源视图的各种属性,以及对在多个关系图的数据源视图中定义的对象进行组织通过执行以下操作之一,即可显示“数据源视图设计器”对话框:l 在解决方案资源管理器中右键单击某个数据源视图,再选择“打开”或“视图设计器”。
l 在解决方案资源管理器中双击某个数据源视图使用数据源视图设计器的关系图窗格,可以查看和修改“关系图组织程序”窗格中所选关系图中包含的表、列、命名查询、命名计算和关系关系图窗格中将显示数据源视图设计器的“关系图组织程序”窗格中所选的关系图若要更改关系图窗格中显示的关系图区域,请单击该窗格右下角的四向箭头,然后在关系图的缩略图上拖动选择框,直到选定要在关系图窗格中显示的区域为止7.1.1 创建新的数据库关系图以创建教务管理选课系统数据库EDUC的关系图为例1) 在【对象资源管理器】中,右键单击EDUC数据库的“数据库关系图”节点或该节点中的任何关系图,从快捷菜单中选择“新建数据库关系图”;(2) 在弹出【添加表】对话框中选择所需的表,再单击“添加”;(3) 所选择的表将以图形方式显示在新的数据库关系图中4) 保存该关系图7.1.2 数据库关系图的打开(1) 在【对象资源管理器】中,展开“数据库关系图”节点;(2) 双击要打开的数据库关系图的名称或右键单击要打开的数据库关系图的名称,然后选择“设计数据库关系图”; (3) 在数据库关系图设计器中打开该数据库关系图,就可以在其中编辑关系图7.1.3 删除数据库关系图(1) 在【对象资源管理器】中,展开“数据库关系图” 节点;(2) 右键单击要删除的数据库关系图,从快捷菜单中选择“删除”;(3) 此时,将显示一条消息,提示您确认删除,选择“是”。
该数据库关系图随即从数据库中删除在删除数据库关系图时,不会删除关系图中的表7.1.4 显示数据库关系图属性(1) 打开数据库关系图设计器;(2) 通过在该设计器中单击对象以外的任意位置,确保没有在数据库关系图设计器中选择任何对象;(3) 在“视图”菜单中,单击“属性窗口”,该关系图的属性随即显示在【属性】窗口中7.1.5 协调数据库关系图与已修改的数据库当您准备好对数据库进行更新以与您的关系图匹配时,即可保存数据库关系图保存关系图将通过改写其他用户的更改来使数据库与您的关系图一致,以便数据库与关系图匹配但是,如果其他用户在您打开关系图后更新了相应的数据库,他们的更改可能会影响您的关系图,同样如果您在其他用户打开关系图后更新数据库,那么您的更改也会影响他们的关系图解决的方法通常有两种:1. 更新数据库以与关系图匹配l 保存数据库关系图l 如果您以前未保存过关系图,请在“保存新的数据库关系图”对话框中为该关系图键入名称,再选择“确定”l “保存”对话框会列出在您保存关系图时将受到影响的表选择“是”继续执行操作l “检测到数据库更改”对话框将列出已修改并将进行更改以与关系图匹配的对象选择“是”以保存该关系图并接受更改列表。
注意:如果您的关系图中包含已在数据库中删除的表和列,那么当您保存关系图时,数据库中只会重新创建其定义此过程无法还原删除这些对象之前存在于这些对象中的任何数据2. 更新关系图以与已修改的数据库匹配l 关闭关系图而不保存更改l 在对象资源管理器中右键单击该关系图l 在快捷菜单中单击“刷新”l 重新打开该关系图7.2 T-SQL语言的视图定义视图是一个由SELECT语句指定,用以检索数据库表某些行或列数据的语句存储定义l DB三级结构:局部逻辑结构,整体逻辑结构,物理结构l SQL三级结构:视图(外模式),基本表(模式),文件(存储模式)l 视图的列来自不同的表,是基本表的抽象和在逻辑意义上建立的新关系l 视图是基本表(实表)上的表(虚表),由基本表产生l 视图的建立和删除不影响基本表l 对视图内容的更新(插入、删除和修改)直接影响基本表l 视图来自多个基本表时,不允许插入和删除数据7.3 创建视图7.3.1 使用SSMS创建视图以创建电子商务学生的视图为例1) 在【对象资源管理器】中,右键单击EDUC数据库的“视图”节点或该节点中的任何视图,从快捷菜单中选择“新建视图”;(2) 在弹出【添加表】对话框中选择所需的表Student或视图等,再单击“添加”;(3) 在【视图设计器】中选择要投影的列,选择条件等;(4) 执行该SQL语句,运行正确后保存该视图View_EB。
7.3.2 使用T-SQL语句CREATE VIEW 视图名AS SELECT子句例1:定义视图V1_BOOKS为图书中的作者和书名USE LibraryGOCREATE VIEW V1_BOOKSAS SELECT DISTINCT Author, Bname FROM dbo.BookGOUSE LibraryGO运行结果:命令已成功完成查看定义:USE LibraryGOsp_helptext V1_BOOKSGO打开视图查看结果:例2:定义视图overdue,读者借书应还日期SReturnDate信息USE LibraryGOCREATE VIEW overdue ( RID,Rname, BID, Bname,SReturnDate )ASSELECT Reader.RID, Reader.Rname, Book.BID, Book.Bname,Borrow.LendDate+ ReaderType.LimitDaysFROM Reader INNER JOIN Borrow ON Reader.RID = Borrow.RID INNER JOIN ReaderType ON Reader.TypeID = ReaderType.TypeID INNER JOIN Book ON Borrow.BID = Book.BIDWHERE (Borrow.ReturnDate IS NULL)打开视图查看结果:例3:创建视图从overdue中查询出借阅超期的读者信息。
CREATE VIEW v_overdueASSELECT *FROM overdueWHERE (SReturnDate< GETDATE())打开视图查看结果:7.4 修改视图7.4.1 使用SSMS修改视图选择具体要修改的视图快捷菜单—“修改”7.4.2 使用T-SQL语句ALTER VIEW 视图名AS SELECT子句例:修改视图V1_BOOKS,使其显示Book表中的不重复的作者和书名USE LibraryGOALTER VIEW V1_BOOKSAS SELECT DISTINCT Author, Bname FROM dbo.BookGO7.5 使用视图7.5.1 视图检索(查询)(与基表相同)选择具体要检索的视图快捷菜单—“打开视图”7.5.2 利用视图操作基表通过视图对基本表进行插入、修改、删除行的操作,有一定的限制条件1. 插入记录例:在视图View_EB中插入一条新的记录,其各字段的值分别为'2005216322','李晓燕','女','1986-9-6','电子商务'USE EDUC1GOINSERT INTO View_EB(SID,Sname,Sex,Birthday,Specialty)VALUES('2005216322','李晓燕','女','1986-9-6','电子商务')GO2. 修改记录例:将视图View_EB姓名为郭洪亮的学生的出生日期改为’1987-4-27’。
USE EDUC GOUPDATE View_EBSET Birthday =’1987-4-27’WHERE Sname=’郭洪亮’GO3. 删除记录例:在视图View_EB中删除姓名为李晓燕的学生记录USE EDUCGODELETE FROM View_EBWHERE Sname=’李晓燕’GO7.6 删除视图7.6.1 使用SSMS删除视图三种方法:l “编辑”——“ 删除”l 快捷菜单——“ 删除”l DELETE键7.6.2 使用T-SQL语句DROP VIEW 视图名例:删除视图 View_EBDROP VIEW View_EB7.7 小结本章重点讲述了视图的创建、使用、修改和删除操作;其中视图的创建、修改和删除操作都讲解了两种实现方法;视图的使用中介绍使用视图进行查询和使用视图操作基本表的方法希望同学们通过上机练习加深对视图的理解,提高对视图的操作能力 。












