最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

SQL上机操作实验

来源:动视网 责编:小OO 时间:2025-09-23 19:14:15
文档

SQL上机操作实验

《SQLserver2000》上機操作实验一、本实验课在培养实验能力中的地位及作用数据库技术是一个理论和实际紧密联系的技术,而SQLserver2000则是数据库具体应用的一个数据库开发系统。在学习过程中,除了解SQLserver系统的设计环境及各种工具的使用方法、数据库系统结构、数据库应用方法等知识外,通过实验对相关技术加深认识,切实加强学生的实践能力,是教学中一个重要且必要的环节。并为其它信息系统专业课程奠定基础。《SQLserver2000》是一门实践性很强的课程,只有通过上机实践才能真
推荐度:
导读《SQLserver2000》上機操作实验一、本实验课在培养实验能力中的地位及作用数据库技术是一个理论和实际紧密联系的技术,而SQLserver2000则是数据库具体应用的一个数据库开发系统。在学习过程中,除了解SQLserver系统的设计环境及各种工具的使用方法、数据库系统结构、数据库应用方法等知识外,通过实验对相关技术加深认识,切实加强学生的实践能力,是教学中一个重要且必要的环节。并为其它信息系统专业课程奠定基础。《SQLserver2000》是一门实践性很强的课程,只有通过上机实践才能真
《SQL server2000》上機操作实验

一、本实验课在培养实验能力中的地位及作用

数据库技术是一个理论和实际紧密联系的技术,而SQL server2000则是数据库具体应用的一个数据库开发系统。在学习过程中,除了解SQL server系统的设计环境及各种工具的使用方法、数据库系统结构、数据库应用方法等知识外,通过实验对相关技术加深认识,切实加强学生的实践能力,是教学中一个重要且必要的环节。并为其它信息系统专业课程奠定基础。《SQL server2000》是一门实践性很强的课程,只有通过上机实践才能真正领会主教材中介绍的知识。

二、应达到的实验能力标准

本实验的教学目标是使学生掌握如何使用SQL server2000 数据库开发系统,了解数据库设计及相关操作的基本概念与方法,进而学会建立与组织、操作数据库。上机实验的主要目标如下:

(1)通过上机操作,加深对数据库系统理论知识的理解。

(2)通过使用具体的DBMS,了解一种实际的数据库管理系统并掌握其操作技术。

(3)通过上机实验,提高动手能力,提高分析问题和解决问题的能力。

三、实验主要内容

试验一  SQL server2000的安装及SQL server2000常用工具的使用

(学时 4)

要求:掌握SQL server2000的安装方法

              掌握SQL server2000常用工具的使用方法

试验二 数据库及表的创建和管理

(学时 4)

要求:掌握SQL server2000数据库的创建及使用方法

          掌握SQL server2000数据库的创建使用方法

试验三  约束的创建及使用  

(学时 2)

要求: 能用T—SQL语言及企业管理器创建约束

     试验四 表中数据的查询及维护

(学时 4)

            要求:掌握表中数据的查询方法及操作方法

试验五Transact—SQL程序设计  

(学时 2)

要求:掌握Transact—SQL程序设计的方法

要求:掌握用户自定义函数的创建方法

     试验六 SQL Server视图及索引的创建及使用

(学时 4)

要求:掌握视图的创建及调用

      掌握索引的创建及调用

试验七 SQL Server 的存储过程  

(学时 4)

要求:掌握存储过程的创建及调用

试验八  SQL Server 的触发器

  (学时 4)

要求:学会触发器的创建及使用

试验九  SQL Server的安全性管理及代理服务 

(学时 4)

要求:通过实验理解SQL Server的安全性管理及代理服务

试验十  数据库的备份及恢复

  (学时 2)

             要求:学会如何备份及恢复数据库

     实验十一   SQL Server数据转换

                 (学时 4)

                  要求:掌握数据的导入\\导出及DTS设计器的使用

四、实验成绩考核方法

实验成绩在课程总成绩中占20%,每次实验以百分记分,完成实验内容达到实验目的为100分,完成实验内容但对实验内容理解不清为60分,其他情况酌情定分。最后计算平均分并乘以0.2加入总分中。

五、实验教材、参考资料

1. 《SQL Server学习与上机实验指导》李春葆 等 清华大学出版社 

2. 《SQL SERVER数据库设计与应用案例训练教程》  魏茂林等  电子工业出版社

