SQL_SERVER2005上机实验指导

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一SQL Server数据库的管理
1.实验目的
(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。

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

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

2.实验内容
1)在管理平台中管理数据库。

(1)创建数据库“studentsdb”。

(2)查看studentsdb数据库的属性。

(3)修改数据文件大小为2MB,指定“最大文件大小”为5MB。

日志文件的大小在每次填满时自动递增5%。

(4)将studentsdb数据库的名称更改为student_db。

2)使用T-SQL语句管理数据库
(1)使用CREATE DATABASE创建studb数据库,然后通过系统存储过程sp_helpdb查看系统中的数据库信息。

(2)使用ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。

(3)为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。

(4)将studb数据库的名称更改为my_studb。

(5)使用DROP DATABASE删除my_studb数据库。

3.实验思考
(1)数据库中的日志文件是否属于某个文件组?
(2)数据库中的主数据文件一定属于主文件组吗?
(3)数据文件和日志文件可以在同一个文件组吗?为什么?
(4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库?删除了的数据库还有可能恢复吗?
(5)能够删除系统数据库吗?
实验二SQL Server数据表的管理
1.实验目的
(1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE TABLE和ALTER TABLE创建和修改表的方法。

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

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

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

2.实验内容
1)在管理平台中管理数据表
(1)为student_db数据库中创建数据表student_info,表结构如图1所示。

图1 学生基本情况表student_info
(2)将student_info表的“学号”列设置为主键,非空。

(3)修改student_info表的“姓名”列,使其列名为“学生姓名”。

2)使用T-SQL语句管理数据表
(1)使用Transact-SQL语句CREATE TABLE在student_db数据库中创
建curriculum、grade表,表结构如图2和图3所示。

图2 课程信息表curriculum
图3 学生成绩表grade
(2)在管理平台中为student_info、curriculum、grade表添加数据。

student_info、curriculum、grade表中的数据如图4至图6所示。

图4 student_info的数据
图5 curriculum的数据
图6 grade的数据
(3)使用Transact-SQL语句ALTER TABLE设置curriculum表的“课程编号”为主键,非空。

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

(5)使用Transact-SQL语句ALTER TABLE修改student_info表中“学生姓名”数据类型为varchar(10),非空。

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

(7)使用Transact-SQL语句删除grade表的“备注”数据列。

(8)使用Transact-SQL语句INSERT INTO...V ALUES向grade表插入数据:学号为0004,课程编号为0001,分数为80。

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

(10)使用Transact-SQL语句DELETE删除grade表中学号为0004的成绩记录。

3.实验思考
(1)在SQL Server管理平台中,student_info表的数据输入时,如果输入相同学号的记录将出现什么现象?怎样避免该情况的发生?
(2)已经打开的表能删除吗?
(3)在SQL Server 2005中能将数据表中的字段名和其数据类型同时改变吗?
实验三数据查询
1.实验目的
(1)掌握使用Transact-SQL的SELECT语句进行基本查询的方法。

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

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

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

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

2.实验内容
(1)在student_db数据库中,使用下列SQL语句将输出什么?
①SELECT COUNT(*) FROM grade
②SELECT SUBSTRING(姓名,1,2) FROM student_info
③SELECT UPPER('kelly')
④SELECT Replicate('kelly',3)
⑤SELECT SQRT(分数) FROM grade WHERE 分数>=85
⑥SELECT 2,3,POWER(2,3)
⑦SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())
(2)在student_db数据库中使用SELECT语句进行基本查询。

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

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

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

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

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

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

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

(4)使用SELECT语句对查询结果处理
①使用ORDER BY子句实现对student_info表,按性别顺序列出学生的学
号、姓名、性别、出生日期及家庭住址,性别相同的按学号由小到大排序。

②使用GROUP BY查询子句实现对grade表列出各个学生的平均成绩。

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

图7 联合查询结果集
(5)嵌套查询。

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

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

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

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

(6)连接查询。

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

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

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

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

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

⑥为grade表添加数据行:学号为0004、课程编号为0006、分数为76。

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

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

3.实验思考
(1)在student_info表和grade表之间如何实现交叉连接。

