SQLServer与数据库PPT

上传人:鲁** 文档编号:592844309 上传时间:2024-09-23 格式:PPT 页数:62 大小:1MB
返回 下载 相关 举报
SQLServer与数据库PPT_第1页
第1页 / 共62页
SQLServer与数据库PPT_第2页
第2页 / 共62页
SQLServer与数据库PPT_第3页
第3页 / 共62页
SQLServer与数据库PPT_第4页
第4页 / 共62页
SQLServer与数据库PPT_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《SQLServer与数据库PPT》由会员分享,可在线阅读,更多相关《SQLServer与数据库PPT(62页珍藏版)》请在金锄头文库上搜索。

1、浙江工商大学计算机与信息工程学院浙江工商大学计算机与信息工程学院数据库原理数据库原理Database PrinciplesCollege of Computer Science and Information EngineeringZhejiang Gongshang University韩培友韩培友Happy You1第第2章章 SQL Server与数据库与数据库西京大学开发教务管理系统,需要设计学生选课数据库,数据要求: 学生信息(学号、姓名、性别等) 课程信息(课程号、课程、学分等),学生通过选课可以得到成绩如何设计数据库: 数据库包含几个表;每个表有哪些数据项(属性)组成; 如何设置

2、表的约束条件(实体、参照和用户定义完整性约束等); 使用什么工具建立数据库。SQL Server是微软研发的符合国际标准SQL(Structured Query Language,结构化查询语言)的专业级数据库管理系统,提供ODBC(Open Database Connectivity,开放数据库互连)接口,管理功能相当完善,通过简单操作就可以非常安全稳定的进行数据库管理。市场占有率,主流数据库管理工具,最新产品:SQL Server 2008本章使用SQL Server 2005介绍数据库及其数据表的设计与创建过程22.1 如何创建数据库和表如何创建数据库和表2.1.1 SQL Server

3、概述提供功能强大管理工作室,使DB管理方便、快捷、安全、稳定、高效特点:综合统一综合统一: DDL、DML和DCL,风格统一,独立完成DB理语法简单,易学易用语法简单,易学易用:功能极强。核心功能仅使用了9个动词(Create、Select、Drop、Alter、Insert、Update、Delete、Grant和Revoke等)。面向集合操作面向集合操作:SQL 全面采用集合操作方式。其查找、插入、修改和删除等操作的操作对象均是集合高度非过程化高度非过程化一语两用一语两用:SQL 既是自含式语言,又是嵌入式语言。作为自含式语言,用户可以直接输入SQL命令,以联机交互的方式独立的管理和使用数

4、据库。作为嵌入式语言,SQL语句能够嵌入到高级语言3SQL Server 管理工作室管理工作室管理工作室(SQL Server Management Studio,SSMS)提供了用于数据库管理的图形工具和功能丰富的开发环境特点:SQL Server 2000 企业管理器、Analysis Manager 和 查询分析器等功能集成于一身。功能:创建数据库、表和视图,可以编写 MDX、XMLA 和 XML 语句启动方法: 开始程序Microsoft SQL Server 2005SQL Server Management Studio。主工作区: 主要由对象资源管理器(图2-1的左侧)和多文档浏

5、览与编辑区(查询分析器 + 表结构设计器 + 表记录编辑器 + 信息浏览等,图2-1的右侧)等组成。本章重点:语句用法;具体操作在实验中进行。452.1.2 数据库及其表的设计数据库及其表的设计数据库设计需要考虑的问题:(1)需要设计几个数据库。(2)每一个数据库包含几个表。(3)每一个表包含几个数据项。(4)每一个数据项的类型、宽度和约束条件等。(5)数据项之间的依赖关系。对于西京大学的教务管理系统,应该采用什么方案?6方案一、单库单表:方案一、单库单表:(1)设计1个数据库StudentDB。(2)StudentDB包含1个表SCInfo(别名:SCI)。(3)SCInfo包含:学号、姓名

6、、性别、年龄、学院、课程号、课程名、先修课、学分和成绩等数据项。(4)每一个数据项的类型、宽度和约束条件。7方案一、单库单表:方案一、单库单表:约束条件:学号SNo:字符型;10位(年4位+学院2位+班级2位+序号2位);不同的学生,学号不能相同;不能为空等。姓名SName:字符型;20位;不能为空等。性别SSex:字符型;2位;只能是男和女等。年龄Sage:单字节整型;3位(0255);年龄必须大于1岁,小于100等。学院Coll:字符型;40位等。课程号CNo:字符型;6位(学院2位+专业2位+序号2位);不同的课程,课程号不能相同;不能为空等。课程名CName:字符型;40位;不能为空等