3. 《SQL Server数据库应用系统开发技术实验指导及习题解答》 朱如龙等编著  机械工业出版社

六、实验项目汇总表

序号内容实验学时
实验一

SQL server2000的安装及SQL server2000常用工具的使用4
实验二

数据库及表的创建和管理4
实验三

约束的创建及使用2
实验四表中数据的查询及维护4
实验五Transact—SQL程序设计

2
实验六

SQL Server视图及索引的创建及使用

4
实验七SQL Server 的存储过程4
实验八SQL Server 的触发器4
实验九SQL Server的安全性管理及代理服务4    
实验十数据库的备份及恢复2
实验十一SQL Server数据转换4
实验附录:

上机实验一

1.练习安装SQL SERVER 2000及卸载SQL SERVER 2000。

2.  管理器创建一个新的SQL Server服务器组,作为Microsoft SQL Servers的子对象,名称为 “NewGroup”

3.  在计算机上再安装一个SQL Server命名实例,实例名为 “people”。 使用企业管理器在NewGroup服务器组下创建一个新的SQL Server注册,使她连接people实例。

上机实验二

1.使用企业管理器创建名为student的数据库,并设置数据库主文件名为syudent_data,大小为10MB;日志文件为student_log,大小为2MB.其他参数取默认值。

步骤:a.

 

     

     b.

     

c.

     

d.

     

2. 使用Transact—SQL语言创建一个student1数据库,主文件逻辑名为student1_data,物理文件名为student1.mdf,为10MB,增长速度为10%;数据库的日志文件逻辑名为syudent1_log, 物理文件名为student1.ldf,初始化大小为1MB,最大尺寸为5MB, 增长速度为1 MB;文件存放路径为c:\\data文件夹下。

Create database student1

On primry

(name=student1_data,

 filename=c:\\data\\student1.mdf,

 size=10,

maxsize=unlimited,

 filegrowth=10%)

log on

(name=student1_log,

 filename=c:\\data\\student1.ldf,

 size=1,

maxsize=5,

 filegrowth=1)

3.在student数据库中创建一个名为pupil的表,要求:

(sno char(6) not null,sname char(10) not null,ssex char(2) not null,birthday datetime not null, polity char(20))

步骤:

a. 

b.

c.

保存并命名为pupil即可。

上机实验三

1.将pupil表的sno设置为主键。

    

2.为sname字段设置惟一性约束。

步骤:

3.为ssex和birthday设置检查性约束,要求ssex只能为‘男’或‘女’,birthday应该大于‘1987-1-1’。

步骤:

4.

为polity字段设置默认约束,值为‘群众’。

5.再创建一个学生选课表sc(sno char(6) not null,cno char(10) not null,grade real).

为sc表创建外键约束,把sc表的sno和pupil表的sno关联起来,在这两个表之间创建一种制约关系。

步骤:

 最后保存该关系图即可。

上机实验四

1. 已知一个名为pupil的表:

(sno char(6) not null,sname char(10) not null,ssex char(2) not null,birthday datetime not null, polity char(20),sdept char(20) not null)

a.利用insert语句向其中插入一条新的记录:

(‘0007’,‘张三’,‘男’,‘1982-3-21’,‘团员’,’计算机系’)

insert into pupil

values(‘0007’,‘张三’,‘男’,‘1982-3-21’,‘团员’,‘计算机系’)

b.利用update语句将编号为‘0004’的学生polity改为‘党员’:

update pupil

set polity=’党员’

where sno=’0004’

a.利用delete语句将‘186-1-1’以后出生的女同学记录删除。

Delete from pupil

Where polity>1986-1-1 and ssex=’女’

2.针对pupil、sc、course三张表完成以下查询:

a.查询所有学生的基本信息,并按出生日期升序排列

select * from pupil order by polity

b.查询女同学的信息和女同学的人数

select * from pupil where ssex=’女’

compute count(sno)

c.查询所有男同学的年龄

select year(getdate())-year(birthday) as 年龄 from pupil

d.所有选课学生的姓名、选修课程名及成绩

select sname,cname,grade

from pupil,sc,course

where pupil.sno=sc.sno and course.cno=sc.cno

e.不及格学生的姓名

select distinct sname

from pupil,sc,course

where pupil.sno=sc.sno and course.cno=sc.cno and grade<60

f.查询‘刘’姓学生的信息

select * from pupil where sname like ‘刘%’

g.查询polity为’团员’或’党员’的学生信息

select * from pupil where polity in(‘团员’,’ 党员’)

