SQLServersy

SQLServersy
SQLServersy

实验一SQL Server基础

一、实验目的

1.了解SQL Server系统数据库和用户数据库,掌握SQL Server数据库的创建方法和数据库对象。

2.了解SQL Server2000的数据类型,掌握创建SQL Server表的方法。

二、实验准备

1.了解SQL Server数据库结构;

2.了解SQL Server的四个系统数据库及其作用;

3.了解SQL Server的两个示例数据库;

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

三、实验内容

1.启动MS SQL Server服务,打开企业管理器。

2.单击“企业管理器”左边“控制台根目录”树结构中的SQL Server Group(服务组),使其展开;再展开服务组下面的SQL Server服务器(安装SQL Server时的服务器名)。

3.展开“数据库”,用户可见SQL Server自带的四个系统数据库和两个示例数据库。

4.在“企业管理器”中创建名为GradeManager的数据库。

5.在数据库GradeManager中创建基本表:学生表(student),课程表(course),班级表(class),成绩表(grade)。

表1:成绩管理数据库GradeManager的表结构

表2:成绩管理数据库GradeManager中的数据

四、实验步骤:

1.选中“数据库”,单击鼠标右键,在其弹出菜单中选择“新建数据库……”

2.在随后出现的“新建数据库”对话框的“名称”一栏中,输入数据库名:GradeManager,也可以通过“新建数据库”对话框更改数据库文件的存放路径,几秒钟后在DataBase一栏中可见新建的数据库。

3.展开新建的数据库GradeManager,会发现数据库中已有了以下目录结构,称之为数据库对象:

●关系图

●表

●视图

●存储过程

●用户

●角色

●规则

●默认

●用户定义的数据类型

●用户定义的函数

4.选择数据库GradeManager的对象表节点,点击右键,选择弹出的快捷菜单中的“新建

表”选项,弹出建立基本表的窗口。

五、实验报告内容

1.写出在“企业管理器”中创建数据库和表的一般步骤。

六、思考题

1.SQL Server的数据库文件有几种?后缀名分别是什么?

2.SQL Server2000中,有哪几种整数数据类型?它们占用的存储空间是多少?取值范围分别是什么?

实验二SQL的数据定义

一、实验目的

通过查询分析器的环境执行SQL脚本语句方式,学会对基本表进行修改、删除和建立索引等基本操作。

二、实验准备

1.复习对基本表、索引的创建、删除和修改操作;

2.复习Create table、Create Index、Alter table、Drop table等命令;

3.完成习题中的各项操作。

三、实验内容

1.启动MSSQL Server服务,打开Enterprise Mamager 和Query Analyzer。

2.在Query Analyzer中用Create Table命令创建GradeManager数据库中的基本表:学生表(student)、课程表(course)、班级表(class)以及成绩表(grade)。

3.验证下列各项操作:

(1)学生表增加一属性Nation(民族),数据类型为varchar(20)。

(2)删除学生表中新增的属性Nation。

(3)为学生创建一个名为IX_Class的索引,以班级号排序。

(4)删除IX_Class索引。

四、实验步骤:

(1)打开“查询分析器”。

有两种方法可进入“查询分析器”,一种是执行如下操作:

开始→MS SQL Server组→查询分析器

另一种是在“企业管理器”界面中操作:工具→查询分析器。

(2)在“查询分析器”的工具栏的数据库下拉选择框中,选中GradeManager,使之成为当前操作的数据库,在编辑框中键入下列SQL语句,创建Worker表:

Create Table Worker

( wno char(4) primary key,

wname char(8) not null,

sex char(2) not null,

birthday datetime ) ;

(3)按编辑框上方的图形菜单中的绿色箭头按钮,执行编辑框中的sql语句。

(4)清空上面的sql语句,然后输入:

select * from worker ;

(5)按编辑框上方的图形菜单中的绿色箭头按钮,执行编辑框中的sql语句。结果为空。(6)在“企业管理器”中展开数据库→展开数据GradeManager→选中表,右击鼠标→选择刷新,可见右边出现新建的Worker表。

(7)选中Worker表,右击鼠标→打开表,可见Worker表中的记录为空。

四、实验报告内容