7、。先修课CPNo:字符型;6位(学院2位+专业2位+序号2位);无先修课的省略不填等。 学分Credit:单字节整型;固定为1个字节(09)等。成绩Grade:浮点型;固定8个字节,成绩必须大于等于0分,小于等于1008方案一、单库单表:方案一、单库单表:(5)数据项之间的依赖关系:学生选修的课程必须是课程表中开设的课程;选课的学生必须是学生表中的学生;先修课必须是课程表中的课程号等。最终表结构: SCInfo(学号,姓名,性别,年龄,学院,课程号,课程名,先修课,学分,成绩)表2-1是与上述学生选课信息表对应的一个实例。SNo学号学号SName姓姓名名SSex性性别别Sage年年龄龄Coll

8、学院学院CNo课课程程号号CName 课程名课程名CPNo先先修修课课Credit学分学分Grade成成绩绩2008010101张张明明男男20数学数学学学院院010101高等数学高等数学0201016992008010102李李光光女女19数学数学学学院院030101数据结构数据结构0201013982008020103王王武武男男16外语外语学学院院020101英语英语0201014972008020104孙孙文文女女18外语外语学学院院030102图像分析图像分析0101012962008030105马马松松女女17信息信息学学院院030201软件工程软件工程03010139620080

9、30106刘刘金金男男19信息信息学学院院030202数据库原数据库原理理0301013969方案二、单库多表(方案二、单库多表(3表)表)(1)设计1个数据库StudentDB。(2)设计3个表Student(别名:S)、Course(别名:C)和StudentCourse(别名:SC)。(3)3个表的数据项:Student:学号、姓名、性别、年龄、学院。Course:课程号、课程名、先修课、学分。StudentCourse:学号、课程号和成绩。(4)每一个数据项的类型、宽度和约束条件;数据项之间的依赖关系与方案一相同。最终表结构:Student(学号学号,姓名,性别,年龄,学院),姓名,性

10、别,年龄,学院)Course(课程号课程号,课程名,先修课,学分),课程名,先修课,学分)StudentCourse(学号学号,课程号课程号,成绩),成绩) 10方案二、单库多表(方案二、单库多表(3表)表)表2-2、表2-3和表2-4是对应的一个实例。SNo 学号学号SName 姓名姓名SSex 性别性别Sage 年龄年龄Coll 学院学院2008010101张明张明男男20数学学院数学学院2008010102李光李光女女19数学学院数学学院2008020103王武王武男男16外语学院外语学院2008020104孙文孙文女女18外语学院外语学院2008030105马松马松女女17信息学院信息

11、学院2008030106刘金刘金男男19信息学院信息学院CNo 课程号课程号CName 课程名课程名CPNo 先修课先修课Credit 学学分分010101高等数学高等数学0201016020101英语英语0000004030101数据结构数据结构0201013030102图像分析图像分析0101012030201软件工程软件工程0301013030202数据库原理数据库原理0301013SNo 学号学号CNo 课程号课程号Grade 成绩成绩2008010101010101992008010102030101982008020103020101972008020104030102962008

12、0301050302019620080301060302029611方案二、单库多表(方案二、单库多表(3表)表)不难看出,方案二多方面优于方案一,因此选择方案二建立数据库思考:为什么方案二优于方案一?请从多个方面进行详细分析。提示:从数据冗余、插入异常、修改异常、删除异常等方面分析。结论:针对具体应用系统,在设计数据库时,需要合理确定使用数据库的个数以及每一个数据库包含表的个数,然后规范设计每一个表包含的属性的个数以及每一个属性的特征要求、约束条件和依赖关系等,最终设计出一个合理的最佳方案。122.1.3 数据库及其表的建立数据库及其表的建立1. 创建数据库对象资源管理器查询分析器存储文件存

13、储文件表表视图视图外模式外模式模式模式内模式内模式应用应用应用程序应用程序视图视图视图视图表表表表表表存储文件存储文件存储文件存储文件模式模式 / / 外模式外模式模式模式 / / 内模式内模式应用程序应用程序应用程序应用程序应用程序应用程序学号学号姓名姓名性性别别2010001王平王平女女学号学号姓名姓名性性别别2010001王平王平女女课课程号程号课课程名程名学分学分C001高等数学高等数学6学号学号课课程名程名成成绩绩2010001C00178姓名姓名课课程名程名成成绩绩王平王平高等数学高等数学78外模式外模式Student.MDFStudent.LDF 模式模式内模式内模式1314(1

14、)使用对象资源管理器创建数据库)使用对象资源管理器创建数据库图2-1的GUI,右击“数据库”,选择“新建数据库(N)”,图2-2中,在“数据库名称(N):”右侧输入DB的名称:StudentDB, 则在“数据库文件(F):”的下方自动给出DB文件和相应日志文件的逻辑名称依次:StudentDB.MDF和StudentDB_log.LDF,默认存储位置为: C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATA如果需要指定DB的存储位置,可以单击“路径”右侧的“”进行选择。其他属性,也可以根据需要进行设置。最后单击“确定”完成创建数据库。在图2-1