h.查询各门课程的选课人数

select cno ,count(sno) from sc group by cno

i.查询缺少成绩的学生的学号及课程号

select sno,cno from sc where grade is null 

j.查询与‘刘成’同一个系的学生情况

select * from pupil where sdept in(select sdept from pupil where sname=’ 刘成’))

k.查询选修了课程名为‘MIS’的学生的学号和姓名

select sno,sname from pupil where sno in(select sno from sc where cno in(select cno from course wnere cname=’MIS’))

   

上机实验五

1.编写一个用户自定义函数fun_avggrade,要求根据输入的班级号和课程号,求此班级此课程的平均分。

Create function fun_avggrade

(@classnumber as char(10),@coursenumber as char(10))

returns real

begin

declare @avgresult

select @avgresult=avg(grade)

from sc

where substring(sno,1,len(sno)-2)= @classnumber and cno=@coursenumber

return @avgresult

end

2. 编写一个用户自定义函数,完成以下功能:根据两个

输入参数(成绩上限和成绩下限),求sc数据表中满足输

入条件的学生人数。

Create function fun_sumren

(@maxline real,@minline real)

returns int

begin

declare @personcount as int

select @personcount=(select count(distinct sno) from sc)

from sc

where grade<=@maxline real and grade>=@minline

return @personcount

end

 上机实验六

1.如何通过企业管理器和Transact_SQL语句对视图进行创建、修改和删除?

通过企业管理器:

创建步骤:

最后保存该视图即可。

修改步骤:

进入该界面重新修改该视图即可。

删除步骤:

通过Transact_SQL语句:

创建:create view 视图名

      [with encryption]

      as select_statement

      [with check option]

修改:利用 alter view 视图名

删除:利用 drop view 视图名

2.

通过Transact_SQL语句创建一个视图,计算各个班级的各门课程的平均分。

Create view v_avggrade

As

Select substring(pupil.sno,1,len(pupil.sno)-2) as 班级,

      Cname as 课程名称,

      Avg(grade) as 平均分

From pupil,sc,grade

Where pupil.sno=sc.sno and sc.cno=course.cno

Group by substring(pupil.sno,1,len(pupil.sno)-2), Cname

3. 通过Transact_SQL语句创建一个视图,显示‘高等数学’未过的学生的信息。

Create view v_gradenotpass

As

Select pupil.sno,sname,cname,grade

From pupil,sc,course

Where pupil.sno=sc.sno and sc.cno=course.cno and grade<60

      And cname=’ 高等数学’

4.

通过Transact_SQL语句创建一个视图,查询的数据为99521班学生的考试成绩。

Create view v_grade99521

As

Select pupil.sno,sname,cname,grade

From pupil,sc,course

Where pupil.sno=sc.sno and sc.cno=course.cno and 

left(pupil.sno,5)=’99521’  

5.如何通过企业管理器创建索引?

步骤:

点击‘新建’按钮

点击‘确定’

点击‘关闭’

6.

如何删除索引?

     

选中该索引点击‘删除’即可

利用 drop index 表名. 索引名完成删除

上机实验七

1.创建一个存储过程stugradeinfo,查询班级、学号、姓名、性别、课程名称、分数

create procedure stugradeinfo

as

select 班级=substring(pupil.sno,1,len(pupil.sno)-2),

      pupil.sno as 学号,

      sname as 姓名,

ssex as 性别,

cname as课程名称,

grade as 分数

from pupil,sc,course

where pupil.sno=sc.sno and course.cno=sc.cno

2.利用企业管理器创建一个存储过程stu_info,根据传入的编号,查询某学生的基本信息。

   

代码如下:

create procedure stu_info

@stunum char(10)

as

if not exists(select * from pupil where sno=@stunum)

  print ‘查无此人’

else

  begin 

    select sno as 编号,

         sname as 姓名,

         ssex as  性别,

         birthday as  出生日期,

         polity as 政治面貌

from pupil 

where sno=@stunum

end

3.创建一个存储过程stu_age,根据输入的学生姓名,计算该学生的年龄。

Create procedure stu_age

@stuname char(10)

as

if not exists(select * from pupil where sname=@stuname)

  print ‘查无此人’

else

  begin 

    declare @age int

    select @age=floor(datediff(day,birthday,getdate())/365)

    from pupil

    where sname=@stuname

 end

4.

创建一个存储过程stu_grade,根据输入的学生编号,返回其选课及其成绩。

Create procedure stu_grade

