SQL SERVER上机实验指导.docx

上传人:b****7 文档编号:23608581 上传时间:2023-05-19 格式:DOCX 页数:26 大小:113.04KB
下载 相关 举报
SQL SERVER上机实验指导.docx_第1页
第1页 / 共26页
SQL SERVER上机实验指导.docx_第2页
第2页 / 共26页
SQL SERVER上机实验指导.docx_第3页
第3页 / 共26页
SQL SERVER上机实验指导.docx_第4页
第4页 / 共26页
SQL SERVER上机实验指导.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

SQL SERVER上机实验指导.docx

《SQL SERVER上机实验指导.docx》由会员分享,可在线阅读,更多相关《SQL SERVER上机实验指导.docx(26页珍藏版)》请在冰豆网上搜索。

SQL SERVER上机实验指导.docx

SQLSERVER上机实验指导

实验1SQLServer2005的安装及管理工具的使用

1.实验目的

(1)了解SQLServer2005安装对软、硬件的要求,掌握安装方法。

(2)了解SQLServer2005的注册和配置方法。

(3)了解SQLServer2005包含的主要组件及其功能。

(4)熟悉SQLServer2005管理平台的界面及基本使用方法。

(5)了解SQLServer2005数据库及其对象。

(6)了解在SQLServer2005管理平台中执行SQL语句的方法。

2.实验内容及步骤

(1)根据软、硬件环境的要求,安装SQLServer2005(在安装过程中,请选择安装示例数据库AdventureWorks)。

(2)通过选择“开始”→“程序”→MicrosoftSQLServer2005→“配置工具”→SQLServerConfigurationManager菜单项,打开“SQLServer配置管理器”窗口,在界面左边的树目录中选择“SQLServer2005服务”,在右边的项列表区中选择SQLServer。

并且通过该窗口“启动服务”和“停止服务”图标来启动和停止SQLServer服务。

(3)通过“开始”→“程序”→MicrosoftSQLServer2005→SQLServerManagementStudio菜单项打开SQLServer2005管理平台。

(4)在SQLServer2005管理平台中,注册服务器。

查看本地已注册的SQLServer。

查找网络上另一台计算机,并且注册该机上的SQLServer,注册时使用“Windows身份认证”或“SQLServer身份认证”的连接方式。

(5)从SQLServer管理平台中删除网络SQLServer服务器。

(6)在SQLServer管理平台的对象资源管理器中打开本地服务器的属性对话框,查看以下信息:

产品名称、主机操作系统、产品的版本、操作平台、主机内存等。

(7)利用SQLServer管理平台访问系统自带的AdventureWorks数据库。

以系统管理员身份登录到SQLServer管理平台。

在SQLServer管理平台的对象资源管理器窗口中找到AdventureWorks数据库并展开,查看该数据库的所有对象,如表、视图、存储过程、默认和规则等。

选择AdventureWorks数据库的“表”选项,在右窗格中将列出AdventureWorks数据库的所有表,选择雇员表HumanResources.Employee,右击鼠标,弹出快捷菜单,从中选择“打开表”菜单项,打开Employee表,查看其内容。

(8)利用SQLServer管理平台的查询设计器窗口访问AdventureWorks数据库的表。

在SQLServer管理平台的对象资源管理器窗口中,选择AdventureWorks数据库结点,单击鼠标右键,在弹出的快捷菜单中选择“新建查询”命令,或者选择数据库后,单击工具栏的“新建查询”命令,打开查询设计器窗口。

在查询设计器窗口中,输入以下代码:

SELECT*

FROMHumanResources.Employeea

WHEREa.Gender='M'

ORDERBYa.Title

选择SQLServer管理平台的“查询”→“分析”菜单项,或者单击常用工具栏上“验证SQL语法”按钮,查询设计器将对输入的代码进行语法分析,并由消息窗格给出分析结果报告。

选择SQLServer管理平台的“查询”→“执行”菜单项,或者单击常用工具栏上“执行SQL”按钮,SQLServer将编译窗口中的代码,并在结果窗格中显示查询结果,如图1-1所示。

图1-1查询设计器窗口

3.实验思考

(1)SQLServer管理平台的作用是什么?

如何进入SQLServer管理平台?

(2)SQLServer配置管理器的作用是什么?

如何进入SQLServer配置管理器?