15、中,展开数据库,在需要编辑的数据库上右击,然后选择“重命名”、“删除”、“刷新”和“属性”等对数据库进行相应的编辑。即:1)选择“重命名”:可以修改数据库的名称。2)选择“删除”:删除数据库,方法是在弹出的窗口中单击“确定”。3)选择“刷新”:可以刷新SSMS ,使修改显示在SSMS的界面上。4)选择“属性”:可以查看和修改数据库的基本属性。注意:删除数据库时,将删除该数据库的所有数据表。15(2)使用查询分析器创建数据库)使用查询分析器创建数据库在图2-1中,单击工具栏的“新建查询(N)”,启动查询分析器,在图2-3中,利用查询分析器,创建数据库、数据表和视图等。即:1)在查询分析器中,直接

16、输入SQL语句。2)单击语句语法分析按钮“”,检查分析SQL语句是否正确。3)单击执行按钮“!执行(X)”,运行查询分析器中的语句序列。创建数据库:CREATE DATABASE 创建数据库StudentDB:CREATE DATABASE StudentDB删除:DROP DATABASE ,删除StudentDB:DROP DATABASE StudentDB提示:查询分析器中的语句序列,可以保存为查询文件(*.sql),以备后用。162. 创建表创建表SQL Server 2005的常用数据类型的常用数据类型创建方法对象资源管理器对象资源管理器查询分析器查询分析器位型位型整型整型货币型货

17、币型BITTINYINTSMALLINTINTBIGINTMONEYSMALLMONEY日期时间型日期时间型图像型图像型浮点型浮点型字符型(长度为字符型(长度为n)DATETIMESMALLDATETIMEIMAGEFLOATREALCHAR(n)172. 创建表创建表方案二:三个表的数据项及其属性如下:方案二:三个表的数据项及其属性如下:学号(学号(SNo):):CHAR(10);主码;非空。);主码;非空。姓名(姓名(SName):):CHAR(20);非空。);非空。性别(性别(SSex):):CHAR(2)。)。年龄(年龄(Sage):):TINYINT;约束:;约束:1到到99岁。岁

18、。学院(学院(Coll):):CHAR(40)。)。课程号(课程号(CNo):):CHAR(6);主码;非空。);主码;非空。课程名(课程名(CName):):CHAR(40);非空。);非空。先修课(先修课(CPNo):):CHAR(6)。)。学分(学分(Credit):):INT。成绩(成绩(Grade):):FLOAT;约束:;约束:0到到100分。分。182. 创建表创建表方案二:方案二:表表Course的外码:的外码:外码外码CPNo,参照表,参照表Course(主键表主键表),参照码),参照码CNo(参照主码参照主码)表表StudentCourse的组合主码:的组合主码:(SNo,

19、 CNo)表表StudentCourse的外码:的外码:外码外码SNo,参照表,参照表Student(主键表主键表),参照码),参照码Sno(参照主码参照主码)外码外码CNo,参照表,参照表Course(主键表主键表),参照码),参照码CNo(参照主码参照主码)1920(1)使用对象资源管理器创建表)使用对象资源管理器创建表在图2-1中,展开数据库StudentDB,右击“表”,选择“新建数据表(N)”,在右侧编辑区的“表-dbo.Table_1”的下方依次输入表Student的数据项及其相应属性。即:1)列名下方:输入数据项的名称。如:SNo,SName,SSex,Sage,Coll。2)数

20、据类型下方:选择相应的数据类型。如:char(10),int等。3)允许空下方:选择该数据是否允许为空值。4)在任意行上,右击(图2-1),选择“插入列(M)”,插入新数据项及其属性;选择“删除列(N)”,删除数据项;选择“设置主键”,把该属性设置成为主码,把多个数据项设置成组合主码,则只需先选择多行;取消主码,只需在设置主键的行上,右击,选择“移去主键Y”。5)在任意行上,右击(图2-1),选择“CHECK约束(O)”,设置该属性的用户定义约束(图2-4)。首先单击“添加(A)”或“删除(D)”,添加约束或者删除已有约束,然后在“表达式”右侧直接填写自定义约束表达式,或单击右侧的“.”,则弹