@stunum char(10)

if not exists(select * from pupil where sname=@stuname)

     print ‘查无此人’

else

  begin

    if not exists(select * from pupil,sc where pupil.sno=sc.sno)

      print ‘无此学生的选课信息’

    else

      select sname,cname,grade

      from pupil,course,sc

      where pupil.sno=sc.sno and course=cno=sc.cno

   end

上机实验八

1.创建一个insert触发器,当在pupil表中插入一条新记录时,给出‘你已经插入了一条新记录’的提示信息。

步骤:

程序代码如下:

create trigger stuinsert on pupil

for insert

as

declare @msg char(50)

set @msg=’ 你已经插入了一条新记录’

print @msg

2.创建一个insert触发器,当在pupil表中插入一条新记录时,不允许在学号中出现重复的编号或出现空值。

   程序代码如下:

create trigger stuinsert1 on pupil

for insert

as

declare @stunum char(10)

set @stunum=(select sno from inserted )

if @stunum is null

  begin 

    print ‘学号不能为空’

    rollback transaction

  end

else

  begin

    declare @num int

    set @num=(select count(*) from pupil where sno in (select sno from inserted))

if @num>1

      begin

        print ‘已经有相同的学号,请重新确认’

        rollback transaction

      end

   else

     print ‘数据录入成功’

   end

3.创建一个insert触发器,当在sc表中插入一条新记录时,sno和cno必须是已经存在的学号和课程号,且grade应该在0----100之间。

     程序代码如下:

  create trigger scinsert on sc

  for insert

  as

  declare @gradevalue real

  set @gradevalue=(select grade from inserted)

  print ‘触发器开始工作………………’

  if not exists(select sno from inserted 

where sno in(select sno from pupil))

    begin

      print ‘无此学生的编号,请重新确认’

      rollback transaction

   end

else

  begin

    if not exists(select cno from inserted where cno in(select cno from course))

      begin

        print ‘无此课程的编号,请重新确认’

        rollback transaction

       end

   else

     begin

if @gradevalue<0 or @gradevalue>100

         begin

           print ‘分数有误,请重新确认’

           rollback transaction

         end

       else

         print ‘数据插入成功’

    end

end

4.创建一个after触发器,在pupil表中删除某学生的记录时,删除其相应的选课记录。

     程序代码如下:

  create trigger studelete on pupil

  for delete

  as

  declare @stunum char(10)

  select @stunum=sno from deleted

  if not exists(select * from pupil,sc

            where pupil.sno=sc.sno and pupil.sno=@stunum)

    print ‘无此学生的选课记录’

   else

     begin 

       print ‘开始查找并删除该学生相映的选课记录……..‘

       delete from sc where sno=@stunum

        print ‘该学生的选课记录已经删除’

      end

5.创建一个instead of 触发器,当在course表中上出记录时,不允许删除course表中的数据。

程序代码如下:

create trigger notallowdelete

on course

instead of delete

as

print ‘instead of触发器开始工作……………’

print ‘course表中的数据不允许删除不能执行删除操作!!’

上机实验九

1.使用企业管理器和Transact_SQL语句管理登录帐户

2.使用企业管理器和Transact_SQL语句管理数据库用户

3.使用企业管理器和Transact_SQL语句管理服务器角色和数据库角色

4.使用企业管理器和Transact_SQL语句管理语句权限和对象权限

5.   练习创建一个作业。

6.   练习创建一个警报。

上机实验十

1.创建一个备份设备。

     

2.

使用企业管理器对一数据库做一次完全数据备份。

3.

使用企业管理器恢复某一数据库的完全数据备份

上机实验十一

1.导入一个文本文件到SQL Server数据库当中。

  

2.将SQL Server数据库当中的表导出到access数据库当中。

3.

利用DTS设计器将表从一个数据库复制到另一个数据库当中

   

文档

SQL上机操作实验

《SQLserver2000》上機操作实验一、本实验课在培养实验能力中的地位及作用数据库技术是一个理论和实际紧密联系的技术,而SQLserver2000则是数据库具体应用的一个数据库开发系统。在学习过程中,除了解SQLserver系统的设计环境及各种工具的使用方法、数据库系统结构、数据库应用方法等知识外,通过实验对相关技术加深认识,切实加强学生的实践能力,是教学中一个重要且必要的环节。并为其它信息系统专业课程奠定基础。《SQLserver2000》是一门实践性很强的课程,只有通过上机实践才能真
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top