(2)在查询语句中SELECT、FROM和WHERE选项分别实现什么运算?
(3)在查询的FROM子句中实现表与表之间的连接有哪几种方式?对应的关键字分别是什么?
实验四索引和视图
1.实验目的
(1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。

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

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

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

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

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

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

2.实验内容
1)使用管理平台管理索引和视图
(1)为curriculum表的课程编号列创建唯一性索引。

(2)查看curriculum表创建的索引信息。

(3)为grade表的“分数”字段创建一个非聚集索引,命名为grade_index。

(4)删除urriculum表的课程编号列创建唯一性索引。

(5)以student_info表为基础,使用SQL Server管理平台建立名为v_stu_i 的视图,使视图显示学生姓名、性别、家庭住址。

(6)删除视图v_stu_i。

2)使用T-SQL语句管理索引和视图
(1)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。

(2)使用系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。

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

(4)使用Transact-SQL语句DROP INDEX删除索引grade_ind。

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

(5)使用Transact-SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。

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

使用视图v_stu_g 查询学号为0001的学生的所有课程与成绩。

(7)使用Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。

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

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

(10)利用视图v_stu_info为student_info表添加一行数据:学号为0015、姓名为陈婷、性别为女。

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

(12)使用Transact-SQL语句DROP VIEW删除视图v_stu_c和v_stu_info。

3.实验思考
(1)是否可以通过视图v_stu_g修改grade表中学号列数据?
(2)比较视图和基表操作表中数据的异同。

(3)可更新视图必须满足哪些条件?
(4)什么是索引?SQL Server 2005中有两种形式的索引:聚集索引和非聚集索引,简单叙述它们的区别?
(5)能否在视图上创建索引?
实验五数据完整性
1.实验目的
(1)掌握SQL Server管理平台和Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。

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

(3)掌握SQL Server管理平台和Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建和删除默认对象的方法。

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

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

2.实验内容
(1)为student_db数据库中student_info表的创建一个规则stu_s_rule,限制“学号”列所输入的数据为4位0~9的数字。

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

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

(4)删除stu_s_rule规则。

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

①创建默认对象df_date、df_char、df_money。

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

CREATE TABLE stu_fee
(学号char(10) NOT NULL,
姓名char(8) NOT NULL,
学费money,
交费日期datetime,
电话号码char(7))
③使用系统存储过程sp_bindefault将默认对象df_money、df_date、df_char 分别绑定在stu_fee表的“学费”、“交费日期”、“电话号码”列上。

④输入以下代码,在stu_fee表进行插入操作:
INSERT INTO stu_fee(学号,姓名) V ALUES('0001','刘卫平')
INSERT INTO stu_fee(学号,姓名,学费) V ALUES('0001','张卫民',$120)
INSERT INTO stu_fee(学号,姓名,学费,交费日期)
V ALUES('0001','马东',$110,'2006-5-12')
分析stu_fee表中插入记录的各列的值是什么?
⑤完成以下代码,解除默认对象df_char的绑定,并删除默认对象。

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

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

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

①创建表的同时创建约束。

表结构如图所示。

约束要求如下:
∙将学号设置为主键(PRIMARY KEY),主键名为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
分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一致?
③使用ALTER TABLE语句的DROP CONSTRAINT参数项删除为stu_con 表所建的约束。

(8)为student_db数据库的grade表添加外键约束(FOREIGN KEY),要求将“学号”设置为外键,参照表为student_info,外键名称为fk_sid。

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

②在grade表中插入一条记录,学号为0100,课程编号为0001,分数为
78。

观察SQL Server会做何处理,为什么?如何解决所产生的问题?
③使用查询设计器删除grade表的外键fk_sid。

3.实验思考
(1)在SQL Server 2005中,可采用哪些方法实现数据完整性?
(2)比较默认对象和默认约束的异同。

(3)可以使用SQL Server管理平台创建规则和默认值对象吗?如果能,如何操作呢?
(4)在数据库中建立的规则不绑定到数据表的列上会起作用吗?为什么?
(5)请说明唯一约束和主键约束之间的联系和区别。

实验六Transact-SQL程序设计
1.实验目的
(1)掌握Transact-SQL的数据类型、常量变量、表达式等的概念和使用方法。

(2)掌握程序中注释的基本概念和使用方法。

(3)掌握程序中的流程控制语句的使用方法。