21、出的窗口中填写用户定义约束表达式。然后在图2-4中单击“关闭”21(1)使用对象资源管理器创建表)使用对象资源管理器创建表6)在图2-1中,单击工具栏的保存按钮,在弹出的“选择名称”窗口中输入:Student,然后单击“确定”完成创建表Student。7)使用同样的方法创建数据表:Course和StudentCourse。在创建StudentCourse的过程中,参照约束和外码的创建方法如下:在任意行上,右击(图2-1),选择“关系”,在图2-5中,单击“添加(A)”或“删除(D)”,添加或者删除参照关系。然后选择“表和列规范”,并单击右侧“.”(图2-6)。在图2-6中,设置外码SNo以及主

22、键表Student和参照码SNo。具体方法为:在“主键表(P):”下选择:Student,并在Student的下方选择参照码SNo。确定“外键表:”的下方的外码是SNo。另外,在下方CNo处选择:,最后单击确定。单击“关闭”完成参照约束设置。8)编辑数据表。在图2-1中,依次展开数据库和相应的表,在需要编辑的表上右击(如图2-9),然后选择“修改”、“重命名”和“删除”等对数据表进行编辑。22(2)使用查询分析器创建表)使用查询分析器创建表-打开数据库StudentDB:在使用数据库之前,需要先打开数据库。USE StudentDBCREATE TABLE Student( SNo CHAR(

23、10) PRIMARY KEY NOT NULL, SName CHAR(20) NOT NULL, SSex CHAR(2) CHECK (SSex=男 OR SSex=女), SAge TINYINT CHECK (SAge1 AND SAge100), Coll CHAR(40) 23(2)使用查询分析器创建表)使用查询分析器创建表CREATE TABLE Course( CNo CHAR(6) PRIMARY KEY NOT NULL, CName CHAR(40) NOT NULL, CPNo CHAR(6), Credit INT, FOREIGN KEY (CPNo) REFER

24、ENCES Course(CNo)CREATE TABLE Course( CNo CHAR(6) PRIMARY KEY NOT NULL, CName CHAR(40) NOT NULL, CPNo CHAR(6) REFERENCES Course(CNo), Credit INT)24(2)使用查询分析器创建表)使用查询分析器创建表CREATE TABLE StudentCourse( SNo CHAR(10) NOT NULL, CNo CHAR(6) NOT NULL, Grade FLOAT, PRIMARY KEY (SNo, CNo), FOREIGN KEY (SNo) R

25、EFERENCES Student(SNo), FOREIGN KEY (CNo) REFERENCES Course(CNo)CREATE TABLE StudentCourse( SNo CHAR(10) REFERENCES Student(SNo) NOT NULL , CNo CHAR(6) REFERENCES Course(CNo) NOT NULL, Grade FLOAT, PRIMARY KEY (SNo, CNo)251)向表添加新数据项)向表添加新数据项ALTER TABLE ADD 完整性约束完整性约束 例如:向例如:向Student增加增加“注册时间注册时间”属性,

26、其数据类型为日期型。属性,其数据类型为日期型。ALTER TABLE Student ADD SEnrollment DATETIME例如:向例如:向Student的的SName增加唯一性约束。增加唯一性约束。ALTER TABLE Student ADD UNIQUE(SName) 或者或者ALTER TABLE Student ADD CONSTRAINT Un_SName UNIQUE(SName)262)修改表的数据项)修改表的数据项ALTER TABLE ALTER COLUMN 例如:修改例如:修改Student的的SAge的类型为的类型为SMALLINT。ALTER TABLE

27、Student ALTER COLUMN SAge SMALLINT273)删除表的数据项及其约束条件)删除表的数据项及其约束条件ALTER TABLE DROP COLUMN | CONSTRAINT 例如:删除例如:删除Student的数据项的数据项Senrollment。ALTER TABLE Student DROP COLUMN Senrollment例如:删除例如:删除Student的的SName的唯一性约束。的唯一性约束。ALTER TABLE Student DROP CONSTRAINT Un_SName284)删除表:)删除表:DROP TABLE 。例如:删除例如:删除S

28、tudent。DROP TABLE Student分析上述方法建立的数据库及其表,其结构和内容是什么?分析上述方法建立的数据库及其表,其结构和内容是什么?292.2 数据库的备份、还原和维护备份和维护:对于已经建立的数据库,通常需要进行备份和维护。备份数据库:一旦数据库损坏,则可以使用备份数据库恢复。维护数据库:定期自动检查数据库的完整性、重新组织索引、更新统计信息和备份数据库等,确保数据库中数据的完整性和正确性,使数据库始终处于最佳运行状态。302.2.1 数据库的备份与还原数据库的备份与还原数据库的备份与还原是指在数据库没有脱离SQL Server环境的状态下,直接对数据库备份和还原。31