(3)用几种不同的方法实现注册数据库服务器与对象资源管理器的连接。

(4)查询设计器窗口的作用是什么?

如何打开查询设计器窗口?

(5)改变查询设计器的当前数据库使用什么方法?

实验2SQLServer数据库的管理

1.实验目的

(1)了解SQLServer数据库的逻辑结构和物理结构的特点。

(2)掌握使用SQLServer管理平台对数据库进行管理的方法。

(3)掌握使用Transact-SQL语句对数据库进行管理的方法。

2.实验内容及步骤

(1)在SQLServer管理平台中创建数据库。

运行SQLServer管理平台,在管理平台的对象资源管理器中展开服务器。

右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。

在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。

(2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。

(3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。

指定“最大文件大小”为5MB。

修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。

(4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL语句CREATEDATABASE创建studb数据库。

然后通过系统存储过程sp_helpdb查看系统中的数据库信息。

(5)在查询设计器中使用Transact-SQL语句ALTERDATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。

(6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。

(7)使用SQLServer管理平台将studb数据库的名称更改为student_db。

(8)使用Transact-SQL语句DROPDATABASE删除student_db数据库。

(9)在SQLServer管理平台中删除studentsdb数据库。

3.实验思考

(1)数据库中的日志文件是否属于某个文件组?

(2)数据库中的主数据文件一定属于主文件组吗?

(3)数据文件和日志文件可以在同一个文件组吗?

为什么?

(4)删除了数据库,其数据文件和日志文件是否已经删除?

是否任何人都可以删除数据库?

删除了的数据库还有可能恢复吗?

(5)能够删除系统数据库吗?

实验3SQLServer数据表的管理

1.实验目的

(1)掌握使用SQLServer管理平台和Transact-SQL语句CREATETABLE和ALTERTABLE创建和修改表的方法。

(2)掌握在SQLServer管理平台中对表进行插入、修改和删除数据操作的方法。

(3)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。

(4)了解SQLServer的常用数据类型。

2.实验内容及步骤

(1)启动SQLServer管理平台,在对象资源管理器中展开studentsdb数据库文件夹。

(2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图1-2至图1-4所示。

图1-2学生基本情况表student_info

图1-3课程信息表curriculum

图1-4学生成绩表grade

(3)在SQLServer管理平台中创建student_info、curriculum表。

(4)在SQLServer管理平台中,将student_info表的学号列设置为主键,非空。

(5)使用Transact-SQL语句CREATETABLE在studentsdb数据库中创建grade表。

(6)student_info、curriculum、grade表中的数据如图1-5至图1-7所示。

图1-5student_info的数据

图1-6curriculum的数据

图1-7grade的数据

(7)在SQLServer管理平台中为student_info、curriculum、grade表添加数据。

(8)使用Transact-SQL语句INSERTINTO...VALUES向studentsdb数据库的grade表插入数据:

学号为0004,课程编号为0001,分数为80。

(9)使用Transact-SQL语句ALTERTABLE修改curriculum表的“课程编号”列,使之为非空。

(10)使用Transact-SQL语句ALTERTABLE修改grade表的“分数”列,使其数据类型为real。

(11)使用Transact-SQL语句ALTERTABLE修改student_info表的“姓名”列,使其列名为“学生姓名”,数据类型为varchar(10),非空。

(12)分别使用SQLServer管理平台和Transact-SQL语句DELETE删除studentsdb数据库的grade表中学号为0004的成绩记录。

(13)使用Transact-SQL语句UPDATE修改studentsdb数据库的grade表中学号为0003、课程编号为0005的分数为90的成绩记录。

(14)使用Transact-SQL语句ALTER...ADD为studentsdb数据库的grade表添加一个名为“备注”的数据列,其数据类型为VARCHAR(20)。

3.实验思考

(1)使用Transact-SQL语句删除在studentsdb数据库的grade表添加的“备注”数据列。

(2)在SQLServer管理平台中,studentsdb数据库的student_info表的数据输入时,如果输入相同学号的记录将出现什么现象?

怎样避免该情况的发生?

(3)已经打开的表能删除吗?

(4)在SQLServer2005中能将数据表中的字段名和其数据类型同时改变吗?

实验4数据查询

1.实验目的

(1)掌握使用Transact-SQL的SELECT语句进行基本查询的方法。

(2)掌握使用SELECT语句进行条件查询的方法。

(3)掌握SELECT语句的GROUPBY、ORDERBY以及UNION子句的作用和使用方法。

(4)掌握嵌套查询的方法。

(5)掌握连接查询的操作方法。

2.实验内容及步骤

(1)在studentsdb数据库中,使用下列SQL语句将输出什么?

SELECTCOUNT(*)FROMgrade

SELECTSUBSTRING(姓名,1,2)FROMstudent_info

SELECTUPPER('kelly')

SELECTReplicate('kelly',3)

SELECTSQRT(分数)FROMgradeWHERE分数>=85

SELECT2,3,POWER(2,3)

SELECTYEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())

(2)在studentsdb数据库中使用SELECT语句进行基本查询。

在student_info表中,查询每个学生的学号、姓名、出生日期信息。

查询学号为0002的学生的姓名和家庭住址。

找出所有男同学的学号和姓名。

(3)使用SELECT语句进行条件查询。

在grade表中查找分数在80~90范围内的学生的学号和分数。

在grade表中查询课程编号为0003的学生的平均分。

在grade表中查询学习各门课程的人数。

将学生按出生日期由大到小排序。

查询所有姓“张”的学生的学号和姓名。

(4)对student_info表,按性别顺序列出学生的学号、姓名、性别、出生日期及家庭住址,性别相同的按学号由小到大排序。

(5)使用GROUPBY查询子句列出各个学生的平均成绩。

(6)使用UNION运算符将student_info表中姓“张”的学生的学号、姓名与curriculum表的课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称,如图1-8所示。

图1-8联合查询结果集

(7)嵌套查询。

在student_info表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。

使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。

列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。

列出学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。

(8)连接查询。

查询分数在80~90范围内的学生的学号、姓名、分数。

查询学习“C语言程序设计”课程的学生的学号、姓名、分数。

查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。

查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程编号、分数。

查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。

为grade表添加数据行:

学号为0004、课程编号为0006、分数为76。

查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有的课程列值为空。

3.实验思考

(1)查询所有没有选修课程的学生信息,返回结果包括学号、姓名、性别。

(2)在student_info表和grade表之间实现交叉连接。

(3)查询每个学生的所选课程的成绩,并列出学号生成分组汇总行(总成绩)和明细行(各课成绩)。

(4)在查询语句中SELECT、FROM和WHERE选项分别实现什么运算?

(5)在查询的FROM子句中实现表与表之间的连接有哪几种方式?

对应的关键字分别是什么?

实验5索引和视图

1.实验目的

(1)掌握使用SQLServer管理平台和Transact-SQL语句CREATEINDEX创建索引的方法。

(2)掌握使用SQLServer管理平台查看索引的方法。

(3)掌握使用SQLServer管理平台和Transact-SQL语句DROPINDEX删除索引的方法。

(4)掌握使用SQLServer管理平台和Transact-SQL语句CREATEVIEW创建视图的用法。

(5)了解索引和视图更名的系统存储过程sp_rename的用法。

(6)掌握使用Transact-SQL语句ALTERVIEW修改视图的方法。

(7)了解删除视图的Transact-SQL语句DROPVIEW的用法。

2.实验内容及步骤

(1)分别使用SQLServer管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。

(2)使用SQLServer管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQLServer管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。

(4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。

(5)分别使用SQLServer管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。

(6)使用SQLServer管理平台对grade表创建一个聚集索引和唯一索引。

(7)使用系统存储过程sp_rename将索引grade_index更名为grade_ind。

(8)分别使用SQLServer管理平台和Transact-SQL语句DROPINDEX删除索引grade_ind。

再次使用系统存储过程sp_helpindex查看grade表上的索引信息。

(9)在studentsdb数据库中,以student_info表为基础,使用SQLServer管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。

(10)在studentsdb数据库中,使用Transact-SQL语句CREATEVIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。

(11)基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。

使用视图v_stu_g查询学号为0001的学生的所有课程与成绩,如图1-9所示。

图1-9学号为0001的学生的视图信息

(12)分别使用SQLServer管理平台和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。

(13)使用Transact-SQL语句ALTERVIEW修改视图v_stu_i,使其具有列名学号、姓名、性别。

(14)使用系统存储过程sp_rename将视图v_stu_i更名为v_stu_info。

(15)利用视图v_stu_i为student_info表添加一行数据:

学号为0015、姓名为陈婷、性别为女。

(16)利用视图v_stu_i删除学号为0015的学生记录。

(17)利用视图v_stu_g修改姓名为刘卫平的学生的高等数学的分数为84。

(18)使用Transact-SQL语句DROPVIEW删除视图v_stu_c和v_stu_g。

3.实验思考

(1)是否可以通过视图v_stu_g修改grade表中学号列数据?

(2)比较视图和基表操作表中数据的异同。

(3)可更新视图必须满足哪些条件?

(4)什么是索引?

SQLServer2005中有两种形式的索引:

聚集索引和非聚集索引,简单叙述它们的区别?

(5)能否在视图上创建索引?

实验6数据完整性

1.实验目的

(1)掌握Transact-SQL语句(CREATERULE、DROPRULE)创建和删除规则的方法。

(2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。

(3)掌握Transact-SQL语句(CREATEDEFAULT、DROPDEFAULT)创建和删除默认对象的方法。

(4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。

(5)掌握SQLServer管理平台和Transact-SQL语句(CREATETABLE、ALTERTABLE)定义和删除约束的方法,并了解约束的类型。

2.实验内容及步骤

(1)为studentsdb数据库中student_info表的创建一个规则,限制“电话号码”列所输入的数据为7位0~9的数字。

(2)创建一个规则stusex_rule,将其绑定到stu_phone表的“性别”列上,保证输入的性别值只能是“男”或“女”。

(3)使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。

(4)删除stu_s_rule规则。

(5)在studentdb数据库中,建立日期、货币和字符等数据类型的默认值对象。

在查询设计器中,完成以下代码,创建默认对象df_date、df_char、df_money。

输入以下代码,在studentsdb数据库中创建stu_fee数据表。

CREATETABLEstu_fee

(学号char(10)NOTNULL,

姓名char(8)NOTNULL,

学费money,

交费日期datetime,

电话号码char(7))

表stu_fee的数据结构如图1-11所示。

图1-11stu_fee的数据结构

使用系统存储过程sp_bindefault将默认对象df_money、df_date、df_char分别绑定在stu_fee表的“学费”、“交费日期”、“电话号码”列上。

输入以下代码,在stu_fee表进行插入操作:

INSERTINTOstu_fee(学号,姓名)VALUES('0001','刘卫平')

INSERTINTOstu_fee(学号,姓名,学费)VALUES('0001','张卫民',$120)

INSERTINTOstu_fee(学号,姓名,学费,交费日期)

VALUES('0001','马东',$110,'2006-5-12')

分析stu_fee表中插入记录的各列的值是什么?

完成以下代码,解除默认对象df_char的绑定,并删除默认对象。

按同样的方式,删除默认对象df_date、df_money。

(6)为student_info表添加一列,命名为“院系”,创建一个默认值对象stu_d_df,将其绑定到student_info表的“院系”列上,使其默认值为“信息工程学院院”,对student_info表进行插入操作,操作完成后,删除该默认对象。

(7)在studentsdb数据库中用CREATETABLE语句创建表stu_con,并同时创建约束。

创建表的同时创建约束。

表结构如图1-12所示。

图1-12要创建的表的结构

约束要求如下:

∙将学号设置为主键(PRIMARYKEY),主键名为pk_sid。

∙为姓名添加唯一约束(UNIQUE),约束名为uk_name。

∙为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男”。

∙为出生日期添加属性值约束(CHECK),约束名为ck_bday,其检查条件为:

出生日期>'1988-1-1'。

在stu_con表中插入如表1-1所示的数据记录。

表1-1在stu_con表中插入的数据

学号

姓名

性别

出生日期

家庭住址

0009

张小东

1989-4-6

0010

李梅

1983-8-5

0011

王强

1988-9-10

0012

王强

1989-6-3

分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一致?

使用ALTERTABLE语句的DROPCONSTRAINT参数项在查询设计器中删除为stu_con表所建的约束。

(8)用SQLServer管理平台完成实验内容7的所有设置。

(9)在查询设计器中,为studentsdb数据库的grade表添加外键约束(FOREIGNKEY),要求将“学号”设置为外键,参照表为student_info,外键名称为fk_sid。

使用系统存储过程sp_help查看grade表的外键信息。

在grade表

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1