1.写出用Create Table语句对四个基本表的定义。

2.写出验证各项操作的SQL语句。

五、思考题

在定义基本表语句时,NOT NULL参数的使用有何作用?

实验三SELECT语句的使用

一、实验目的

掌握SELECT的基本使用格式,能使用SQL Server对表作简单查询和复杂查询。

二、实验准备

1.复习SELECT语句的基本适用格式。

2.复习SQL中五种库函数:A VG、SUM、MAX、MIN、COUNT。

3. 复习连接查询,嵌套查询,集合查询。

4.用SQL语句完成下列各项操作:

(1)找出所有被学生选修了的课程号。

(2)找出01311班女同学的个人信息。

(3)找出01311班、01312班学生的姓名、性别、出生年份。

(4)找出所有姓李的学生的个人信息。

(5)找出学生李勇所在班级的学生人数。

(6)找出课程名为操作系统的平均成绩、最高分、最低分。

(7)找出选修了课程的学生人数。

(8)找出选修了课程操作系统的学生人数。

(9)找出2000级计算机软件班的成绩为空的学生姓名。

(10)找出与李勇在同一个班级的学生信息。

(11)找出所有与学生李勇有相同选修课程的学生信息。

(12)找出年龄介于学生李勇的年龄和25岁之间的学生信息。

(13)找出选修了课程操作系统的学生学号和姓名。

(14)找出所有没有选修1号课程的学生姓名。

(15)找出选修了全部课程的学生姓名。

(16)查询选修了3号课程的学生学号及其成绩,并按成绩的降序排列。

(17)查询全体学生信息,要求查询结果按班级号升序排列,同一个班级学生按年龄降序排列。

(18)求每个课程号及相应的选课人数。

(19)查询选修了3门以上课程的学生学号。

三、实验内容

1.验证完成各项操作的SQL语句。

2.检验下面语句是否正确:

SELECT eno,basepay,service

FROM salary

WHERE basepay

四、实验报告内容

1.写出完成各项操作的SQL语句。

2.实习内容2的SQL语句是否正确?如果不正确,请写出正确的语句表达式。

3.使用存在量词[NOT]EXISTS的嵌套查询时,何时外层查询的WHERE条件为真,何时为假。

五、思考题

1.用UNION或UNION ALL将两个SELECT命令结合为一个时,结果有何不同?2.当既能用连接查询又能用嵌套查询时,应该选择哪种查询较好?为什么?

库函数能否直接使用在:SELECT 选取目标、HA VING子句、WHERE子句、GROUP BY 列名中?

3.什么情况下需要使用关系的别名?别名的作用范围是什么?

实验四SQL的数据更新和视图

一、实验目的

1.掌握用交互式SQL语句对已建基本表进行存储操作:修改、删除、插入、加深对数据的完整性的理解。

2.掌握创建、删除和查询视图的方法,验证可更新视图和不可更新视图。

二、实验准备

1.复习UPDATE,INSERT,DELETE语句格式的使用。

2.复习视图概念。

3.复习UPDATE、DELETE、INSERT语句与自查询的结合使用。

4.用SQL语句完成下列各项操作:

(1)对每个班,求学生的平均年龄,并把结果存入数据库。

(2)将01311班的全体学生的成绩置零。

(3)删除2001级计算机软件班全体学生的选课记录。

(4)学生李勇已退学,从数据库中删除有关他的记录。

(5)向成绩表中插入记录(”2001110”,”3”,80)。

(6)修改学号为“2001110”的学生的成绩为70分。

(7)删除学号为“2001110”的学生的成绩记录。

(8)建立00312班选修了1号课程的学生视图stu_01312_1。

(9)建立00312班选修了1号课程并且成绩不及格的学生视图stu_01312_2。

(10)建立视图stu_year,由学生学好、姓名、出生年份组成。

(11)查询1983年以后出生的学生姓名。

(12)查询00312班选修了1号课程并且成绩不及格的学生的学号、姓名、出生年份。

三、实验内容

1.验证各项操作的SQL语句。

2.建立一个视图Class_grade,用来反映每个班的所有选修课的平均成绩,并对其进行更新操作。

四、实验报告内容