29、1. 备份数据库备份数据库在图2-1中,展开数据库,在需要备份的数据库上右击,然后选择“任务(T)”“备份(B),在图2-7中,选择需要备份的数据库、备份方式、备份时间、备份的目标磁盘设备和备份的目标文件,然后单击“确定”完成备份。备份StudentDB的选项与设置如图2-7 所示。备份DB可以在查询分析器中,使用BACKUP DATABASE完成。即:BACKUP DATABASE StudentDB TO DISK=C:StudentDBBackup1.bak,DISK=D:StudentDBbackup2.bak322. 还原数据库还原数据库在图2-1中,展开数据库,在需要还原的数据库上

30、右击,然后选择“任务(T)”“还原(R)“数据库(D),在还原数据库窗口(类似图2-7)中,选择需要还原的目标数据库、目标时间点,还原的源设备和源备份文件,然后单击还原“选项”,并勾选“覆盖现有数据库”,最后单击“确定”完成还原。还原DB可以在查询分析器中,使用RESTORE DATABASE,即:RESTORE DATABASE StudentDB FROM DISK=C:StudentDBBackup1.bak WITH REPLACE332.2.2 数据库的分离与附加数据库的分离与附加数据库的分离与附加:首先把数据库从SQL Server环境中分离出来,然后再复制数据库。需要使用时,再利

31、用附件功能把数据库。1. 分离数据库在图2-1中,展开数据库,在需要分离的数据库上右击,然后选择“任务(T)”“分离(D),在分离数据库窗口中,选择相应的分离选项,然后单击“确定”完成分离。对于分离的数据库,可以进行复制操作;在需要使用时,可以使用数据库的附加功能,再把复制的数据库添加到SQL Server环境中。思考:没有分离的数据库,可以进行复制操作吗?为什么?分析分离数据库与备份数据库的区别和优缺点。2. 附加数据库在图2-1中,右击“数据库”,然后选择“附加(A)”,在附加数据库窗口中,选择需要附加的数据库,然后单击“确定”完成附加。342.2.3 数据库的维护数据库的维护必要性:DB

32、在使用过程中,通常会发生违约操作或者故障,为了确保DB的完整性和一致性等,需要定期对DB进行指定的维护工作维护数据库:可以通过维护计划实现。可以使用维护计划向导很方便的创建维护计划。即:在图2-1中,展开“管理”,右击“维护计划”(如图2-9),选择“维护计划向导(W)”单击“下一步”,在选择目标服务器窗口中,输入计划名称、选择服务器和登录方式后单击“下一步”。在图2-8中,勾选需要执行的维护任务,单击“下一步”,然后按照向导选择需要维护的数据库,并进行相应的设置,最后单击“完成(F)”完成维护计划。维护计划,也可以通过右击“维护计划”(如图2-9),选择“新建维护计划(N)”实现。352.3

33、 操作数据操作数据在DB中,对表添加记录、修改记录、查询记录和删除记录等操作。对象资源管理器对象资源管理器查询分析器实现查询分析器实现362.3.1 利用对象资源管理器操作数据利用对象资源管理器操作数据在SSMS中,依次展开数据库和相应的数据表,在需要编辑的数据表上右击(如图2-9所示),然后选择“打开表(O)”,在右侧编辑区就会使用表编辑器打开表,以便实现对表内数据的编辑操作:(1)修改表记录:在表设计器中,对表内的记录数据进行修改。(2)添加新记录:在表设计器中,当编辑最后一个记录时,会在其下方自动添加新记录行,然后编辑新行添加新记录及其数据。(3)删除表记录:右击要删除的记录行,然后选择

34、“删除” ,在确认对话窗口中选择“是(Y)”进行删除,或者“否(N)”取消删除注意:在编辑数据表时,如果数据出现违约,则DBMS将会启动违约机制进行检查,并自动作相应的处理,或者输出提示信息。372.3.2 利用查询分析器操作数据利用查询分析器操作数据在查询分析器中输入如下语句,可以实现数据的添加、修改、查询和删除。38(1)添加记录)添加记录INSERT INTO (, ) VALUES ( , )例如:例如:向表向表Student中添加新学生记录如下:中添加新学生记录如下:学号:学号:2008010109;姓名:武松;性别:男;年龄:;姓名:武松;性别:男;年龄:20;学院:信息学院;学院

35、:信息学院INSERT INTO Student VALUES (2008010109,武松武松,男男,20,信息学院信息学院)例如:向表例如:向表StudentCourse中添加新学生记录如下:中添加新学生记录如下:学号:学号:2008010109;课程号:;课程号:020101INSERT INTO StudentCourse(Sno,Cno) VALUES (2008010109 ,020101)提示:添加查询结果(多个元组)可以使用:提示:添加查询结果(多个元组)可以使用:INSERT INTO (, ) SELECT 语句语句39(2)修改表记录)修改表记录UPDATE SET =,

