《Sql Sever2005数据库原理及应用》
实验指导书
主编教师:马莲
目录
实验1 通过E-R图设计关系数据模型
【实验目的】
熟悉E-R模型的基本概念和图形的表示方法.
掌握将现实世界的事物转化成E-R图的基本技巧.
熟悉关系数据模型的基本概念.
掌握将E-R图转化成关系表的基本技巧.
【实验环境】
Sql server 2005
【实验重点及难点】
根据需求确定实体,属性和联系.
将实体,属性和联系转化为E-R图.
将E-R图转化为表.
【实验内容】
设计能够表示出班级与学生关系的数据模型
确定班级实体和学生实体的属性和码.
确定班级和学生之间的联系,给联系命名并指出联系的类型.
确定联系本身的属性.
画出班级和学生关系的E-R图.
将E-R图转化为表,写出表的关系模式并标明各自的主键或外键.
设计能够表示出顾客与商品关系的数据模型
确定顾客实体和商品实体的属性和码.
确定顾客和商品之间的联系,给联系命名并指出联系的类型.
确定联系本身的属性.
画出顾客与商品关系的E-R图.
将E-R图转化为表,写出表达关系模式并标明各自的主键或外键.
设计能够表示出学校与校长关系的数据模型
确定学校实体和校长实体的属性和码.
确定学校和校长之间的联系,给联系命名并指出联系的类型.
确定联系本身的属性.
画出学校与校长关系的E-R图.
将E-R图转化为表,写出表达关系模式并标明各自的主键或外键.
设计能够表示出房地产交易中客户,业务员和合同三者之间的关系的数据模型
确定客户实体,业务员实体和合同的属性和码.
确定客户实体,业务员实体和合同之间的联系,给联系命名并指出联系的类型.
确定联系本身的属性
画出客户实体,业务员实体和合同关系的E-R图
将E-R图转化为表,写出表达关系模式并标明各自的主键或外键
实验2 确定表中的关键字
【实验目的】
正确理解候选键,主键,组合键,外键的基本概念.
能够正确判断给定表中各种类型的键.
在设计数据库时能正确指定各种类型的键,知道如何实施数据的完整性.
【实验环境】
Sql server 2005
【实验重点及难点】
复习候选键,主键,外键,组合键以及数据完整性的基本概念.
在给出的部门表和员工表中能正确标识出各种类型的键.
【实验内容】
写出候选键,主键,组合键,外键,实体完整性,域完整性,参照完整性的定义.
已知部门表和员工表如下所示:
部门表
部门代码
部门名
负责人
地点
0001
生产部
李华江
重庆荣昌县
0002
销售部
张丽
重庆渝中区
0003
市场部
王欣
重庆江北区
员工表
员工代码
姓名
家庭住址
联系电话
邮政编码
部门代码
200001
王华
重庆
67690986
401147
0001
200002
李想
成都
54387659
508763
0003
200003
张丽
上海
67893542
208761
0002
200004
李江华
重庆
76549873
400054
0001
确定部门表和员工表中的候选键,并陈述理由.
在候选键中确定部门表和员工表的主键.
确定部门表和员工表中的共有属性.
指出哪个表中的哪个属性时外键.
确定哪个表是主表,哪个表是从表.
回答问题:部门表和员工表是如何通过关键字实施数据完整性的
实验3 规范化数据
【实验目的】
了解函数(数据)依赖的基本概念.
能正确判断某一关系属于第几范式.
掌握规范化数据的方法.
【实验环境】
Sql server 2005
【实验重点及难点】
复习函数(数据)依赖,数据规范化,范式的基本概念以及各级范式的判别标准.
判断给定的表满足哪级别范式的条件.
将给定的表转换成特定等级的范式条件的表.
【实验内容】
写出函数(数据)依赖,数据规范化,范式的定义以及各级范式的判别标准.
项目表1,判断是否满足第一范式的条件并说明理由.
项目表1
项目代码
职员代码
部门
累计工作时间
P27
P51
P20
E101
系统集成部
90
101
60
P27
P22
E305
销售部
109
98
P51
P27
E508
行政办公室
NULL
72
项目表2,判断是否满足第二范式的条件并说明理由.
项目表2
项目代码
职员代码
部门
累计工作时间
P27
E101
系统集成部
90
P51
E101
系统集成部
101
P20
E101
系统集成部
60
P27
E305
销售部
109
P22
E305
销售部
98
P51
E508
行政办公室
NULL
P27
E508
行政办公室
72
职员表,判断其是否满足第三范式的条件并说明理由.
职员表
职员代码
部门
部门负责人代码
E101
系统集成部
E901
E305
财务部
E309
E402
销售部
E909
E508
行政办公室
E908
E607
财务部
E909
E608
财务部
E909
项目表3,判断其是否满足BCNF的条件并说明理由.
项目表3
项目代码
职员代码
职员姓名
累计工作时间
P2
E1
李华玉
48
P5
E2
陈家伟
100
P6
E3
张勤
15
P3
E4
谢成全
250
P5
E4
谢成全
75
P5
E1
李华玉
40
将项目表1转换成满足第一范式条件的表.
将项目表2转换成满足第二范式条件的表.
将职员表转换成满足第三范式条件的表.
将项目表3转换成满足BCNF条件的表.
回答问题:规范化数据带来的不利影响是什么
实验4 服务器的启动,暂停和停止
【实验目的】
1) 熟悉SQL Server 2005 配置管理器.
2) 掌握服务器的启动方法.
3) 掌握服务器的暂停方法.
4) 掌握服务器的停止方法.
【实验环境】
Sql server 2005
【实验重点及难点】
利用SQL Server配置管理器实现服务器的启动,暂停和停止.
【实验内容】
实训1 服务器管理
启动,暂停和停止服务的方法很多,这里主要介绍SQL Server 配置管理器完成这些操作,其操作步骤如下:
单击"开始"---"Microsoft SQL Server 2005"-----"配置工具",选择"SQL Server Configuration Manager",打开SQL Setver配置管理器,如图2-52所示.单击"SQL Server 2005服务"选项,在右边的对话框里可以看到本地所有的SQL Server服务,包括不同实例的服务,如图2-53所示.
如果要启动,停止,暂停SQL Server服务的话,鼠标指向服务名称,单击右键,在弹出的快捷键菜单里选择"启动","停止","暂停"即可.
实训2 服务器注册
服务器注册主要为注册本地或者远程SQL Server服务器.打开SQL Server 2005下Management Studio,进行服务器注册.注册步骤如下:
图2-52 SQL Server 配置服务管理器(一)
图2-53 SQL Server 配置管理器(二)
在视图菜单中单击"已注册的服务器"菜单选项显示出已注册的服务器,如图2-54所示.
图2-54 已注册服务器
在右上角已注册的服务器中,选择注册类型进行相应服务类型注册.
在选定的服务类型的树型架构的根部单击鼠标右键,选择"新建"菜单下面的"服务器组"进行组的建立,如图2-55所示.
图2-55 选择服务器组菜单
输入服务器组名称,单击保存即可,如图2-56所示.
图2-56 新建服务器组
在新建的服务器组下面注册服务器,在新建服务器节点处单击鼠标右键,弹出菜单,选择新建选项下面的服务器注册选项,进行服务器注册,如图2-57所示.填写服务器名称,选择相应的认证方式,输入用户名及密码,完成注册.
图2-57 新建服务器注册
实验5 创建并管理数据库
【实验目的】
熟悉SQL Server Management Studio 窗口.
掌握创建数据库的方法.
掌握管理数据库的方法.
【实验环境】
Sql server 2005
【实验重点及难点】
启动 SQL Server Management Studio 窗口.
创建 XSCJ 数据库.
修改 XSCJ 数据库.
分离XSCJ 数据库.
附加 XSCJ 数据库.
【实验内容】
打开"SQL Server Management Studio"窗口,在"对象资源管理器"中展开服务器,鼠标右键单击"数据库"节点,单击"新建数据库"命令,会出现"新建数据库"对话框.
在对话框的"数据库名称"框内输入数据库名"XSCJ"后,单击"确定"按钮即可创建默认大小的数据库.
鼠标右键单击"XSCJ"数据库,在弹出的快捷菜单中选择"属性"命令,会出现"数据库属性"对话框;在对话框中单击"文件"选项卡,可以增加或删除数据库文件,单击"确定"按钮即可完成数据库的修改.
鼠标右键单击"XSCJ"数据库,在弹出的快捷菜单中选择"任务"→"分离"命令,会出现"分离数据库"对话框,单击"确定"按钮即可完成数据库的分离.
鼠标右键单击"数据库",在弹出的快捷菜单里选择"附加"命令,会出现"附加数据库"对话框,在该对话框中单击"添加"按钮,会出现"定位数据库文件"对话框,在改对话框中,选择要附加的数据库文件(.mdf),单击"确定"按钮后,返回到"附加数据库"对话框,再单击"确定"按钮即可完成数据库的附加.
实验6 创建表并输入数据
【实验目的】
1) 熟悉创建数据表的操作
2)掌握创建数据表的操作
3)掌握数据输入和修改的操作
【实验环境】
Sql server 2005
【实验重点及难点】
在xscj数据库中分别创建学生情况表xsqk,课程表kc,学生与课程表xs_kc,并表结构分别如表4-5,表4-6表4-7所示
列名
数据类型
长度
属性
约束
学好
Char
6
是否允许为空置
默认值
标识符
主键
否
无
姓名
Char
8
否
无
唯一
性别
Bit
1
否
1
0或1
出生日期
Smalldatetime
4
否
无
表4-5
列名
数据类型
长度
属性
约束
是否允许为空置
默认值
标识符
所在系
Char
10
否
无
专业名
Char
10
否
无
联系电话
Char
11
是
无
6为数字
总学分
Tinyint
1
是
无
0~200
备注
Text
30
是
无
表4-6
列名
数据类型
长度
属性
约束
是否允许为空值
默认值
标识列
序号
Int
4
初始值 增量为1
课程号
Char
3
否
无
主键
课程名
Char
20
否
无
授课教师
Char
8
无
开课学期
Tinyint
1
否
1
只能为1~6
学时
Tinyint
1
无
学分
Tinyint
1
无
表4-7
列名
数据类型
长度
属性
约束
是否允许为空
默认值
学号
Char
6
否
无
外键,参照XSQK表
组合为主键
课程号
Char
3
否
无
外键,参照cK表
成绩
Tinyint
1
无
0~100
学分
Tinyint
1
无
分别向XSQK, KC XS_KC表中输入数据,其内容由用户自定义
【实验内容】
打开"SQL server Management Studio"窗口,单击在'标准"工具栏汇总"新建查询"按钮,会出现如图所示的界面
在"SQL编辑器"工具栏中,单击"可用数据库"右边的下拉按钮,将当前数据库切换成"XSCJ"库
在查询窗口中,输入如下的命令
CREATE TABLE XSQK
(学号 CHAR(6) NOT NULL,
姓名 CHAR(8) NOT NULL,
性别 BIT NOT NULL DEFAULT 1,
生日 SMALLEATETIME NOT NULL,
专业 CHAR(10) NOT NULL,
所在系 CHAR(10) NOT NULL,
联系电话 CHAR(11),
总学分 TINYINT,
备注 TEXT,
CONSTRAINT PK_XSQK_XH PRIMART KEY(学号),
CONSTRAINT UQ_XSQK_DH UNIQUE(姓名),
CONSTRAINT CK_XSQK_XB CHECK(姓名=1 OR 姓名=0)
CONSTRAINT CK_XSQK_DH CHECK(联系电话 LIKE'【1-9】【1-9】【1-9】【1-9】【1-9】【1-9】'),
CONSTRAINT CK_XSQK_ZXF CHECK(总学分<=0 AND 总学分=1 AND 开课学期=0 AND 成绩=80
d.在XS_KC表中,查询在80以上和不及格学生的信息
select 学号, 课程号, 成绩
from xs_kc
where 成绩>=80 or 成绩<60
e.在XSQK表中,查询不在1980年7,8,9月出生的学生信息
select 学号, 姓名, 出生日期
from xsqk
where 出生日期 not between '1980-07-07' and '1980-09-30'
f. 在XSQK表中,擦汗寻陈姓且单名的信息
select *
from xsqk
where 姓名 like '陈_'
g.在XSQK表中,查询学号中含有1的记录信息
select *
from xsqk
where 学号 like '%1%'
h.在XSQK表中,查询电话号码第7位为4和6的记录信息
select *
from xsqk
where 联系电话 like '_ _ _ _ _ _ [46] _'
i.在KC表中,查询第一,三,五学期开设的课程信息
select *
from kc
where 开课学期 in (1, 3, 5)
j.查询XSQK表,输出学号,姓名,出生日期,并使查询结构按出生日期升序排列
select 学号, 姓名, 出生日期
from xsqk
order by 出生日期
实验8 使用Select 语句查询数据(二)——汇总查询
【实验目的】
掌握数据汇总查询及其相关子句的使用.
【实验环境】
Sql server 2005
【实验重点及难点】
1)启动SQL Server 2005查询环境.
2)涉及单表的汇总查询.
【实验内容】
1) 打开"SQL Server Management Studio"窗口.
2) 单击"标准"工具栏的"新建查询"按钮,打开"查询编辑器"窗口
3)在窗口中输入以下SQL查询命令并执行:
a.在KC表中,统计每学期的总分数
select 开课学期, sum(学分) as 各学期的学分合计
from kc
group by 开课学期
b.在XS_KC表中统计每个学生的选修课程的门数
select 学号, count(*) as 每个学生选修的课程门数
from xs_kc
group by 学号
c.统计KC表中的总学分,并显示明细信息
select 课程名称, 开课学期, 学分
from kc
compute sum(学分)
d.按开课学期统计KC表中各期的学分,并显示明细信息
select 课程名称, 开课学期, 学分
from kc
order by 2
compute sum(学分) by 开课学期
e.将XS_KC表中的数据记录按学号分类汇总,输出学号和平均分
select 学号, avg(成绩) as 学生的平均分
from xs_kc
group by 学号
f.查询平均分大于70且小于80的学生学号和平均分
select 学号, avg(成绩) as 学生的平均分
from xs_kc
group by 学号
having avg(成绩) between 70 and 80
g.查询XS_KC表,输出学号,课程号,成绩,并使查询结果首先按照课程号的升序排列,当课程号相同时再按照成绩降序排列,并将查询结果保存到新表TEMP_KC中
select 学号, 课程号, 成绩
into temp_kc
from xs_kc
order by 课程号, 成绩 desc
h.查询选修了"101"课程的学生的最高分和最低分
select max(成绩) as 101课程的最高分, min(成绩) as 101课程的最低分
from xs_kc
where 课程号='101'
i.统计每个学期所开设的课程门数
select 开课学期, count(*) as 每学期开设的课程门数
from kc
group by 开课学期
j.查询各专业的学生人数
select 专业名, count(专业名) as 各专业人数
from xsqk
group by 专业名
实验9 使用Select 语句查询数据(三)——连接查询和子查询
【实验目的】
1)掌握内连接的查询方法.
2)了解子查询的查询方法.
【实验环境】
Sql server 2005
【实验重点及难点】
1)启动SQL Server 2005查询环境.
2)涉及多表的复杂查询.
【实验内容】
1) 打开"SQL Server Management Studio"窗口.
2) 单击"标准"工具栏的"新建查询"按钮,打开"查询编辑器"窗口
3)在窗口中输入以下SQL查询命令并执行:
a.查询不及格学生的学号,课程名,授课教师,开课学期的信息
select 学号, xs_kc.课程号, 授课教师, 开课学期, 成绩
from kc, xs_kc
where kc.学号=xs_kc.学号 and 成绩=100
order by sum(成绩) desc
c.使用子查询求恰好有两门课程不及格的学生信息
select 学号, 姓名
from xsqk
where (select count(课程号)
from xs_kc
where xsqk.学号=xs_kc.学号 and 成绩>=60 )=2
d.使用子查询查询每门课程的最高分的学生记录
select *
from xs_kc a
where 成绩=(select max(成绩)
from xs_kc b
where a.课程号=b.课程号)
e.使用子查询查询每个学生的最低分的课程记录
select *
from xs_kc a
where 成绩=(select min(成绩)
from xs_kc b
where a.学号=b.学号)
实验10 创建视图并通过视图操作表数据
【实验目的】
1)掌握视图的创建.
2)掌握使用视图来插入,更新,删除表数据.
【实验环境】
Sql server 2005
【实验重点及难点】
1)启动SQL2005查询编辑器.
2)创建一个简单的视图,查询第3学期及其以后开课的课程信息.
3)在视图中使用INSERT语句插入数据.
4)在视图中使用UPDATE语句更新数据.
5)在视图中使用DELETE语句删除数据.
【实验内容】
(1)创建视图
1)打开"SQL Server Management Studio"窗口.
2)单击:"标准"工具栏上的"新建查询"按钮,打开"查询编辑器"窗口.
#在窗口内直接输入以下语句,按要求创建视图.
在XSCJ数据库中,基于KC表创建一个名为"v_开课信息"的视图,要求该视图中包含列"课程号","课程名","开课学期"和"学时",并且限定视图中返回的行中只包括第3学期及以后开课的课程信息.
USE XSCJ
CREATE VIEW v_开课信息
AS
SELECT 课程号,课程名,开课学期,学时
FROM KC
WHERE 开课学期>=3
4)单击"SQL编辑器"工具栏上的"分析"按钮,检查输入的T-SQL语句是否有语法错误.如果有语法错误,则进行修改.
5)确保无语法错误后,在XSCJ数据库中就会添加一个名为"v_开课信息"的视图,通过SELECT语句查看视图中的数据,如图所示
(2)在视图中使用INSERT语句插入数据
1)在"查询编辑器"串口内输入以下语句,在视图中插入一行数据.
INSERT INTO v_开课信息
VALUES('022','ASP',4,80)
2)单击"SQL编辑器"工具栏上的"执行"按钮.
3)执行上述语句后,利用SELECT语句查看视图中的数据,如图所示.
(3)在视图中使用UPDATE语句更新数据
1)在"查询编辑器"串口内输入以下语句,修改途中的数据.
UPDATE v_开课信息
SET 开课学期=5,学时=80
WHERE 课程号='012'
2)单击"SQL编辑器"工具栏上的"执行"按钮.
3)执行上述语句后,视图中课程号为"012"的数据记录被修改了,基表中对应数据记录也被修改了.通过SELECT语句查看视图和基表中的数据,结果如图6-24所示.
(4)在视图中使用DELETE语句删除数据
1)在"查询编辑器"窗口内输入以下语句,删除视图中的数据.
DELETE FROM v_课程信息
WHERE 课程号='022'
2)单击"SQL编辑器"工具栏上的"执行"按钮.
3)执行上述语句后,先前在视图中添加的数据行被删除.同时,在基表中该数据行也被删除.
实验11 使用规则实现数据完整性
【实验目的】
1)掌握规则的创建,绑定,解除绑定和删除.
2)掌握使用规则实现数据完整性的方法.
【实验环境】
Sql server 2005
【实验重点及难点】
1)启动SQL Server 2005查询编辑器.
2)创建一个关于开课学期的规则,并绑定到列,实现数据的完整性.
3)创建一个关于性别的规则,并绑定到列,实现数据的完整性.
4)创建一个关于学分的规则,并绑定到列,实现数据的完整性.
5)删除规则.
【实验内容】
(1)创建一个关于开课学期的规则
1)打开"SQL Server Management Studio"窗口.
2)单击"标准"工具栏上的"新建查询"按钮,打开"查询编辑器"窗口.
3)在窗口内直接输入以下语句,创建规则,将"开课学期"列的值约束在1~8之间.
USE XSCJ
CREATE RULE kkxq_rule
AS @开课学期>=1 AND @开课学期85
BEGIN
SELECT @ sname =姓名 FROM XSQK WHERE 学号=@ sno
PRINT @ aname+'考出了高分'
END
ELSE
PRINT @ sname+'考的一般'
实验13 使用触发器实现数据完整性
【实验目的】
掌握用触发器实现域完整性的方法.
掌握用触发器实现参照完整性的方法.
掌握触发器与约束的不同.
【实验环境】
Sql server 2005
【实验重点及难点】
启动SQL Server2005查询编辑器.
为表建立一个触发器,实现域完整性,并激活触发器进行验证.
为表建立一个能级联更新的触发器,实现参照完整性,并激活触发器进行验证.
比较约束与触发器的执行顺序.
【实验内容】
实现域完整性
打开"SQL Server Management Studio"窗口
单击"标准"工具栏上的"新建查询"按钮,打开"查询编辑器"窗口.
在"SQL编辑器"工具栏上选择可用数据库,如"XSCJ".
在窗口内直接输入以下CREATE TRIGGER语句,创建触发器.
为KC表创建一个INSERT触发器,当插入的新行中开课学期的值不是1~6时,就激活该出发器,撤销该插入操作,并使用RAISERROR语句返回一个错误信息.
CREATE TRIGGER tri_INSERT_KC ON KC
FOR INSERT
AS
DECLARE @开课学期 tinyint
SELECT @开课学期=KC.开课学期
FROM KC,Inserted
WHERE KC.课程号= Inserted.课程号
——如果新插入行的开课学期的值不是1~6,则撤销插入,并给出错误信息
IF @开课学期 NOT BETWEEN 1 AND 6
BEGIN
ROLLBACK TRANSACTION
RAISERROR('开课学期的取值只能是1~6!',16,10)
END
单击"SQL编辑器"工具栏上的"分析"按钮,检查输入的T-SQL语句是否有语法错误.如果有语法错误,则进行修改,直到没有语法错误为止.
确保无语法错误后,单击"SQL编辑器"工具栏上的"执行"按钮,完成触发器的创建.
在左边的"对象资源管理器"中用鼠标右键单击目标"表"节点,如"KC",弹出快捷菜单,选择"打开表"命令,打开表的数据记录窗口.
在表中分别插入两行记录以激活该触发器,第一行的开课学期的值在1~6以内,第二行的开课学期的值在1~6以外.
当插入第一行时,系统成功地接受了数据,无信息返回.而在插入第二行时,系统撤销该插入操作,拒绝接受非法数据,并返回错误信息,从而保证了域完整性,如图9-21所示.
(2)
1)在"查询编辑器"窗口内直接输入以下CREATE TRIGGER语句,创建触发器.
为KC表再创建一个UPDATE触发器,当更新了某门课程的课程号信息时,就激活该触发器级联更新XS_KC表中相关的课程号信息,并使用PRINT语句返回一个提示信息.
CREATE TRIGGER tri_UPDATE_KC ON KC
FOR UPDATE
AS
IF UPDATE(课程号) ――检测课程号列是否被更新
BEGIN
DECLARE @原课程号char(3),@新课程号 char(3) ――声明变量
――获取更新前后的课程号的值
SELECT @原课程号=Deleted.课程号,@新课程号=Inserted.课程号
FROM Deleted,Inserted
WHERE Deleted,课程名=Inserted.课程名
PRINT '准备级联更新XS_KC表中的课程号信息…'
——级联更新XS_KC表中相关成绩记录的课程号信息
UPDATE XS_KC
SET 课程号=@新课程号
WHERE 课程号=@原课程号
PRINT '已经级联更新XS_KC表中原课程号'+@原课程号+'为'+@新课程号
END
2)单击"SQL编辑器"工具栏上的"分析"按钮,检查输入的T-SQL语句是否有语法错误.如果有语法错误,则进行修改,知道没有语法错误为止.
3)确保无语法错误后,单击"SQL编辑器"工具栏上的"执行"按钮,完成触发器的创建.
4)在"查询编辑器"窗口内如入并执行以下UPDATE语句,修改KC表的课程号列,以激活触发器,级联修改XS_KC表中的课程号列,并返回提示信息,从而实现了参照完整性.
UPDATE KC
SET 课程号='115'
WHERE 课程名='计算机硬件基础'
(3)比较约束与触发器的执行顺序
1)在"查询编辑器"窗口内输入并执行以下ALTER TABLE语句,为KC表添加一个约束,使得开课学期的值只能为1~6.
ALTER TABLE KC
ADD CONSTRAINT CK_开课学期 CHECK(开课学期>=1 AND 开课学期<=6)
2)在"查询编辑器"窗口内输入并执行以下INSERT语句.
INSERT KC(课程号,课程名,授课教师,开课学期,学时,学分)
VALUES('120','软件开发案例','李学涛',7,68,4)
从这部分实验中可以看到,约束优先于FOR或AFTER触发器起作用,它在更新前就生效,对要更新的值进行规则检查.当检查到与现有规则冲突时,系统给出错误消息,并取消更新操作.如果检查没有问题,更新被执行,再激活触发器.
实验14 为用户设置权限
【实验目的】
掌握在SQL Server Management Stuido 里为用户添加或修改或修正权限的两种方法.
掌握在"安全性"里这只用户权限的方法.
掌握在数据库里这是用户权限的方法.
【实验环境】
Sql server 2005
【实验重点及难点】
1)启动SQL Server 2005的对象资源管理器 .
2)在"安全性"里设计用户权限.
3)在数据库里设置用户权限.
【实验内容】
(1)在"安全性"里设置用户权限
1)打开"SQL Server Management Studio"的"对象资源管理器"窗口.
2)选择"数据库实例名"— "安全性"— "登录名"选项,鼠标右键单击要修改权限的登录名,在弹出的快捷键菜单里选择"属性"选项.
3)弹出"登陆属性"对话框,在该对话框里选择"用户映射"选项.也可以在添加登录名时,也可以在对话框里选择"用户映射"标签,进入选项卡.
4)在改对话框里可以设置此登陆帐户可以访问哪些数据库.在"映射到此登录名的用户"区域里,显示查该数据库服务器里所以的数据库名,选中数据库前的复选框,则表示次登陆帐户可以登陆该数据库.
5)在选中数据库前的复选框之后,在"数据库角色成员身份"区域里的"public"复选框里会被自动选择上.在每个数据库中,所以用户都会在public角色的成员,并且不能被删除.
(2) 在数据库里设置用户权限
1)启动"SQL Server Management Stuido",以sa用户或超级用户身份连上数据库实例.在"对象资源管理器"里选择"数据库实例名"— "Northwind"— "安全性"— "用户".
2)鼠标右键单击"userl"用户,在弹出的快捷菜单里选择"属性"选项,弹出"数据库用户"对话框,在改对话框里选择"安全对象"标签.
3)弹出对话框,单击"添加"按钮,弹出 "添加对象"对话框,在改对话框里可以选择希望查看的对象类型的选择对话框.
4)弹出 "选择对象"对话框,在该对话框里单击"对象类型"按钮.
5)弹出 "选择对象类型"对话框,在该对话框里可以现在数据库表里的可在对象类型,在本例中选择"表"复选框,然后单击"确定"按钮
6)单击"浏览"按钮.
实验15导入导出数据
【实验目的】
1)了解数据的导入导出概念.
2)掌握数据的导入导出方法.
3)理解数据导入导出时数据类型的转换.
【实验环境】
Sql server 2005
【实验重点及难点】
1)实现数据库之间数据的导入导出.
2)实现不同数据源与目标源之间数据的传输.
【实验内容】
在sql server 2005中使用数据导入导出向导可以在不同的数据源和目标之间复制与转换数据.使用sql server2005导入导出向导可以在sql server之间,或者sql server与OLE DB,ODBC数据源,甚至是sql server与文本文件之间进行数据的导入导出操作.
数据的导入是指从其他数据源里把数据复制到SQL SERVER数据库中;数据的导出是指从sql sercer数据库中把数据复制到其他数据源中.其他数据源可以是:同版本或旧版本的Sql server,Excel,Access,通过OLE DB 或ODBC来访问的数据源,纯文本文件等.
(1)导入数据
将XSCJ数据库里的所有数据表导入到TEST数据库中
1)启动"sql server management studio",连接上数据库实例,在"对象资源管理器"里选择"实例名"→"数据库"→"XSCJ"数据库.
2)鼠标右键单击"XSCJ"数据库,选择"任务"→"导出数据"选项,弹出"欢迎使用Sql server导入导出向导"对话框,在该对话框里单击"下一步"按钮.
3)弹出"选择数据库"对话框,在该对话框中可以选择导出数据的数据库,在本例中选择XSCJ数据库.
在"数据源"下拉列表里选择"Sql Native Client"选项;在"服务器名称"下拉列表里选择数据库所在的服务器名,也可以直接输入;在"身份验证"区域里设置正确的身份验证信息;在"数据库"下拉列表里可以选择要导出数据的数据库名,在此以XSCJ数据库为例.设置完成单击"下一步"按钮.
4)弹出"选择目标"对话框,该对话框里用来设置接收数据目标.在本例中选择TEST,然后单击"下一步"按钮.
5)淡出"指定表复制或查询"对话框,在该对话框里设置用何种方式来指定传输的数据,可以选项有两种,一种是"复制一个或多个表或视图的数据",如果选择该项,则接下来的操作是选择一个或多个数据表或视图,并将其中数据导入到目标源中;另一种是"编写查询以指定要传输的数据",如果选择该项,则接下来的操作是输入一个T-SQL查询语句,Sql sever导入导出向导会执行这个查询语句,然后将结果导出到目标源中.在本例中选择"复制一个或多个表或视图的数据"单选项,然后单击"下一步"按钮.
6)弹出"选择源表或源视图"对话框,在该对话框中可以选择要导出的数据表或视图,可以选择一个或多个.
7)类型设置完成后,单击"确定"按钮,弹出"保存并执行包"对话框,在该对话框里可以选择是立即执行导入导出操作,还是将前面步骤的设置保存为SSIS包,以便日后的操作使用.
8)弹出"完成该向导"对话框,单击"完成"按钮.
(2)导出数据
SQL Server导入导出可以在不同的数据库之间进行数据的导入导出,下面将XSCJ数据库中的 KC表里的数据导出到EXCEL中.
1)启动"sql server management studio",连接上数据库实例,在"对象资源管理器"里选择"实例名"→"数据库"→"XSCJ"数据库.
2)鼠标右键单击"XSCJ"数据库,选择"任务"→"导出数据"选项,弹出"欢迎使用Sql server导入导出向导"对话框,在该对话框里单击"下一步"按钮.弹出"选择数据源"对话框,在该对话框中可以选择导出数据的数据源,在本试验中,选择XSCJ数据库,单击"下一步"按钮.
3)在"选择目标"对话框中,在"目标"下拉列表框里选择"Microsoft Excel"选项,在"Excel文件路径"文本框里输入要保存的Excel文件位置及文件名,单击"下一步"按钮.
4)弹出"指定表复制或查询"对话框,单击"下一步"按钮.
5)在"选择源表和源视图"对话框中选择要导出的表,单击"下一步"按钮.
6)弹出"保存并执行包"对话框,单击"下一步"按钮,出现"完成该向导"对话框,单击"完成"按钮.
7)在"正在执行操作……"对话框中单击"关闭"按钮.
烟台南山学院 sql server 2005实验指导书