1、1SQL Server 2008 实验指导手册2015.42SQL Server 2008 的安装和环境介绍实验指导安装 SQL Server 20081 根据安装机器软硬件的要求,选择一个合适的版本,以下以开发版为例2 将 SQL Server 2008 DVD 插入 DVD 驱动器。如果 DVD 驱动器的自动运行功能无法启动安装程序,请导航到 DVD 的根目录然后启动 splash.hta。3 在自动运行的对话框中,单击“运行 SQL Server 安装向导”。4 在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。接受许可协议后即可激活“下一步”按钮。若要继
2、续,请单击“下一步” 若要结束安装程序,请单击“取消”。如下图:5 在“SQL Server 组件更新”页上,安装程序将安装 SQL Server 2008 的必需软件。有关组件要求的详细信息,请单击该页底部的“帮助”按钮。若要开始执行组件更新,请3单击“安装”。更新完成之后若要继续,请单击“下一步”。6 在“系统配置检查 (SCC)”页上,将扫描安装计算机,以检查是否存在可能妨碍安装程序的条件。47 在“要安装的组件”页上,请选择要安装的组件。选择各个组件组时,“要安装的组件”窗格中会显示相应的说明。您可以选中任意一些复选框。建议全选。然后单击“下一步”继续。8 在“实例名”页上,请为安装的
3、软件选择默认实例或已命名的实例。计算机上必须没有默认实例,才可以安装新的默认实例。若要安装新的命名实例,请单击“命名实例”,然后在提供的空白处键入一个唯一的实例名。59 在“服务帐户”页上,为 SQL Server 服务帐户指定用户名、密码和域名。您可以对所有服务使用一个帐户。10 在“身份验证模式”页上,选择要用于 SQL Server 安装的身份验证模式。如果选择 Windows 身份验证,安装程序会创建一个 sa 帐户,该帐户在默认情况下是被禁用的。选择“混合模式身份验证”时,请输入并确认系统管理员 (sa) 登录名。建议选择混合模式,并输入安全的密码。11 如果选择 Reporting
4、 Services 作为要安装的功能,将显示“报表服务器安装选项”页。使用单选按钮选择是否使用默认值配置报表服务器。如果没有满足在默认配置中安6装 Reporting Services 的要求,则必须选择“安装但不配置服务器”安装选项。若要继续安装,请单击“下一步”12 在“错误报告”页上,可以清除复选框以禁用错误报告。有关错误报告功能的详细信息,请单击该页底部的“帮助”。若要继续安装,请单击“下一步”。13 在“准备安装”页上,查看要安装的 SQL Server 功能和组件的摘要。若要继续安装,请单击“安装”。714 在“安装进度”页上,可以在安装过程中监视安装进度。若要在安装期间查看某个组
5、件的日志文件,请单击“安装进度”页上的产品或状态名称。15 在“完成 Microsoft SQL Server 安装向导”页上,可以通过单击此页上提供的链接查看安装摘要日志。若要退出 SQL Server 安装向导,请单击“关闭”。816 如果提示您重新启动计算机,请立即重新启动。17 如果成功安装了 SQL Server 2008,则在开始菜单中添加了如下程序和相应的服务:(2)SQL Server 的环境介绍1. Analysis Services提供“部署向导”,为用户提供将某个 Analysis Services 项目的输出部署到某个目标服务器的功能。2. 配置工具其子菜单中提供的配置
6、管理器“SQL Server Configulation manager”用于查看和配置 SQL Server 的服务。以下是 SQL Server 2008 系统的 7 个服务。9右击某个服务名称,可以查看该服务的属性,并且可以启动、停止、暂停和重新启动相应的服务。也可以使用操作系统“我的电脑”“管理”选项,在【计算机管理】窗口中查看和启动、停止、暂停和重新启动相应的服务。3. 文档和教程提供了 SQL Server 2008 的联机帮助和示例数据库概述。4. 性能工具子菜单提供了“SQL Server Profiler”和“数据库引擎优化顾问”用户数据库性能调试和优化工具。5.SQL Se
7、rver Business Intelligence Development Studio商务智能(BI)系统开发人员设计的集成开发环境,构建于 Visual Studio 2008 技术之上,为商业智能系统开发人员提供了一个丰富、完整的专业开发平台,支持商业智能平台上的所有组件的调试、源代码控制以及脚本和代码的开发。6.SQL Server Management Studio它将 SQL Server 早期版本中包含的企业管理器、查询分析器和分析管理器的功能组合到单一环境中,为不同层次的开发人员和管理员提供 SQL Server 访问能力。10实验一 创建和删除数据库数据表一 实验目的1 熟
8、悉 SQL Server 2008 中 SQL Server Management Studio 的环境2 了解 SQL Server 2008 数据库的逻辑结构和物理结构3 掌握使用向导方式和 SQL 方式来创建和删除数据库及数据表的方法二 实验准备1装有 SQL Server 2008 的 PC 机。2. 明确能够创建数据库的用户必须是系统管理员。三 实验要求1.熟练使用 SQL Server Management Studio(简称 SSMS)中的进行数据库的创建和删除操作,以及数据表的创建和删除操作。2.熟练使用 SQL 语句创建和删除数据库数据表。3.学会分离和附加数据库。4.完成建
9、立和删除数据库数据表的实验报告。四 实验内容设有一学籍管理系统,其数据库名为“EDUC”,初始大小为 10MB,最大为 50MB,数据库自动增长,增长方式是按 5比例增长;日志文件初始为 2MB,最大可增长到 5MB,按1MB 增长。数据库的逻辑文件名为“student_data”(如不修改则默认为数据库名EDUC_data),存放路径为“E:sql_data”(可自己选择存放路径), 物理文件名为“student_data.mdf(自动生成,无需设置),创建完成后可在存放路径下查看物理文件。日志文件的逻辑文件名为“student_log”,存放路径为“E:sql_data” (可自己选择存放
10、路径),物理文件名为“student_log.ldf”,(自动生成,无需设置),创建完成后可在存放路径下查看物理文件。(1) 分别使用向导和 SQL 语句两种方式创建上述描述的数据库 EDUC。使用 SQL Server Management Studio(简称 SSMS)创建数据库。(2)创建 EDUC 数据库中的三个基本表(见教材教学管理数据库 三个表结构),并录入表中数据。(3)删除上面建立的 SC 表。(4)删除上面建立的数据库 EDUC。详细实验指导如下:11实验指导使用向导创建和删除数据库数据表(1) 使用向导创建上述描述的数据库。使用 SQL Server Management
11、Studio(简称 SSMS)创建数据库。1)启动 SSMS在开始菜单中:所有程序SQL Server 2008 SQL Server Management Studio 单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式” ,则要输入 sa 的密码。2)建立数据库在“对象资源管理器”窗口,建立上述数据库 EDUC。在数据库节点上右击选择新建。12在下图“新建数据库”窗口中,完成实验内容中 EDUC 数据库的各项要求。以上设置完成后,点击“确定” 。完成数据库创建。即可在“对象资源管理器”中查看到EDUC。如下图所示。(
12、2)使用向导创建 EDUC 数据库中的三个基本表,并录入数据。以 student 表为例,表结构如修改逻辑文件名自动增长设置 拉动滚动条设置文件存放路径13下:student 表(学生信息表)字段名称 类 型 宽 度 允许空值 主 键 说 明sno char 9 NOT NULL 是 学生学号sname char 20 NOT NULL 学生姓名ssex char 2 NULL 学生性别sage smallint NULL 学生年龄sdept char 20 NULL 学生所在院系1)打开 EDUC 前的“+” ,右击下层的“表”选项,右侧弹出表设计窗口,先完成 student 的创建,右击
13、sno 设置主键,然后点击 保存,对话框中输入 student(表名) ,点击“确定” ,完成 student 表的创建。目前,该表还只是一张空白表,里面没有任何数据。可点击 EDUC下“表”前“+” ,查看已创建的 student 表, 右击“dbo.student”-打开表,如下图按行录入表中数据,数据参照教材(P82) 。录入完成后,关闭窗口,系统自动保存数据。2)使用同样方法继续在 EDUC 数据库中创建另外两个表 course 和 sc 表。表结构如下:注意:sc 表设置主键时,需要把 sno 和 cno 两行一起选中,再设置。course 表(课程信息表)字段名称 类 型 宽 度
14、允许空值 主 键 说 明cno char 4 NOT NULL 是 课程编号cname char 40 NOT NULL 课程名称cpno char 4 NULL 先修课课程编号(外键)ccredit smallint NULL 课程学分sc 表(学生选课成绩表)字段名称 类 型 宽 度 允许空值 主 键 说 明sno char 9 NOT NULL 学生学号cno char 4 NOT NULL 是 课程编号14grade smallint NULL 学生成绩(3)使用向导删除上面建立的 SC 表。右击“dbo.sc”选择“删除” ,确认删除此表。(4)使用向导删除上面建立的数据库 EDUC
15、。 (建议下课前再做此项,也可简单另外创建一个新数据库,再对其删除。 )右击“EDUC”选择“删除” ,确认删除此数据库。15实验指导使用 SQL 语句创建和删除数据库数据表1.使用 SQL 创建数据库 EDUC。打开 SQL Server Management Studio 点击左上角“新建查询”连接数据库成功后,右侧即可出现查询分析器空白窗口,输入 SQL 语句,点击 分析有无语法错误,如有错误,根据提示修改,直到“命令成功完成”再点击 运行该 SQL 语句, “命令成功完成”后,刷新左侧数据库选项,即可看到新创建的数据库。1)以下是创建数据库 userdb1 的 SQL 语句,creat
16、e database userdb1on(name=userdb1_data,-数据文件的逻辑名称,注意不能与日志逻辑同名filename=d:SQL_datauserdb1.mdf ,-物理名称,注意路径必须存在size=5,-数据初始长度为Mmaxsize=10,-最大长度为Mfilegrowth=1)-数据文件每次增长Mlog on(name=userdb1_log, filename=d:SQL_datauserdb1.ldf , size=2 , maxsize=5 , filegrowth=1)运行上述语句建立数据库 userdb1。2)根据步骤 1)的 SQL 语句,写出创建数据
17、库 EDUC 的 SQL 语句,数据库要求见实验一,并建立数据库 EDUC。2. 使用 SQL 创建数据库 EDUC 中的三个基本表 student,course 和 SC。在 SQL Server 2008 的查询分析器中,用 sql 语句创建 student 表。点击“新建查询”,打开新的窗口,输入以下创建语句,注意选择自己的数据库,否则默认为系统数据库 master.CREATE TABLE student(sno char(9) PRIMARY KEY, Sname char(20) UNIQUE,16Ssex char(10),Sage smallint,sdept char(20)
18、;以上方法用 SQL 语句创建其他表(建表 SQL 语句参考课本 p85 例 6 和例 7)。数据录入方法同实验一。3. 练习使用分离附加数据库。当数据库数据表创建好后,如想把数据库拷贝出来,必须先从 SQL Server Management Studio 中分离数据库,然后可到物理文件存储路径下,复制数据文件和日志文件。下次再需要使用该数据库数据时,再把物理文件附加进 SQL Server Management Studio。具体操作如下:1)首先关闭数据库中的所有表的窗口。右击对象资源管理器中要分离的数据库名,选择“任务分离”点击“确认”即可,分离成功后,对象资源管理器中,该数据库立刻消
19、失了。2)打开数据库的物理存储路径,如“d:SQL_data” (以自己数据库存储路径为准) ,把相应数据库的数据文件和日志文件,一并拷贝,转入 U 盘保存。3) “附加”操作。打开对象资源管理器,右击“数据库”选择“附加” ,弹出附加数据库窗口,点击“添加” ,选择数据库物理文件存储路径, “确定” ,附加成功后,对象资源管理器中,出现新附加的数据库名。4.使用 SQL 删除 SC 表。在查询分析器中输入 SQL 语句 Drop table sc; 执行该语句完成删除数据表操作。5.使用 SQL 删除 EDUC 数据库。在查询分析器中输入 SQL 语句 Drop database EDUC;
20、 执行该语句完成删除数据库操作。17实验二 交互式 SQL一 实验目的1观察查询结果, 体会 SELECT 语句实际应用;2要求学生能够使用 SELECT 语句进行数据库查询。3. 熟练掌握各种查询的操作方法。二 实验准备1. 完成实验一所要求的 EDUC 数据库,成功建立了基本表,并录入相应数据。2. 了解 SELECT 语句的用法。3. 熟悉查询分析器中的 SQL 脚本运行环境。三 实验要求完成实验内容中的查询操作,并查看运行结果提交实验报告。四 实验内容1. 查询选修了 2 号课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;2. 查询选修了 3 号
21、课程且成绩在 8090 之间(包括 80 和 90)的学生学号和成绩;3. 查询计算机系和数学系的姓张的学生的信息;4. 查询缺少了成绩的学生的学号和课程号。5. 查询每个学生的情况以及他(她)所选修的课程;6. 查询选修了“数据库”课程的学生的学号,姓名,成绩;7. 查询每一门课的间接先行课(即先行课的先行课)。8. 查询学生 200215121 选修课程的总学分;9. 查询每门课程号和选修该课程的人数;10. 查询选修课程超过 3 门课的学生学号。18实验三 视图与数据更新一 实验目的1掌握创建视图的 SQL 语句,数据更新的 SQL 语句。2了解使用创建视图向导创建视图的方法。3掌握使用
22、 SQL 创建视图的方法,使用 SQL 更新数据的方法。二 实验准备1了解创建视图与数据更新的方法。2掌握创建视图与数据更新的 SQL 语句的语法格式。4了解删除视图与数据更新的 SQL 语句的用法。三 实验要求1. 用不同的方法创建视图,练习数据更新。2. 提交实验报告,并验收实验结果。四 实验内容1. 创建视图(1) 使用企业管理器创建视图 1)在 EDUC 库中以“student”表为基础,建立一个名为“V_SC”的视图,该视图是所有计算机系学生;右击 EDUC 下“视图”,选择“新建”,在弹出设计窗口中,通过添加表,选择字段等操作完成。(2) 使用 SQL 语句创建视图在 EDUC 数
23、据库中,以 Student Course 和 SC 表为基础完成以下视图定义1) 定义计算机系学生基本情况视图 V_Computer;2)将 Student Course 和 SC 表中学生的学号,姓名,课程号,课程名,成绩定义为视图 V_S_C_G;3)将各系学生人数,平均年龄定义为视图 V_NUM_AVG4)定义一个反映学生出生年份的视图 V_YEAR5)将各位学生选修课程的门数及平均成绩定义为视图 V_AVG_S_G6)将各门课程的选修人数及平均成绩定义为视图 V_AVG_C_G2. 查询视图1) 查询平均成绩为 90 分以上的学生学号、姓名和成绩;(使用 V_AVG_S_G 视图)2)
24、 查询人数超过 10 人,且平均年龄在 18 岁以上的院系;(使用 V_NUM_AVG 视图)3. 删除视图(1) 使用企业管理器删除视图用企业管理器删除视图“V_SC”(2) 使用 SQL 语句删除视图用 SQL 语句删除视图 V_YEAR;DROP VIEW V_YEAR194. 数据更新(1) 将一个新学生记录(学号:200215126;姓名:陈冬;性别:男;所在系:IS;年龄:18)插入 STUDENT 表中;(2) 数据的插入操作:插入一条选课记录,学号为 200215126 的学生选修了 1 号课程;(3) 将学生 200215126 所在系改为数学(MA)系;(4) 删除 200
25、215126 学生的记录;(5) 删除数学(MA)系所有学生的选课记。20实验四 综合训练题目一 旅行社管理系统数据库设计Tourism 旅行社是一家位于中国的旅游公司。 它在全国具有 100 多家分支机构。旅行社经营一系列旅游业务,主要业务是团队旅游业务。伴随着异地购物需求的高涨,旅行者随身携带货物旅行存在困难。因此,这家公司计划开展一项新的邮递业务。你被要求去设计开发一个应用程序去满足客户和旅行社的要求。具体业务如下所述,对于语义不明确之处,可自行设定某种假设。这个应用系统的名称是“Travelling Management System”系统中的权限划分如下所示:序号 角色名称 权限描述
26、1 业务员建立旅游团接收货物发送货物2 计调员 安排旅游行程计划3 系统主管 管理系统的基础信息,例如员工,角色,组织机构等。4 公司领导 旅游报表5 司机 更新运输状态旅行社的主要业务旅行社希望这个系统能够支持下面的功能:A. 旅游业务(1)客户预订客户能够查看旅游产品(即旅游路线行程) ,当客户想要浏览某个旅游产品时,他可以做一个预订。然后一个窗体弹出来,收集客户的信息输入。信息提交后,预订操作执行成功。(2)组建旅游团员工能够选择客户,将客户加入到旅游团中。(3)旅游产品安排21计调员可以编制旅游产品,旅游者可以在行程安排中查看详细信息(日期,住宿,行程等) 。B. 物流业务(1)货物收
27、取员工从客户那里接收货物运输申请。首先,员工会将申请登记到系统中。然后,他会一同处理这些申请。具有相同目的地或位于同一线路的货物会被一块邮递。(2)货物发送员工建立货物发送任务,选择具有相同目的地或位于同一线路上的货物进行投递,为任务指派车辆和司机。(3)更新货物运输状态司机经过运输地点后,可以更新货物运输状态。这些信息组成了货物被运输的一个路径图。(4)客户查询客户使用单据编号查询货物的运输状态。设计要求请根据以上业务需求,画出 E-R 图,设计关系模式,并在 SQL Server2008 中实现该数据库(数据自拟) ,并用 SQL 语言完成下列操作。1) 查询河北省内出游时间在三天以内的旅
28、游产品;2) 查询张 xx 参与的旅游团情况;3) 查询客户(客户号为 xxxx)的货物情况;4) 计调员新增加一项旅游产品(数据自拟) ;5) 公司领导查询 2015 年 1 月-5 月共发送旅游团数目。题目二 银行储蓄业务数据库设计这里给出的银行业务系统是一个简化的系统,它包含客户的存款取款业务,通常称为储蓄业务。不涉及企业的大宗贷款业务、资金管理、内部管理等方面。两类角色:(1)银行业务员客户办理储蓄业务,可以是任何业务员。业务员可以为任何客户办理储蓄业务。(2)客户一个客户在银行可能有多个账号,但一个账号只能对应唯一的客户。银行22为客户建立一个储蓄账号时,通过业务员来操作。客户可通过
29、网银系统随时查询自己账号的余额,指定时间段的流水,统计指定时间段的账户收支情况。客户可通过银行业务员或自助柜员机完成查询或存取款业务。设计要求请根据以上业务需求,画出 E-R 图,设计关系模式,并在 SQL Server2008 中实现该数据库(数据自拟) ,并用 SQL 语言完成下列操作。1) 客户王 xx 到银行申请开户,并申请一个活期储蓄账号;2) 客户王 xx 通过网银查询自己的账号 xxxxx2015 年 1 月 1 日至 2015 年 3 月30 日所有流水记录;3) 今天客户王 xx 向自己的账号 xxxxx 中存入 10000 元;4) 客户王 xx 统计自己的账号 xxxxx
30、2014 年全年的收支情况(即总收入多少元,总支出多少元) ;5) 今天客户王 xx 通过柜员机取款 3000 元。题目三 淘宝购物数据库设计参考淘宝网站实际运行模式,可简化部分功能。主要功能包括:(1)用户可注册成为淘宝会员,登录后可根据多条件查询商品,可以添加收藏,有购物车功能,也可以直接下单购买(可以不考虑支付环节)。(2)用户收货后可以对商品进行评价(可以不考虑物流环节)。(3)商家需要实名注册,管理店铺商品,处理客户订单。设计要求请根据以上业务需求,画出 E-R 图,设计关系模式,并在 SQL Server2008 中实现该数据库(数据自拟) ,并用 SQL 语言完成下列操作。1)
31、用户 xxx 注册为淘宝会员;2) 用户 xxx 查询男式棉质短袖 T 恤;3) 商家 xxx 下架某上商品;4) 用户查询到自己满意商品,并直接下单购买;5) 用户查看某商品的评价。题目四 火车票预订网站数据库设计以实际火车票查询预订网站功能为参考,主要包括以下功能:(1)用户可以实现多种查询,站站查询、车次查询、出发地目的地查询,余票、座次查询等。(2)用户可以通过提交个人身份信息预订车票,取票之前可以完成网上退票23(不收取退票费)。(3)系统管理员可以完成后台车次、站点等信息维护。设计要求请根据以上业务需求,画出 E-R 图,设计关系模式,并在 SQL Server2008 中实现该数
32、据库(数据自拟) ,并用 SQL 语言完成下列操作。1) 用户查询石家庄到北京所有车次;2) 用户 xxx 预订一张石家庄到北京的高铁票;3) 用户查询 T90 次列车时刻及途径站点;4) 新增一趟临时客车(数据自拟);5) 用户 xxx 退订一张石家庄到北京的高铁票。题目五 XX 大学运动会管理系统数据库设计参照 XX 大学运动会管理过程,系统主要包括以下功能:(1)学生可通过学号登录系统报名,每人限报 3 项。(2)教师可通过教师号登录系统报名,每人限报 3 项。(3)管理员后台维护运动会项目管理,各比赛项目按不同人数要求分组。教师项目按年龄分为青年组(45 岁以下含 45) ,中年组(45 岁-60 岁) 。(4)记录各项目比赛成绩,并按照预赛成绩决定决赛名单,并记录决赛成绩、排名。设计要求请根据以上业务需求,画出 E-R 图,设计关系模式,并在 SQL Server2008 中实现该数据库(数据自拟) ,并用 SQL 语言完成下列操作。1) 某同学报名男子 5000 米长跑项目;2) 查询教师青年组全部比赛项目;3) 查询女生 100 米决赛成绩及排名;4) 查询男生 100 米决赛名单;5) 统计运动会各项目报名人数。