36、=, WHERE 例如:在表例如:在表Student中,把学号为中,把学号为2008010101的姓名改为王五。的姓名改为王五。 UPDATE Student SET SName= 王五王五 WHERE SNo=2008010101例如:在表例如:在表Student中,将所有学生的年龄增加中,将所有学生的年龄增加1岁。岁。 UPDATE Student SET SAge= SAge +140(3)查询表记录)查询表记录SELECT *| , FROM WHERE 例如:查询表例如:查询表Student中学号为中学号为2008010101的学生姓名和年龄。的学生姓名和年龄。 SELECT SNa

37、me, Sage FROM Student WHERE SNo=2008010101例如:查询表例如:查询表StudentCourse的所有选课记录的所有选课记录 SELECT * FROM StudentCourse41(4)删除表记录)删除表记录DELETE FROM WHERE 例如:在表例如:在表Student中,删除学号为中,删除学号为2008010101的学生。的学生。DELETE FROM Student WHERE SNo=2008010101例如:在表例如:在表StudentCourse中,删除所有选课。中,删除所有选课。DELETE FROM StudentCourse提示

38、:建立数据库和表的提示:建立数据库和表的SQL Server完整代码,请参阅完整代码,请参阅VcSqlStudentDB.sql。422.4 构建视图构建视图对数据库对数据库StudentDB,如果需要查看学生的学号、姓名、性别、课程,如果需要查看学生的学号、姓名、性别、课程名、成绩和学院等信息,应该怎样实现?名、成绩和学院等信息,应该怎样实现?分析:分析:需要查看的数据分布在需要查看的数据分布在3个表中,因此需要利用个表中,因此需要利用3个表,并根据个表,并根据查询的数据创建一个由查询的数据创建一个由3个表到查询的一个视图,通过视图实现查询到个表到查询的一个视图,通过视图实现查询到3个表的映

39、射。个表的映射。视图是视图是利用查询语句定义利用查询语句定义的,从一个或者多个表(即:基本表)中导的,从一个或者多个表(即:基本表)中导出的出的虚表虚表。只存放只存放带有查询语句的带有查询语句的视图的定义视图的定义,不存放不存放视图对应的视图对应的数数据据;只有执行视图时,才从表中取出其相应的数据,因此视图的数据;只有执行视图时,才从表中取出其相应的数据,因此视图的数据仍存放在基本表中(或由基本表的数据导出),而且随着基本表的变仍存放在基本表中(或由基本表的数据导出),而且随着基本表的变化而变化。即:视图是数据库整体逻辑结构中化而变化。即:视图是数据库整体逻辑结构中局部数据局部数据的的临时体现

40、临时体现。方法:方法:对象资源管理器对象资源管理器查询分析器查询分析器432.4.1 利用利用对象资源管理器对象资源管理器创建视图创建视图(1)添加创建视图需要的表。(2)建立表与表之间的关联关系。系统会自动建立;可以编辑。(3)选择视图需要的数据项。(4)保存视图。具体方法:(1)添加表。在SSMS中,展开“数据库”,再展开需要创建视图的数据库,右击“视图”(如图2-10所示),然后选择“新建视图(N)”,在弹出的添加表对话窗口(图2-10左下角)中,添加创建视图需要的表,然后单击“关闭”,这时在右侧编辑区上面第1区中会出现添加的表,并且自动建立了关联关系(可以对关联关系进行编辑)。思考:分

41、析S、C和StudentCourse中SNo和CNo冗余的必要性。(2)选择数据项。在右侧编辑区第2区中“列”的下方选择需要的数据项。这时在第1区系统会自动同步勾选相应的数据项,同时在第3区系统会自动给出创建视图的语句。(3)单击工具栏的运行按钮“!”,在下方第4区显示运行结果,运行正确后,保存视图。44452.4.2 利用利用查询分析器查询分析器创建视图创建视图格式:CREATE VIEW AS SELECT 语句例如:利用数据库StudentDB,创建包含学号、姓名、课程名、成绩、性别和学院等信息的视图StuGrade。CREATE VIEW StuGrade AS SELECT Stud

42、ent.SNo, SName, CName, Grade, SSex, Coll FROM Student, Course, StudentCourse WHERE Student.Sno=StudentCourse.SNo AND Course.CNo=StudentCourse.CNo分析:视图本质上是一个查询,即把经常用到的查询定义成一个视图,也就是说视图实际上是一个虚表。在SQL Server2005中,视图和表是同等对待的,因此可以使用SELECT语句对视图进行查询。例如:查询视图StuGrade的所有信息。SELECT * FROM StuGrade思考:分析视图与表之间的关系。4