(4)掌握SQL Server 2005中常用函数的用法。

(5)掌握游标的概念和声明方法,以及使用游标进行数据的查询、修改、删除操作等。

2.实验内容
(1)选择student_db数据库,输入以下T-SQL代码。

DECLARE @stu_name varchar(10)
SELECT @stu_name=姓名
FROM student_info
WHERE 姓名LIKE '张%'
SELECT @stu_name
观察显示的结果,与student_info表中数据进行比较,@stu_name赋值的是SELECT结果集中的哪个数据?
(2)定义int型局部变量@grademax、@grademin、@gradesum,在grade 表中查找最高分、最低分和总分,分别赋给@grademax、@grademin和@gradesum,并显示。

(3)使用SET命令将某个查询结果集记录数目赋值给int型局部变量@row。

(4)以下代码在curriculum表中插入新记录:
DECLARE @intCId int,@intErrorCode int
INSERT INTO curriculum(课程编号,课程名称,学分)
V ALUES('0006','VB程序设计',2)
SELECT @intCId=@@identity,@intErrorCode=@@error
SELECT @intCId,@intErrorCode
将该代码段连续执行两次,观察两次显示的信息及curriculum表中数据的变化,为什么前后两次执行时显示的信息会不同?
(5)在student_db数据库的student_info表中,以“性别”为分组条件,分别统计男生和女生人数。

(6)在grade表中,使用适当函数找出“高等数学”课程的最高分、最低分和平均分。

(7)定义一个datetime型局部变量@studate,以存储当前日期。

计算student_info表中的学生的年龄,并显示学生的姓名、年龄。

(8)运行以下代码,写出运行结果。

DECLARE @a int,@b int
SET @a=168
SET @b=73
SELECT @a & @b,@a|@b,@a^@b
(9)在局部变量@stu_id中存储了学号值。

编写代码查询学号为0001的学生的各科平均成绩,如果平均分 60,则显示“你的成绩及格了,恭贺你!!”,否则显示“你的成绩不及格”。

(10)运行以下代码段,写出运行的结果。

DECLARE @counter int
SET @counter=1
WHILE @counter<10
BEGIN
SELECT '@counter的值现在为:'+CONVERT(CHAR(2),@counter)
SET @counter=@counter+1
END
(11)查询grade表。

如果分数大于等于90,显示A;如果分数大于等于80小于90,显示B;如果分数大于等于70小于80,显示C;如果分数大于等于60小于70,显示D;其他显示E。

(12)计算grade表的分数列的平均值。

如果小于80,则分数增加其值的5%;如果分数的最高值超过95,则终止该操作。

(13)在student_db数据库中,使用游标查询数据。

①声明一个stu_cursor游标,要求返回student_info表中性别为“男”的学生记录,且该游标允许前后滚动和修改。

②打开stu_cursor游标。

③获取并显示所有数据。

④关闭该游标。

(14)使用游标修改数据。

①打开stu_cursor游标。

②将姓马的男同学的出生日期的年份加1。

③关闭stu_cursor游标。

(15)声明游标变量@stu_c,使之关联stu_cursor游标,利用@stu_c查询年龄在6~9月份出生的学生信息。

(16)使用系统存储过程sp_cursor_list显示在当前作用域内的游标及其属性。

3.实验思考
(1)Transact-SQL语言的运算符主要有哪些?
(2)流程控制语句与其他编程语言提供的语句有何差别?
(3)区分局部变量与全局变量的不同,思考全局变量的用处。

(4)什么函数能将字符串前和尾的空格去掉?
(5)使用什么语句可以打开游标?打开成功后,游标指针指向结果集的
什么位置?
实验七存储过程和触发器
1.实验目的
(1)掌握通过SQL Server管理平台和Transact-SQL语句CREATE PROCEDURE创建存储过程的方法和步骤。

(2)掌握使用Transact-SQL语句EXECUTE执行存储过程的方法。

(3)掌握通过SQL Server管理平台和Transact-SQL语句ALTER PROCEDURE修改存储过程的方法。

(4)掌握通过SQL Server管理平台和Transact-SQL语句DROP PROCEDURE删除存储过程的方法。

(5)掌握通过SQL Server管理平台和Transact-SQL语句CREATE TRIGGER创建触发器的方法和步骤。