1.写出完成各项操作的SQL语句。

2.实验内容2创建的视图能否进行更新?为什么?

五、思考题

DROP命令和DELETE命令的本质区别是什么?

实验五T_SQL语言结构

一、实验目的

1.掌握T_SQL的T_SQL的变量定义和类型及简单的流程控制语句的应用。

2.掌握T_SQL的条件语句,WHILE语句的应用。

二、实验准备

1.复习变量、注释语句、批处理语句GO、begin…end语句的定义格式。

2.复习语句条件语句,WHILE语句格式和功能。

三、实验内容

1.在查询分析器中输入下列各SQL语句,并运行,观察结果。

(1)DECLARE @myc1 INT,myc2 NVARCHAR(10), @myc3 CHAR(10)

SELECT @myc1=213

SET @myc2=‘abc’

SELECT @myc3=sname

FROM student

WHERE sno=‘2001101’

(2)USE GradeManage

GO

DECLARE @myc1 INT, @myc2 INT

SELECT @myc1=MAX(sage), @myc2=MIN(sage)

FROM student

GO

(3)USE GradeManage

GO

DECLARE @myc1 INT

SET @myc1=(SELECT COUNT(*) FROM student)

PRINT @myc1(4) USE GradeManage

GO

IF EXISTS(SELECT sno FROM student WHERE sno=‘2001101’)

BEGIN

DELETE

FROM student

WHERE sno=‘2001101’

PRINT ‘0100120 IS DELETE’

END

ELSE

PRINT ‘2001101NOT FOUND’

GO

2.在查询分析器中输入下列各SQL语句,并运行,观察结果。

(1)USE GradeManage

GO

IF (SELECT AVG(gmark)

FROM grade

GROUP BY sno

HAVING sno=‘2000101’)>=85

PRINT ‘2000101是优秀生’

ELSE

PRINT ‘2000101不是优秀生’

GO

(2)USE GradeManage

GO

SELECT Sno,Sname,

CASE Clno

WHEN ‘00311’ THEN ‘计算机软件’

WHEN ‘00312’ THEN ‘计算机应用’

WHEN ‘01311’ THEN ‘计算机软件’

END AS Classname

FROM student

(3) USE GradeManage

GO

UPDATE Grade

SET Gmark=

CASE

WHEN cno=‘1’ THEN g mark*1.1

WHEN cno=‘2’ THEN g mark*1.05

WHEN cno=‘3’ THEN g mark*1.1

END

GO

(4) DECLARE @s INT, @t INT

SET @s=1

SET @t=1

WHLIE @t<=5

BEGIN

SET @s=@s*@t

SET @t=@t+1

END

PRINT @s

四、实验报告内容

1.写出执行各项操作的SQL语句的结果或完成的功能。

2.对于SELECT赋值如果在一个查询中返回了多个值,那么查询结果中的哪一个值赋给了变量?

实验六数据的完整性约束的实现

一、实验目的

掌握SQL中实现数据完整性的方法,加深理解关系数据模型的三类完整性约束。

二、实验准备

1.复习“数据的完整性约束SQL定义”。

2.了解SQL Server中实体完整性、参照完整性和用户自定义完整性的实现手段。

3.成绩管理数据库的表结构说明中加入了完整性约束说明,如表3所示。用SQL语句完成表中的约束的说明。

表3:加了约束说明后的表结构

Class:

Grade:

验证建立学生表(student)、课程表(course)、班级表(class)以及成绩表(grade)的加了约束的SQL定义语句。

四、实验报告内容

1.写出完成学生表(student)、课程表(course)、班级表(class)以及成绩表(grade)的SQL定义语句。

2.SQL Server中提供了哪些方法实现实体完整性、参照完整性和用户自定义完整性的?

实验七存储过程和触发器

一、实验目的

1.掌握存储过程的概念、作用和创建方法。

2.掌握触发器的概念、作用和创建方法。

二、实验准备

1.复习存储过程的相关知识。

2.复习触发器的相关知识。

3.了解T_SQL中存储过程的参数调用。

4.完成下列两小题:

(1)创建一存储过程:根据学生学号查询学生选修课的成绩,学号作为参数输入。