43、62.5 安全安全在利用DBMS进行高效数据库管理的同时,还需要防止非法使用所造成的数据更改、破坏或者泄露,从而确保数据库的安全。SQL Server 2005作为专业的世界级DBMS产品,完全支持DAC和MAC控制机制,并提供了一整套完善的数据库系统安全控制机制。472.5.1 创建创建Windows登录和登录和SQL Server2005登录登录登录SQL Server 2005的用户首先必须是Windows的合法登录用户或者SQL Server2005的合法登录用户。(1)创建Windows的登录用户我的电脑的控制面板中的“用户帐户”,可以创建Win的登录用户。例如:给Windows创建

44、两个合法登录用户HappyMary和HappyTom。(2)创建SQL Server2005的登录用户。在对象资源管理器中,展开“安全性”,右击“登录名”,选择“新建登录名(N)”(如图2-11所示(右下角)。在图2-11中,利用“常规”、“服务器角色”和“用户映射”等创建用户并设置属性。即:48492.5.1 创建创建Windows登录和登录和SQL Server2005登录登录1)常规:常规:搜索(可以把搜索(可以把Win登录用户映射成为登录用户映射成为SQL Server2005的登录用的登录用户)或输入登录名、登录身份类型、登录密码、选择默认户)或输入登录名、登录身份类型、登录密码、选

45、择默认DB等。等。提示:不要使用提示:不要使用“强制密码过期强制密码过期”,否则不能创建新用户。,否则不能创建新用户。2)服务器角色服务器角色:勾选授权的服务器角色。:勾选授权的服务器角色。3)用户映射用户映射:映射并授权数据库及其角色成员身份。:映射并授权数据库及其角色成员身份。使用查询分析器创建使用查询分析器创建SQL Server2005登录用户的方法如下:登录用户的方法如下:CREATE LOGIN WITH PASSWORD =密码密码例如:给例如:给SQL Server2005创建两个合法的登录用户创建两个合法的登录用户HappyJone和和HappySmith。CREATE LO

46、GIN HappyJone WITH PASSWORD= 666CREATE LOGIN HappySmith WITH PASSWORD= 666(3)重命名或者删除重命名或者删除SQL Server2005的登录用户的登录用户在在SSMS的对象资源管理器中,依次展开的对象资源管理器中,依次展开“安全性安全性”“登录名登录名”,右击需,右击需要重命名或者删除的用户,然后选择要重命名或者删除的用户,然后选择“重命名(重命名(M)”或者或者“删除(删除(D)”。或者使用或者使用DROP LOGIN语句。语句。502.5.2 创建数据库用户与角色创建数据库用户与角色如果登录SQL Server 2

47、005之后,需要继续访问系统中的数据库,还必须是一个数据库用户。数据库用户可以从现有的Windows登录用户或者SQL Server2005登录用户中映射过来。51(1)使用对象资源管理器创建)使用对象资源管理器创建数据库用户数据库用户与角色与角色在SSMS的对象资源管理器中,展开“数据库”,然后选择并展开指定的数据库(例如:StudentDB),右击“安全性”,选择“新建(N)”“用户(U)”(如图2-11(右下角)。在“数据库用户-新建”窗口(参考图2-11)中,利用“常规”输入数据库用户名,并选择或者输入相应的登陆名(Windows或者SQL Server 2005),然后设置相应的属性

48、。如果选择“新建(N)”“数据库角色(U)”,则可以按照同样的方法创建数据库角色。52(2)使用查询分析器创建)使用查询分析器创建数据库用户数据库用户与角色与角色CREATE USER FOR LOGIN 其中:必须是Win或SQLServer2005的合法登录名。例如:在SQL Server 2005中,给数据库StudentDB创建一个数据库用户HappyTomer,其登录身份是Windows的合法登录HappyTom;同时创建一个数据库用户HappyJone,其登录身份是SQL Server 2005的合法登录HappyJone。即:CREATE USER HappyTomer FOR

49、LOGIN ZJGSU-HAPPYYOUHappyTomCREATE USER HappyJone FOR LOGIN HappyJone 提示:如果要想成功运行第一个语句,请先创建一个名为HappyTom的Windows登录用户,并修改服务器名称ZJGSU-HAPPYYOU,而且附加数据库StudentDB.MDF。运行第二个语句,请先创建一个名为HappyJone的SQL Server 2005登录用户。53(2)使用查询分析器创建数据库用户与)使用查询分析器创建数据库用户与角色角色如果需要创建数据库角色可以使用如果需要创建数据库角色可以使用CREATE ROLE语句。即:语句。即:CRE