(6)掌握引发触发器的方法。

(7)掌握使用SQL Server管理平台或Transact-SQL语句修改和删除触发器。

(8)掌握事务、命名事务的创建方法,了解不同类型的事务的处理情况。

2.实验内容
(1)输入以下T-SQL代码,创建一个利用流控制语句的存储过程letters_print,该存储过程能够显示26个小写字母。

CREATE PROCEDURE letters_print
AS
DECLARE @count int
SET @count=0
WHILE @count<26
BEGIN
PRINT CHAR(ASCII('a')+ @count)
SET @count=@count +1
END
使用EXECUTE命令执行letters_print存储过程。

(2)输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名对应的学生的各科成绩。

CREATE PROCEDURE stu_info @name varchar(40)
AS
SELECT a.学号,姓名,课程编号,分数
FROM student_info a INNER JOIN grade ta
ON a.学号= ta.学号
WHERE 姓名= @name
使用EXECUTE命令执行存储过程stu_info,其参数值为“马东”。

如果存储过程stu_info执行时没有提供参数,要求能按默认值查询(设姓名为“刘卫平”),如何修改该过程的定义?
(3)使用student_db数据库中的student_info表、curriculum表、grade 表。

①创建一个存储过程stu_grade,查询学号为0001的学生的姓名、课程名称、分数。

②执行存储过程stu_grade,查询0001学生的姓名、课程名称、分数。

③使用系统存储过程sp_rename将存储过程stu_grade更名为stu_g。

(4)使用student_info表、curriculum表、grade表。

①创建一个带参数的存储过程stu_g_p,当任意输入一个学生的姓名时,将从3个表中返回该学生的学号、选修的课程名称和课程成绩。

②执行存储过程stu_g_p,查询“刘卫平”的学号、选修课程和课程成绩。

③使用系统存储过程sp_helptext,查看存储过程stu_g_p的文本信息。

(5)使用student_info表。

①创建一个加密的存储过程stu_en,查询所有男学生的信息。

②执行存储过程stu_en,查看返回学生的情况。

③使用Transact-SQL语句DROP PROCEDURE删除存储过程stu_en。

(6)使用grade表。

①创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参数获取该学生各门课程的平均成绩。

②执行存储过程stu_g_r,输入学号0002。

③显示0002号学生的平均成绩。

(7)输入以下代码,复制student_info表命名为stu2,为stu2表创建一个触发器stu_tr,当stu2表插入一条记录时,为该记录生成一个学号,该学号
为学号列数据的最大值加1。

--复制student_info表命名为stu2
SELECT * INTO stu2 FROM student_info
GO
--为stu2表创建一个INSERT型触发器stu_tr
CREATE TRIGGER stu_tr
ON stu2 FOR INSERT
AS
DECLARE @max char(4)
SET @max=(SELECT MAX(学号) FROM stu2)
SET @max=@max+1
UPDATE stu2 SET 学号=REPLICATE('0',4-len(@max))+@max
FROM stu2 INNER JOIN inserted on stu2.学号=inserted.学号
执行以上代码,查看studentsdb数据库中是否有stu2表,展开stu2,查看其触发器项中是否有stu_str触发器。

在查询编辑窗口输入以下代码:
INSERT INTO stu2(学号,姓名,性别) V ALUES('0001','张主','女')
运行以上代码,查看stu2表的变化情况,为什么插入记录的学号值发生了改变?
(8)为grade表建立一个名为insert_g_tr 的INSERT触发器,当用户向grade表中插入记录时,如果插入的是在curriculum表中没有的课程编号,则提示用户不能插入记录,否则提示记录插入成功。

在进行插入测试时,分别输入以下数据:
学号课程编号分数
0004 0003 76
0005 0007 69
观察插入数据时的运行情况,说明为什么?
(9)为curriculum表创建一个名为del_c_tr的DELETE触发器,该触发器的作用是禁止删除curriculum表中的记录。

(10)为student_info表创建一个名为update_s_tr的UPDATE触发器,该触发器的作用是禁止更新student_info表中的“姓名”字段的内容。

(11)使用Transact-SQL语句DROP TRIGGER删除update_s_tr触发器。