(2)创建一存储过程:用来传入的参数是班级名,判断该班级中是否已有学生存在。

若有,存储过程返回1;若没有,存储过程返回0。

5.了解SQL Server中触发器的创建方法,特别是临时表Inserted和Deleted的使用。

6.完成下列两小题:

(1)为成绩管理数据库中的student表创建一触发器:当向表插入或删除记录时,修改class表中的相应班级的人数。

(2)为class表建一个更新触发器:当更新班长学号时,检查新输入的学号是否为同一班级的学生学号,若不是,给出适当的提示信息。

三、实验内容

1.验证在查询分析器中创建的两个存储过程,其SQL语法的正确性。

2.企业管理器中操作:展开GradeManager数据库,选择“存储过程”节点,从右侧窗口查看刚创建的两个存储过程,必要时可进行修改。

3.验证在查询分析器中创建的两个触发器,其SQL语法的正确性。

4.在企业管理器中操作:展开GradeManager数据库,右击鼠标,选择“所有任务”的“编辑触发器…”,查看刚创建的两个触发器,必要时可进行修改。

四、实验报告内容

1.写出建立两个存储过程的SQL定义语句。

2.写出建立两个触发器的SQL定义语句。

实验八SQL Server 应用编程初步

一、实验目的

1.利用Visual Basic作为前台开发环境,SQL Server作后台数据库。

2.了解ODBC和ADO的数据库访问技术。

二、实验准备

1.熟悉Visual Basic环境,会简单的界面设计。

2.复习ODBC的知识。

3.运行VB工程GradeManager.vbp。

三、实验内容

1.具体配置ODBC 。

2.连接数据源,利用VB的Data控件与SQL Sever数据库连接。

四、实验步骤:

1.具体配置ODBC:

(1)打开Windows 控制面板→性能和维护→管理工具→双击(ODBC)图标→弹出”ODBC 数据源管理器”窗口。

(2)选择“系统DSN”选项卡,单击“添加”按钮,弹出“创建新数据源”对话框。(3)从列表框选择”SQL Sever”,然后单击”完成“按钮。

(4)在对话框中设置如下:

名称:Test ,描述:测试,服务器 :local

(5)单击”下一步“按钮。

(6)设置数据源的登陆方式

a) 如果选择”使用网络登陆ID的Windows NT验证“单选按钮,则采用Windows的用户名和密码登陆SQL Sever服务器。

b)如果选择”使用用户登陆ID和密码的SQL Sever 验证“单选按钮,”登陆ID“和”密码“文本框将被激活。

(7)设置好验证方式后,单击”下一步“按钮。

(8)在对话框中,更改默认数据库为所要选择的数据库,还可以更改附加数据库文件名和ANSI标志。设置好单击”下一步“按钮。

(9)单击”完成“按钮,这时系统会弹出”ODBC Microsoft SQL Sever 安装“。(10)单击”测试数据源“按钮,如果正确创建”测试结果“对话框将显示测试成功信息。

此时Test 数据源设置成功。

2.连接数据源,利用VB的Data控件与SQL Sever数据库连接

(1)创建新标准“EXE”工程:grademanager.vbp

(2)设置主窗体属性:

名称:DATA ;

Boderstyle:1-Fixed Single

Caption:显示学生信息;

startUpPosition=2

(3) 添加窗体控件

在窗体DATA中添加控件Data,Lable1~ Lable5,Text1 ~ Text5.

(4) 设置Data控件的属性:

Connect:

ODBC;DATABASE=GradeManager;DSN=Test;UID=SA ;PWD=””;DefaultCursorType:1-ODBC游标

DefaultType:2-使用Jet

RecordsetType:1-Dynaset

RecordSource: SELECT * FROM Student

(5)设置TextBox控件的属性

Text1.DataSource=Data

Text1.DataField=sno

Text1.Text = 空

其他TextBox控件的属性设置类似。

(6) 保存Data.frm和GradeManager.vbp

四、实验报告内容

1.什么是ODBC?

2. 利用ADO Data 控件连接SQL Server数据库时属性设置和连接步骤。3.运行VB工程grademanager.vbp的实验结果。

相关主题
相关文档
最新文档