50、ATE ROLE AUTHORIZATION 其中其中是是DB用户或用户或DB拥有者(拥有者(DB Owner)例如:在例如:在SQL Server 2005中,给数据库中,给数据库StudentDB创建一个数据创建一个数据库角色库角色Tom,其数据库用户是,其数据库用户是HappyTomer;同时创建一个数据库;同时创建一个数据库角色角色Jone,其数据库用户是数据库,其数据库用户是数据库StudentDB的拥有者的拥有者DBO。即:。即:USE StudentDB CREATE ROLE Tom AUTHORIZATION HappyTomerCREATE ROLE Jone54(3)删除

51、删除SQL Server2005的数据库用户与角色的数据库用户与角色在对象资源管理器中,依次展开“安全性”“登录名”,右击需要删除的用户或者角色,然后选“删除(D)”。或DROP ROLE语句。修改数据库用户和角色可以分别使用ALTER USER语句和ALTER ROLE语句。用法与CREATE USER和CREATE ROLE雷同。例如:在SQL Server 2005中,删除数据库用户HappyTomer和HappyJone。USE StudentTestDBDROP USER HappyTomerDROP USER HappyJone552.5.3 SQL Server 2005的权限控

52、制的权限控制在SQL Server 2005中,只有授权用户才能执行语句或者对保护对象进行操作。否则将拒绝执行Transact-SQL语句或者拒绝对数据库对象进行操作。用户权限可以在创建用户时直接授权,也可以使用SQL Server2005支持的语句GRANT、DENY和REVOKE进行授权、阻权和收权等。56(1)授权)授权GRANTGRANT用来把权限赋予SQL Server 2005的保护对象。即:GRANT ON TO WITH GRANT OPTION其中:是指SELEC、INSERT、UPDATE、DELETE、ALTER和ALL等权限。是指数据库、表(或者数据项)和PUBLIC等

53、。WITH GRANT OPTION是指可以把获取的授权继续授予其他用户。例如:把CREATE TABLE授权给用户HappyTomer和HappyJone。GRANT CREATE TABLE TO HappyTomer, HappyJone提示:含有CREATE权限的GRANT语句没有包含ON选项。例如:把所有权限授权给用户HappyTomer(该用法已不推荐使用)。GRANT ALL TO HappyTomer例如:把对表Student的读取权限授权给角色Tom。GRANT SELECT ON Student TO Tom57(1)授权)授权GRANT例如:把对表Student的数据项S

54、Name、SSex、Sage的修改权限授权给用户HappyJone。GRANT UPDATE ON Student (SName, SSex, Sage) TO HappyJone例如:把对Course的只读权限授权给HappyJone,HappyJone再把该权限授权给角色Tom。GRANT SELECT ON Course TO HappyJone WITH GRANT OPTION -使用用户HappyJone重新登陆SQL Server 2005GRANT SELECT ON Course TO Tom例如:把对数据库StudentDB的所有定义的权限授权给用户HappyTomer。G

55、RANT CONTROL ON DATABASE:StudentDB TO HappyTomer58(2)阻权)阻权DENY与收权与收权REVOKE(2)阻权)阻权DENYDENY可以阻止用户权限。即:可以阻止用户使用现有的某些权限,用法同GRANT。例如:把表Student的读取权限授权给所有用户,然后阻止用户HappyTomer的读取权限。GRANT SELECT ON Student TO PUBLIC DENY SELECT ON Student TO HappyTomer(3)收权REVOKEREVOKE删除一个或多个已经赋予的权限。用法与GRANT雷同。REVOKE ON FROM

56、 例如:收回用户HappyTomer对表Student的数据项SName、SSex、Sage的修改权限。REVOKE UPDATE ON Student(SName,SSex,SAge) FROM HappyTomer592.6 小结小结本章详细介绍了利用SQL Server创建、编辑和备份数据库及其表、构建视图和进行安全控制的方法。主要知识要点如下:(1)如何利用对象资源管理器创建和编辑数据库及其表。(2)如何利用查询分析器创建和编辑数据库及其表。(3)数据库的备份与还原。(4)数据库的分离与附加。(5)分别利用对象资源管理器和查询分析器构建视图。(6)如何创建Windows登录和SQL Server2005登录。(7)如何创建数据库用户与角色。(8)如何利用SQL Server 2005进行权限控制。60习习 题题课堂:111课外:12 1361 刚才的发言,如刚才的发言,如有不当之处请多指有不当之处请多指正。谢谢大家!正。谢谢大家!62

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号