(12)为student_info表建立删除触发器del_s_tr,要求当student_info表的记录被删除后,grade表中相应的记录也能自动删除。

(13)在student_db数据库中,执行以下事务处理过程,说明这些事务属于哪一种事务类型(隐性事务、显性事务或自动式事务)。


BEGIN TRANSACTION
INSERT INTO student_info(学号,姓名) V ALUES('0009','李青')
COMMIT TRANSACTION

SET IMPLICIT_TRANSACTIONS ON
GO
INSERT INTO grade(学号,课程编号) V ALUES('0005','0007')
GO
IF ((SELECT count(*) FROM curriculum WHERE 课程编号='0007')=0)
实验八数据库的安全性
1.实验目的
(1)掌握通过SQL Server管理平台和Transact-SQL语句创建、修改、删除、查看等管理用户账户的方法。

(2)掌握通过SQL Server管理平台和Transact-SQL语句添加、修改、删除、查看等管理角色的方法。

(3)掌握通过SQL Server管理平台和Transact-SQL语句创建、修改、删除、查看等管理用户权限的方法。

2.实验内容
(1)利用SQL Server管理平台和Transact-SQL语句分别创建登录账户login_user1和login_user2。

(2)利用SQL Server管理平台和Transact-SQL语句分别删除登录账户login_user1和login_user2。

(3)利用SQL Server管理平台和Transact-SQL语句分别创建用户定义数据库角色member1和member1并添加到sales数据库中。

(4)利用SQL Server管理平台和Transact-SQL语句分别删除用户定义数据库角色member1和member1。

(5)利用SQL Server管理平台和Transact-SQL语句分别创建数据库用户database_user1和database_user2。

(6)利用SQL Server管理平台和Transact-SQL语句分别赋予数据库用户database_user1和database_user2查询和修改sales数据库的权限。

(7)利用SQL Server管理平台和Transact-SQL语句分别撤销数据库用户database_user1和database_user2查询和修改sales数据库的权限。

(8)利用SQL Server管理平台和Transact-SQL语句分别删除数据库用户database_user1和database_user2。

实验九数据库的备份与恢复、导入/导出及分离/附加
1.实验目的
(1)掌握通过SQL Server管理平台和Transact-SQL语句创建、修改、删除、查看等管理备份设备的方法。

(2)掌握通过SQL Server管理平台和Transact-SQL语句添加、修改、删除、查看等管理备份数据库的方法。

(3)掌握通过SQL Server管理平台和Transact-SQL语句创建、修改、删除、查看等管理恢复数据库的方法。

(4)掌握通过SQL Server管理平台导入和导出数据的方法。

(5)掌握通过SQL Server管理平台分离和附加数据库的方法。

2.实验内容及步骤
(1)利用SQL Server管理平台和Transact-SQL语句分别创建备份设备test_backup1和test_backup2。

(2)利用SQL Server管理平台和Transact-SQL语句分别对数据库sales
创建备份到备份设备test_backup1和test_backup2。

(3)利用SQL Server管理平台和Transact-SQL语句分别从备份设备test_backup1和test_backup2还原数据库sales。

(4)利用SQL Server管理平台和Transact-SQL语句分别删除备份设备test_backup1和test_backup2。

(5)利用SQL Server管理平台将数据库student_db中的表student_info 数据导出到Excel中。

(6)利用SQL Server管理平台将Excel表数据导入到SQL Server中。

(7)利用SQL Server管理平台实现数据库student_db的分离和附加。

实验十数据库应用系统开发
开发一个C/S或者B/S的数据库应用系统。

具体要求如下:
1.前台开发工具不限制,后台数据库管理系统采用SQL SERVER2000或者20005。

2.要求数据库访问技术采用ADO或者对象模型编程。

3.后台数据库至少包含3张表。

4.开始启动界面为登录界面,完成用户身份、用户名和密码的验证。

要求用户身份至少有两种,必须通过对后台用户表的访问完成验证。

5.主窗体界面采用菜单操作方式。

并实现不同身份用户能使用的菜单功能不同。

6.窗体完成对基本表数据的信息的管理,具体包括:新增数据、修改数据、删除数据、根据给定条件查询数据。

7.完成相应数据的统计,并实现EXCEL或者报表输出。

(附加功能)。

相关文档
最新文档