数据库系统的原理学生实验报告

上传人:feng****ing 文档编号:65073772 上传时间:2022-03-22 格式:DOC 页数:38 大小:469KB
返回 下载 相关 举报
数据库系统的原理学生实验报告_第1页
第1页 / 共38页
数据库系统的原理学生实验报告_第2页
第2页 / 共38页
数据库系统的原理学生实验报告_第3页
第3页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
学生实验报告(理工类)实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用 A4 的纸张。实验报告书写说明实验报告中一至四项内容为必填项, 包括实验目的和要求; 实验仪器和设 备;实验内容与过程; 实验结果与分析。 各院部可根据学科特点和实验具体要 求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分 论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批 改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然 班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称: 熟悉SQL Server2005环境及数据库文件管理 实验学时:2同组学生姓名: 实验地点:1316实验日期:2016324实验成绩: 批改教师: 王预批改时间:2016327一、实验目的和要求1、 熟悉SQLServer 2005工作环境、了解 SQLServer 2005主要管理工具的用途、掌握登录SQLServer2005的方法;2、熟悉数据库的组成;3、了解数据库快照的使用方法;4、掌握创建、修改、删除数据库的方法;5、熟悉如何查看数据库状态;6、掌握分离数据库和附加数据库的方法。二、实验设备、环境设备:奔腾W或奔腾W以上计算机;环境: WINDOWS 2000 SERVER WINDOWS 2003 SERVERSQL Server2005 中文版。三、实验步骤1、根据题目要求熟悉 SQL Server2005的各种管理工具;2、分析题意,重点分析题目要求并给出解决方法;3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;4、提交完成的实验结果。四、实验内容一、熟悉SQL Server 2005 管理工具SQL Server2005系统提供了大量的管理工具,通过这些管理工具可以对系统实现快速、高效管理。 主要管理工具如下:1、SQL Server Management Studio(1 )对象资源管理器允许查看和连接到 SQL Server、分析器、集成服务器、报表服务器和SQL Mobile。一旦连接到特定的服务,可以在对象节点中查看它的组件,并且可以访问子节点对象。(2 )已注册的服务器显示当前已注册的服务器。窗格顶部的列表,包括SQL Server、分析服务器、集成服务器、报表服务器和SQL Mobile。允许用户在特定的服务器之间快速转换。(3)模板资源管理器 提供对查询编辑器的模板和任何用户所创建的自定义模板的快速访问。模板可以通过 SQL Server Management Studio 所支持的任何脚本语言来创建。(4)解决方案管理器提供对现存的 SQL Server 、分析服务器和 SQL Mobile 的项目的快速访问。当项目被执行时,项目 会给出连接、查询和执行的其他函数的详细信息。2、SQL Server Business Intelligence Development Studio(商业智能)SQL Server Business Intelligence Development Studio 为开发人员提供的一种新的项目开发和 管理工具。开发人员可以使用 SQL Server Business Intelligence Development Studio 设计端到端的 商业智能解决方案。3、SQL Server ConfigurationSQL Server Configuration (配置管理器)包含了 SQL Server2005 服务、 SQL Server2005 网络配 置和 SQL Native Client 配置 3个工具,提供数据库管理人员做服务启动与停止与监控、服务器端支持 的网络协议,用户用来访问SQL Server 的网络相关设置等工作。4、SQL Server 外围应用配置SQLServer 外围应用配置器是 SQLServer2005 的新增功能,该工具是用来减少SQL Server 的服务数和组件数的一种方法,以帮助保护 SQL Server 避免出现安全缺口。5、Database Engine Tuning Advisor(数据库引擎的优化顾问)工具可以完成帮助用户分析工作负荷、提出创建高效索引的建议等功能。6、SQL Server 联机丛书:主要为用户提供帮助。7、sqlcmd :提供了在命令提示符中输入Transact-SQL 语句、系统过程和脚本文件的功能。二、熟悉数据库的组成1、系统数据库(1)master 数据库master 数据库存储 SQL Server2005 系统的所有系统级信息。包括实例范围的元数据、端点、链接 服务器和系统配置设置。(2)model 数据库Model 数据库用作 SQLServer2005 实例上创建的所有数据库的模板。在 SQLServer2005 中在三个方 面做了重大改变,包括:扩大了最小值取之范围、兼容级别设置为90和PAGE_VERIF澈据库选项设置为 CHECKSUM(3)msdb数据库Msdb 数据库主要被 SQLServer2005 代理用于进行复制、作业调度以及管理警报等活动,该数据库通 常用于调度任务或排除故障。( 4) tempdb 数据库tempdb 数据库是连接到 SQLServer2005 所有用户都可能用的全局资源, 它保存所有临时表和临时存 储过程。另外,它还用来满足所有的其他存储要求,例如,存储 SQLServer 2005 工作表。每次启动 SQL Server2005 时都会重新创建 tempdb 数据库,以便系统启动时,给数据库总是空的。断开连接时会自动 删除临时表和存储过程,并在系统关闭后没有活动的连接。(5)resource 数据库resource 数据库是一个只读数据库,它包含了 SQL Server2005 中的所有系统对象。 SQL Server 系 统对象在物理上持续存在于 Resource 数据库中, 但逻辑上, 他们出现在数据库的 sys 架构上。 resource 数据库的物理文件名为 Mssqlsystemresource.mdf 。任意移动或重命名 resource 数据库文件, SQL Server2005 将不能正常启动。三、数据库存储文件SQL Server2005 数据库中有三种类型的文件来存储信息。1、主数据文件 主数据文件包话数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在该文件 中,也可以存储在辅助数据文件中。每个数据库只能有一个主数据文件。其扩展名为 .mdf 。2、辅助数据文件 辅助数据文件是可选的。由用户定义并存储用户数据。每个数据库可以有多个辅助数据文件,其扩 展名为 .ndf 。3、事务日志文件 事务日志文件是用于保存恢复数据库的日志信息的。每个数据库必须至少有一个日志文件,其扩展 名为 .ldf 。4、文件组 文件组是将多个数据文件集合起来形成一个整体。每个文件组有一个组名。文件组分为主文件组和 次文件组。一个文件只能存放在一个文件组中,一个文件组也只能为一个数据库使用。主文件组包含了 所有的系统表。当建立数据库时,主文件组包含数据库文件和未指定组的其他文件。事务日志文件不包 含在任何文件组中。四、创建数据库1、使用向导创建数据库2、语句方式创建数据库(1)最简单的语句创建数据库 Create database databaseName(2)一般创建数据库的格式 CREATE DATABASE database_nameON ,.n, ,.nLOG ON ,.n COLLATE collation_nameFOR LOAD | FOR ATTACH :=PRIMARY ( NAME = logical_file_name ,FILENAME = os_file_name, SIZE = size, MAXSIZE = max_size | UNLIMITED , FILEGROWTH = growth_increment ) ,.n :=FILEGROUP filegroup_name ,.n(3) 示例CREATE DATABASE SalesON( NAME = Sales_dat,FILENAME = c:program filesmicrosoft sql servermssqldatasaledat.mdf,SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 )LOG ON ( NAME = Sales_log,FILENAME = c:program filesmicrosoft sql servermssqldatasalelog.ldf,SIZE = 5MB,MAXSIZE = 25MB,FILEGROWTH = 5MB )3、请按照要求用工具和SQL语句两种方法创建名为 MyDB数据库。五、维护数据库1、修改数据库名称(1)使用 ALTER DATABAS语句ALTER DATABASE databaseName MODIFY NAME=newdatabaseName2)使用存储过程EXEC sp_dboptiondatabaseName, SINGLE,True /*首先将数据库设置为单用户模式 */EXEC sp_renamedbdatabaseName , newdatabaseName /* 修改数据库名 */EXEC sp_dboptionnewdatabaseName, SINGL E ,False /* 取消单用户模式 */3)从资源管理器窗口修改数据库名2、修改数据库大小( 1 )设置数据库文件为自动增长方式( 2)直接修改数据库文件的大小( 3)增加辅助数据库文件( 4 )示例CREATE DATABASE Test1 ON(NAME = Test1dat1,FILENAME = c:Program FilesMicrosoft SQL ServerMSSQLDatat1dat1.ndf,SIZE = 5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB )GOALTER DATABASE Test1ADD FILE (NAME = Test1dat2,FILENAME = c:Program FilesMicrosoft SQL ServerMSSQLDatat1dat2.ndf,SIZE = 5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB )(5)请参照示例用 SQL语句为MyDB数据库增加辅助数据库文件MyDB2其大小为3MB最大为10MB按照 10%增长。3、收缩数据库( 1 )设置数据库为自动收缩( 2)手动收缩数据库(3)使用 DBCC SHRINKDATABASE令收缩数据库 该命令是一种比自动收缩数据库更加灵活的收缩数据库方式。可以对整个数据库进行收缩。示例: DBCC SHRINKDATABASE (UserDB, 10)/*该命令将UserDB用户数据库中的文件减小 ,以使UserDB中的文件有10%的可用空间。*/(4 )请使用该命令将 MyDB数据库收缩到有10%的可用空间。4、删除数据库( 1 )使用管理工具(2) 使用T-SQL语句DROP DATABASE database_name ,.n5、分离数据库分离数据库是指数据库从 SQL Server 实例上删除,但是数据文件、但事务日志文件仍然保持不变。 注意:分离数据库如果出现下列情况之一,则不允许分离:*已复制并发数据库、 * 数据库中存在数据库快照、 * 数据库处于未知状态。( 1 )使用语句分离数据库示例: exec sp_detach_db MyDB( 2)可以使用工具6、附加数据库附加数据库时,所有的数据文件( .mdf 文件和 .ndf 文件)都必须是可用的。如果任何数据文件的 路径和创建时或上次附加数据库时的路径不同,则必须指定文件的当前路径。在附加数据库的过程中, 如果没有日志文件,系统将创建一个新的日志文件。(1) 使用工具附加数据库(2) 使用SQL语句附加数据库示例: CREATE DATABASE SalesON ( NAME =Sales_dat ,FILENAME = c:program filesmicrosoft sql servermssqldatasaledat.mdf )LOG ON( NAME = Sales_log,FILENAME = c:program filesmicrosoft sql servermssqldatasalelog.ldf)FOR ATTACH(3) 请用上述两种方法将 MyDE数据库附加到实例中。五、问题解答及实验结果1. 创建数据库 MyDEcreate database MyDEon( name=MyDE_data,Filename=D:dataMy_data.mdf,size=3ME,fileGrowth=1mb) log on(name=MyDE_log,Filename=D:dataMyDE_log.ldf,size=1ME,filegrowth=10%)2. 重命名数据库,改为 MyDE1先刷新alter database MyDE Modify name=MyDE13. 使用存储过程修改数据库名称exec sp_dboption MyDE,SINGLE,Trueexec sp_renamedb MyDE,MyDE1exec sp_dboption MyDE1,SINGLE,False4. 增加辅助数据库 MyDE2alter database MyDE1add file(name=MyDE2,filename=D:dataMyDE2dat.ndf,size=3ME,Maxsize=10ME,FileGrowth=10%)5. 收缩数据库dbcc SHRINKDATAEASE (MyDE,10)6. 删除数据库drop database MyDE7. 附加数据库先分离数据库,并且给 data 权限create database MyDB on (name=MyDB_dat,filename=D:dataMy_data.mdf) log on(name=MyDB_log,filename=D:dataMyDB_log.ldf)for ATTACH;六、实验体会和收获2 年过去了, 我又重新开始学习数据库了, 这次学的是 SqlServer2008 ,和当年的学的 MySQL5.5 差不多, 大同小异,初步学习了如何创建数据库,删除,附加,分离等一系列基础操作,为以后的学习做好了准 备。这些基础的东西很重要,以后每次实验都有可能用到,万事开头难,以后学习 SQLserver 一定会越 来越容易。实验项目名称:表和表数据的操作实验学时:_2同组学生姓名: 实验地点:1316实验日期:2016330实验成绩: 批改教师: 王预批改时间: 201644一、实验目的和要求1、了解表的类型及创建方法;2、熟悉各种数据类型;3、掌握列的各种属性;4、掌握自定义数据类型的创建方法;5、掌握用T-SQL语言和工具创建表的方法;6、掌握工具和T-SQL语言插入数据的方法。二、实验设备、环境设备:奔腾W或奔腾W以上计算机;环境: WINDOWS 2000 SERVER WINDOWS 2003 SERVERSQL Server2005 中文版。三、实验步骤1、根据题目要求熟悉 SQL Server2005的各种管理工具;2、分析题意,重点分析题目要求并给出解决方法;3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;4、提交完成的实验结果。四、实验内容一、表的概述1、表的概念在关系数据库中每一个关系都体现为一张表。表是用来存储数据和操作数据的逻辑结构,关系数据库中所有的数据都表现为表的形式。2、表的类型在SQL Server2005中,可以把表分为 4种类型,即普通表、分区表、临时表和系统表。每一种表都有其自身的作用和特点。(1)普通表:又称为标准表,就是通常所说的数据库中存储数据的标,是最常使用的表对象,是最重 要和最基本的表。(2)分区表:分区表示将数据水平划分成多个单元的表,这些单元的表可以分散到数据库中的多个文 件组里,以实现对单元中数据的并行访问。其优点在于可以方便地管理大型表,提高对这些表中数据的 使用效率。(3)临时表:临时表是临时创建的、不能永久生存的表。又可以分为本地临时表和全局临时表。本地 临时表以 #打头,它们仅对当前的用户连接时可见的,当用户从SQLServe2005 实理断开连接时被删除;全局临时表以 #打头,创建后任何用户都是可见,当所有引用该表的用户从SQL Server 2005 中断开连接时被删除。(4)系统表:系统表与普通表的区别在于,系统表存储了有关SQL Server 2005 服务器的配置、数据库设置、用户和表对象的描述等信息。二、列1、列数据类型 在设计表的时候,需要知道每列字段的数据类型。 SQLServer 2005 系统提供了 28 种数据类型,主 要分为七大类。(1)精确数字类型;位数据类型 bit; 货币数据类型: Money、Smallmoney这些数据类型的数据可以参加各种数学运算,所有的数值都是有精度的,精度是指有效数字位数。 如整数数据类型: binint 、int 、smalling 、tinyint 等。2)近似数字类型在现实计算中,还有一些数据没有精确数值,如定义精确到哪一位,这种类型就是近似数据类型。如:(3)字符数据类型1/3 ,它无法用精确数字类型表示,需要由系统来Decimal 和 Numeric ; Float 和 Real 等。它是用来存储各种字母、数字符号和特殊符号。在使用该数据类型时,需要用用单引号或双引号括 起来。 SQL Server 2005 主要提供了 Char、 Varchar 、Text3 中数据类型。(4) Unicode 字符数据类型Unicode 是一种在计算机上使用的字符编码。它为每一种语言中的每个字符设定了统一并且唯一的 二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。SQL Server 2005 主要有: Nchar 、Nvarchar 、 Ntext 三种。(5)二进制数据类型 二进制数据类型可以用来存储二进制的数据。主要有:Binary 、 Varbinary 、 Image 三种类型。(6)日期和时间数据类型在 SQLServer2005 中,日期和时间类型主要包括: datetime 和 smalldatetime 两种。两者区别在 于其表示的日期和时间的范围不同,时间的精确度也不同。(7)其他数据类型SQLServer2005 系统还提供了 Cursor 、 Sql_varant 、 Table 、 Timestamp 、 Uniqueidentifie 、XML6 种特殊用途的数据类型。2、列的其他属性(1) NULL和 NOT NULL定义属性列时可以规定该列是否可以为空。(2) 默认值当某个属性的值大部分的取值都是相同时,可以使用默认值来减少插入数据时的时间。(3) IDENTITY使用IDENTITY关键字定义的字段为标识字段,标识字段是唯一标识每条记录的特殊字段,当一条 新记录添加时,这个字段就被自动赋予一个新值。默认情况下是+1递增。三、创建表1、使用 SQL Server Management Studio 工具在 MyDB数据库中创建 Student 和 Class 表。 Student表的结构为:字段名类型中文名备注SNOChar(8)学号主键SNameVarchar(10)姓名SexChar(2)性别男、女ClsNOChar(6)班级班级的编号,参照表 ClassStuAddrVarchar(20)住址描述性说明BirthdaySmallDate出生年月HeightNumeric(4,2)身高以米为单位表示学生的身高。TotalCreditTi nyi nt总学分Class表的结构为:字段名类型中文名备注ClsNOChar(6)班号主键ClsNameVarchar(16)班名对班级的描述信息DirectorVarchar(10)辅导员班级的辅导员SpecialtyVarchar(30)专业2、使用T-SQL语言在MyDB数据库中创建再 Course和Grade表,为以后的实验做准备。Course表的结构为:字段名类型中文名备注CNOChar(4)】田千口 i=r. 课程号主键CNameVarchar(16)课程名课程的名称PCNOchar(4)先修课程先修课程的课程号CreditTi nyi nt学分Grade表的结构为:字段名类型中文名备注SNOChar(8)学号学号,参照 Student,与CNO1成主键CNOChar(4)】田千口 i=r. 课程号课程号,参照 CourseScorceNumeric (4,1)成绩CreditTi nyi nt学分四、自定义数据类型(1) 使用 SQL Server Management Studio工具创建用户自定义数据类型:studentNo , char(8)(2) 系统存储过程sp_addtype创建用户自定义数据类型:courseNo , char(4)(3) 修改MyDB数据库中的各表,学号和课程号应用自定义的数据类型。五、修改表结构(1) 使用Alter修改Student表结构,使其增加一列 Department (系别)Char(12)。(2) 使用 SQL Server Management Studio工具删除刚刚增加的Department。六、插入数据使用SQL Server Management Studio工具或insert into语句,分别向下列表格插入数据。(1)向表(Student )中插入数据SNOSNameSexClsNOStuAddrBirthdayHeightTotalCredit19920101王军男CS01下关40#1.761019920102李杰男CS01江边路96#1.72919920306王彤女MT04中央路94#1.65919940106吴杪女PH08莲化小区74#1.604插入数据之后使用命令:Select * from Stude nt;检查插入数据的正确性(2)向表(Class )中插入数据ClsNOClsNameDirectorSpecialtyCS01计算机一班王宁计算机应用MT04数学四班陈晨数学PH08物理八班葛格物理插入数据之后使用命令:Select * from Class;检查插入数据的正确性(3)向表(Course )中插入数据CNOCNamePCNOCredit0001数学Null60003计算机基础000130007物理00014插入数据之后使用命令:Select * from Course;检查插入数据的正确性(4)向表(Grade )中插入数据SNOCNOScoreCredit199201010001906199201010007864199201020001876199201020003763199203060001876199203060003933199401060007854插入数据之后使用命令:Select * from Grade;检查插入数据的正确性七、删除表中的数据(1) 使用 SQL Server Management Studio 工具删除课程号为 0001 的选课记录。( 2)使用 T-SQL 语言删除 Grade 表中学号为 19920101 的数据八、删除表格( 1)使用 SQLSQL Server Management Studio 工具删除 Class 表。( 2)使用 Drop Table 命令删除 Grade 表。 *注意在删除之前,请将数据文件拷贝一个副本,已备以后实验使用。五、问题解答及实验结果1. 创建 student 表USE MyDBCREATE TABLE dbo.Student(SNO char(8) COLLATE Chinese_PRC_CI_AS NOT NULL primary key,SName varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL,Sex char(2) COLLATE Chinese_PRC_CI_AS NOT NULL,ClsNO char(6) COLLATE Chinese_PRC_CI_AS NOT NULL,StuAddr varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,Brithday datetime NOT NULL,Height numeric(4, 2) NOT NULL,TotalCredit tinyint NOT NULL,)2. 新建 Class 表USE MyDBCREATE TABLE Class (ClsNO char(6) COLLATE Chinese_PRC_CI_AS NOT NULL PRIMARY KEY ,ClsName varchar(16) COLLATE Chinese_PRC_CI_AS NOT NULL,Director varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL,Speicalty varchar(30) COLLATE Chinese_PRC_CI_AS NOT NULL,)3. 创建 course 表use MyDBcreate table Course(CNO char(4)Not NULL,CName varchar(16)NOT NULL,PCNO char(4),Credit Tinyint,Primary KEY(CNO)4. 创建 Grade 表use MyDBcreate table Grade(SNO char(8)Not NULL,CNO char(4)NOT NULL,Scorce Numeric(4,1),Credit Tinyint,Primary KEY(SNO,CNO)5. 插入记录 , 分别插入 Class , Student , Grade, Course 表 insert into Class values(CS01,计算机一班 , 王宁 , 计算机应用 )insert into Class values(MT04,数学四班 , 陈晨 , 数学 )insert into Class values(PH08,物理八班 , 葛格 , 物理 )insert into Student values(19920101,王军,男,CS01, 下关 #,1976.12.21,1.76,10)insert into Student values(19920102,李杰,男,CS01, 江边路 #,1974.5.24,1.72,9)insert into Student values(19920306,王彤,女,MT04,中央路 #,1977.3.18,1.65,9)insert into Student values(19940106,吴杪,女,PH08,莲化小区 #,1979.4.8,1.60,4)insert into Course values(0001,数学,6)insert into Course values(0003,计算机基础 ,3)insert into Course values(0007,物理 ,4)insert into Grade values(19920101,0001,90,6) insert into Grade values(19920101,0007,86,4) insert into Grade values(19920102,0001,87,6) insert into Grade values(19920102,0003,76,3) insert into Grade values(19920306,0001,87,6) insert into Grade values(19920306,0003,93,3) insert into Grade values(19940106,0007,85,4)6. 添加类型 use MyDBexec sp_addtype studentNO,char(8),NOT NULL; exec sp_addtype courseNO,char(4),NOT NULL;7. 修改类型 use MyDBalter table Student ADD Department char(12);8. 删除数据 19920101delete from grade where SNO=199201019. 删除数据库drop table Grade六、实验体会和收获今天我学会了如何创建数据表,如何删除数据表,往数据表里插入数据,增删改查都是数据库的主要功 能,因上课听的比较认真,所以这些还都会,基本没有遇到什么问题。这些命令在以后做网站的时候也 会经常用到,我认为,增删查才是数据库的核心。这次的学习内容是关键,这块东西学好了,之后的才 能用的得心应手。实验项目名称:关系、索引和视图实验学时:2同组学生姓名: 实验地点:1316实验日期: 201648实验成绩:批改教师:王预批改时间:2016410一、实验目的和要求1、理解关系图的含义及用途,掌握关系图的创建方法;2、理解视图的基本概念、种类及利用视图修改数据时的限制,掌握视图的创建方法;3、理解索引的基本概念及其优缺点,掌握创建索引的方法。二、实验设备、环境设备:奔腾W或奔腾W以上计算机;环境: WINDOWS 2000 SERVER WINDOWS 2003 SERVERSQL Server 2005 中文版。三、实验步骤1、根据题目要求熟悉 SQL Server2005的各种管理工具;2、分析题意,重点分析题目要求并给出解决方法;3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;4、提交完成的实验结果。四、实验内容1、创建关系图根据实际情况,为 MyDB数据库创建关系图。其中包括:Student、Course、Grade、Class四张表格,选择表中相应的属性建立表间的关联。2、视图的创建、查询、修改和删除。(1) 创建一个名为 V_Student的视图,以显示学生的学号、姓名、性别和出生年月等基本信息。(2) 创建一个名为 V_grade的视图,以显示选修“ 0001 ”号课程的学生成绩信息,如学号、姓名、课程名称、成绩和学分等。(3) 分别利用视图 V_Student和V_grade作查询和更新操作。(4) 修改V_Student视图的定义,为其增加一个条件,使得该视图只显示“CS01班学生的基本信息。(5)删除名为 V_Student的视图。3、索引的创建、查看和删除。(1 )为Student表创建一个基于总学分和学号的索引idex_total_xh,其中总学分按降序排列,当总学分相同时,按学号升序排列,填充因子为80%(2) 学生表创建一个基于班级和姓名的索引idex_clas_name,其中按班号按升序、学生姓名按降序排 列,填充因子为 70%(3)利用索引管理器查看索引。(4 )删除索引idex_total_xh。再利用索引管理器查看索引。注:以上3题除了第一题,其余各题均需要使用工具和SQL语言两种方法来完成。并将SQL语句按题号保存在自己的文件夹下的实验四目录中。五、问题解答及实验结果2. 创建V_student视图create view V_student as select SNO as 学号,SName as 姓名,Sex as 性别,Brithday as 出生日期from student3. 创建V_Grade视图create view V_Grade as select Grade.SNO as 学号,SName as 姓名,CName as 课程名称,Scorce as 成绩,Grade.Credit as 学分from Student ,Course,Grade where Grade.CN0=0001 and Grade.SNO=stude nt.SNO and Grade.CNO=Course.CNO4. 分别利用视图V_Student和V_Grade做查询更新操作select * from V_stude ntgoselect *from V Grade3瞬旦朋|鶴 L站性1:l5iZ:d:-:壬至 君i liszoio?卓茅岀生曰翊1S5-1 i-2i OttOdjn.ocOl374-0?*OC:M-OOflOOimmnjitDiLiMo.oca ISTMM-OO-W-WOW戌1isSamm王军2軸ao血數宇701imb3(B705. 创建索引idex_total_xh,学分按降序排列create INDEX idex_total_xhon student(TotalCredit Desc,SNO) with(fillfactor=80)6. 学生表创建一个基于班级和姓名的索引idex_clas_name ,其中按班号按升序、填充因子为70%create INDEX idex_class_ nameon Stude nt(ClsNO,SName DESC) with (fillfactor=70)学生姓名按降序排列,7.利用索引管理器查看索引。Exec sp_help in dex Stude ntp平flS12 idtx total xhiohgI皿letcd loudtcd on PRIMARYnanclusieicd located oninij&_kes CbNO. SNbikOTatalGfdtO.SMOPKSLidfiTtr unwue. prrranycced or PF.lMR M08.删除索引idex_total_xh 。再利用索引管理器查看索引。drop in dex idex_total_xh ON stude nt drop in dex idex_class_ name ON stude nt六、实验体会和收获不知不觉,一个礼拜过去了,随着时间的推移,实验的难度也越来了,现在,我学习如何 索引,视图以及关系表的连接,虽然遇到了一点小小的问题,但还是解决了。这次的内容承上启下,关联影响到数 据库的整个结构,为以后建立一个完美的数据库做好了充分的准备。索引能方便随时查阅自己的数据表,为以后的学习做好了铺垫。实验项目名称:约束、默认和规则实验学时: 2同组学生姓名: _实验地点: 1316实验日期: 2016414实验成绩: 批改教师: 王预批改时间:2016417一、实验目的和要求1、 理解数据库中的实体完整性约束,掌握PRIMARY KEY UNIQUE NOT NULL等约束的创建方法;2、 理解参照完整性约束的概念,掌握FORENGN KEYU建方法;3、 理解域完整性的概念,掌握 CHECKS规则的创建方法;4、理解默认值的概念,掌握默认值和默认对象的创建方法。二、实验设备、环境设备:奔腾W或奔腾W以上计算机;环境: WINDOWS 2000 SERVE或 WINDOWS 2003 SERVERSQL Server 2005 中文版。三、实验步骤1、根据题目要求熟悉 SQL Server 2005的各种管理工具;2、分析题意,重点分析题目要求并给出解决方法;3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;4、提交完成的实验结果。四、实验内容1、约束在数据库中的应用(1 )用系统存储过程 sp_helpconstraint查看student表的约束。(2) 在新建查询中输入插入一个学生信息的命令:in sert into stude nt(SNO,S name,Sex,ClsNo,StuAddr,Birthday,Height,TotalCredit) values(19920101, 王军,男,CS01, 下关 #,1976.12.21,1.76,10) ,观察其结果。修改SNOW值,将其值修改为19000001,其他的值保持不变,再插入一次,观察其结果。(3) 修改student表,增加Check约束,约束名为 check_sex,使性别列只能接受男”或女” ,以 强制执行域数据完整性。重做(1),观察其结果。(4) 禁止 student 表中的 sex 歹U上的约束: alter table student nocheck constraint check_sex。(5) 删除约束:alter table stude nt drop con strai nt check_sex。重做(1)。(6) 利用关系图,建立 student表与Course表与grade表的主外键约束。2、默认的应用(1 )创建默认对象:default_birthday,默认值为1982-1-1 。(2) 利用系统存储过程sp_bindefault将default_birthday 绑定到student表的Birthday 列上。(3) 利用系统存储过程sp_unbindefault解除student表的Birthday列上的默认值绑定。(4) 删除默认值。(5) 定义一个默认值为 4的Default_Value ,并将它绑定到 Course表的Credit列上,绑定后给 Course 表插入数据行,观察默认值的设置情况,使用完毕后,解除并删除绑定。实现过程要求使用SQL语句完 成。3、规则的应用(1) 利用企业管理器创建规则:规则名为:rule_credit_ra nge,文本为: ran ge=1 and ran ge=8;(2) 绑定规则:将 rule_credit_range 绑定到Course表的Credit列上;(3) 解除(2)中设置的规则绑定,删除规则rule_ credit _range ;(4) 定义一个规则rule_Specialty ,这个规则限制 Class表中的Specialty 列只能取以下的值:计算 机应用、信息管理、数学、物理。将该规则绑定到Class表后,向Class表插入数据行,观察规则的设 置情况,使用完毕后,解除并删除该规则。五、问题解答及实验结果(1 )用系统存储过程 sp_helpconstraint查看student表的约束。1-Sludwitsnatehljyp*efla_actkpn刚日Is广甜1:Default eo coinn 总mpjrta .主】2FOH&i&hKETF*LStuto_CtawlNo An恤 AdfonCWJ03HGFERENCES IMMjtfea.OdH 4册4FRiMAR* KEi LLkIZ;tl屉SO常母吟mi凶3泸*暫1:dtodvdi RUdwiiiShidiil ;(2) 在新建查询中输入插入一个学生信息的命令:in sert into stude nt(SNO,S name,Sex,ClsNo,StuAddr,Brithday,Height,TotalCredit)values(19920101, 王军,男,CS01, 下关 #,1976.12.21,1.76,10)出现报错:违反了 PRIMARY KEY约束PK_Student。不能在对象dbo.student中插入重复键。语句已终止。修改SNO的值,将其值修改为19000001 in sert into stude nt(SNO,S name,Sex,ClsNo,StuAddr,Brithday,Height,TotalCredit)values(19000001, 王军,男,CS01, 下关 #,1976.12.21,1.76,10)(3) 修改student表,增加Check约束,约束名为 check_sex,使性别列只能接受男”或女” ,以 强制执行域数据完整性。Alter table Stude nt with NOCHECK( 4)禁止 student 表中的 sex 列上的约束: alter table student nocheck constraint check_sex(5) 删除约束alter table student drop constraint check_sex( 6)利用关系图,建立student 表与 Course 表与 grade 表的主外键约束alter table Student ADD constraint pk_sno primary key(SNO);alter table Class ADD constraint pk_clsno primary key(ClsNo);alter table Course ADD constraint pk_cno primary key(CNO);alter table Grade ADD constraint pk_group primary key(SNO,CNO);alter table Student add constraint fk_clsnoforeign key (ClsNo) references Class(ClsNo);( 7)创建默认对象: default_birthday ,默认值为 1982-1-1 ,并利用系统存储过程 sp_bindefault 将 default_birthday 绑定到 student 表的 Birthday 列上。create default default_brithday AS 1982-01-01 00:00:00 exec sp_b in default default_brithday ,Stude nt.brithday122JW臭)B2
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!