数据库原理及应用实验指导.docx

上传人:b****6 文档编号:9108713 上传时间:2023-02-03 格式:DOCX 页数:22 大小:522.79KB
下载 相关 举报
数据库原理及应用实验指导.docx_第1页
第1页 / 共22页
数据库原理及应用实验指导.docx_第2页
第2页 / 共22页
数据库原理及应用实验指导.docx_第3页
第3页 / 共22页
数据库原理及应用实验指导.docx_第4页
第4页 / 共22页
数据库原理及应用实验指导.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

数据库原理及应用实验指导.docx

《数据库原理及应用实验指导.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用实验指导.docx(22页珍藏版)》请在冰豆网上搜索。

数据库原理及应用实验指导.docx

数据库原理及应用实验指导

试验报告

报告人学号班级姓名

1、时间

2、地点

3、试验项目及内容

4、学生本人编写的SQL代码(为减少同学书写量或打印费用,只要求报告中包含章节号及SQL代码,实验指导书内容不必在实验报告中出现)

数据库原理及应用(应用本科)

 

实验指导书

 

-计算机信息教研室-

 

桂林工学院电子与计算机系

二○○六年九月

目录

实验1创建数据库与数据表……………………………………………………………2

实验2简单查询和连接查询……………………………………………………………10

实验3嵌套查询和集合查询……………………………………………………………12

实验4数据完整性………………………………………………………………………14

时间:

机房号:

得分:

实验1创建数据库与数据表

实验目的:

1.熟悉SQLSERVER环境,了解企业管理器和查询分析器的基本使用方法;

2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令;

3.掌握数据表的创建和数据记录的插入方法。

实验内容:

1.创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC三个数据表,各表中的数据如下所示:

学生STUDENT:

Sno

Sname

Ssex

Sage

Sdept

95001

李勇

M

20

CS计算机系

95002

刘晨

F

19

IS信息系

95003

王敏

F

18

MA数学系

95004

张立

M

18

IS信息系

课程COURSE:

Cno

Cname

Cpno

Ccredit

1

数据库

5

4

2

数学

2

3

信息系统

1

4

4

操作系统

6

3

5

数据结构

7

4

6

数据处理

2

7

C语言

6

4

选修SC:

Sno

Cno

Grade

95001

1

92

95001

2

85

95001

3

88

95002

2

90

95002

3

80

2.创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J和供应情况表SPJ四个数据表,各表中数据如下所示。

供应商S:

SNO

SNAME

CITY

S1

精益

天津

S2

万胜

北京

S3

东方

北京

S4

丰泰隆

上海

S5

康健

南京

零件P:

PNO

PNAME

COLOR

WEIGHT

P1

螺母

12

P2

螺栓

绿

17

P3

螺丝刀

14

P4

螺丝刀

14

P5

凸轮

40

P6

齿轮

30

工程项目J:

JNO

JNAME

CITY

J1

三建

北京

J2

一汽

长春

J3

弹簧厂

天津

J4

造船厂

天津

J5

机车厂

唐山

J6

无线电厂

常州

J7

半导体厂

南京

供应情况SPJ:

SNO

PNO

JNO

QTY

S1

P1

J1

200

S1

P1

J3

100

S1

P1

J4

700

S1

P2

J2

100

S2

P3

J1

400

S2

P3

J2

200

S2

P3

J4

500

S2

P3

J5

400

S2

P5

J1

400

S2

P5

J2

100

S3

P1

J1

200

S3

P3

J1

200

S4

P5

J1

100

S4

P6

J3

300

S4

P6

J4

200

S5

P2

J4

100

S5

P3

J1

200

S5

P6

J2

200

S5

P6

J4

500

实验步骤:

1.用企业管理器创建教学管理“JXGL”数据库。

(1)连接“服务器管理器”。

选择“开始/程序/MicrosoftSQLServer/服务管理器”,进入SQL服务管理器窗口,如图所示。

选择要启动的服务器和准备启动的服务,单击“开始/继续”按钮,开始启动服务,稍后绿灯亮,启动成功。

(2)打开“企业管理器”。

选择“开始/程序/MicrosoftSQLServer/企业管理器”,就出现企业管理器窗口。

企业管理器是SLQServer的一个最重要的管理工具,它提供了一个遵从Microsoft管理控制台(MMC)的用户界面,以层叠形式显示出所有SQLServer对象,使用企业管理器几乎可以完成所有的管理工作。

在控制台根目录窗口中展开“控制台根目录”树,依次展开“MicrosoftSQLServers/SQLServer组/(Local)(WindowsNT)/数据库”文件夹,如图所示。

图SQL服务管理器图企业管理器

(3)创建教学管理“JXGL”数据库。

选择“操作”菜单中的“新建数据库”命令,进入“数据库属性窗口”,在“常规”标签“名称”框中输入“JXGL”,其他选项采用默认值,如图所示。

单击“确定”按钮,系统自动创建JXGL数据库。

(4)在JXGL数据库中建立STUDENT表,并插入学生记录。

在控制台根目录窗口中展开“数据库”文件夹,就会看到新建立的数据库“JXGL”,如图所示,鼠标右击“表”图标,在弹出的快捷菜单中选择“新建表”命令,启动“表设计器”,在表设计器窗口上部网格中,每一行描述了表中的一个字段,每一行有四列,分别描述了列名、数据类型、长度和允许空等属性,将STUDENT表的各列属性依次输入到网格中去,如图所示。

图创建数据库窗口图“新建表”命令

图表设计器图设置主键

然后,可以右击列名Sno,选择“设置主键”命令,其左侧将出现一个钥匙样图标,如图所示。

单击表设计器的工具栏中的“保存”按钮,出现保存对话框,输入表名“STUDENT”,如图所示,并按“确定”按钮。

图保存对话框

在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图所示。

然后在出现的表格中依次输入新记录,如图所示。

图“返回所有行”命令

图输入数据

(5)同样方法,可以在JXGL数据库中建立COURSE表,并插入记录。

(6)同样方法,可以在JXGL数据库中建立SC表,并插入记录。

(7)查看三个表中的内容。

在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图所示,即可查年STUDENT表中的内容。

同样方法,可以查看COURSE表和SC表中的内容。

(8)修改数据表结构。

①向STUDENT表增加“入学时间”列,其数据类型为日期型。

在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“设计表”命令,即进入表设计器窗口,如图所示,即可继续增加“入学时间”列,数据类型选择为“datetime”型。

单击工具栏中的“保存”按钮。

在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图所示,即可查年STUDENT表中的内容,此时Scome列值都为NULL。

②删除“入学时间”列。

在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“设计表”命令,即进入表设计器窗口,右击上方网格中的“Scome”,选择为“删除列”命令。

单击工具栏中的“保存”按钮。

在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图所示,看到Scome列已被删除。

(9)删除数据表。

在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“删除”命令,即可删除STUDENT表。

同样方法,可以删除其他指定表。

(10)删除数据库

在企业管理器中,右击JXGL数据库,选择“删除”命令,即可删除JXGL数据库。

2.用查询分析器创建教学管理“JXGL”数据库。

(1)连接“服务器管理器”。

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

选择“开始/程序/MicrosoftSQLServer/查询分析器”,就出现登录窗口,如图所示,在“SQLServer”栏中输入登录的服务器名称,这里的“.”表示是本地服务器。

使用SQLServer身份验证模式,并在登录名栏中输入用户名,然后在密码栏中输入密码,这里的用户名和密码都输入“sa”。

最后单击“确定”按钮连接到数据库服务器,出现如图所示的查询分析器窗口。

图登录窗口图查询分析器

查询分析器界面如图所示,它由标题栏、菜单栏、工具栏、对象浏览窗格、查询窗格、查询结果窗格等组成。

其中,查询窗格是编辑和执行SQLServer程序的地方,查询结果窗格是浏览查询结果的地方,结果可以“文本显示”和“表格显示”两种方式显示出来。

(3)创建教学管理“JXGL”数据库。

在查询窗格中输入如下命令,然后单击“运行”钮执行该命令。

CREATEDATABASEJXGL;

(4)清空查询窗格后,在JXGL数据库中建立STUDENT表,并插入记录,然后执行。

CREATETABLESTUDENT

(Snochar(5)notnullunique,

Snamechar(20)notnullunique,

Ssexchar

(1),

Sageint,

Sdeptchar(20));

INSERTINTOSTUDENTVALUES(‘95001’,’李勇’,’M’,20,’CS’);

INSERTINTOSTUDENTVALUES(‘95002’,’刘晨’,’F’,19,’IS’);

INSERTINTOSTUDENTVALUES(‘95003’,’王敏’,’F’,18,’MA’);

INSERTINTOSTUDENTVALUES(‘95004’,’张立’,’M’,18,’IS’);

(5)清空查询窗格后,JXGL数据库中建立COURSE表,并插入记录,然后执行。

CREATETABLECOURSE

(Cnochar

(2)notnullPRIMARYKEY(Cno),

Cnamechar(20),

Cpnochar

(2),

Ccreditsmallint);

INSERTINTOCOURSEVALUES(‘1’,’数据库’,’5’,4);

INSERTINTOCOURSEVALUES(‘2’,’数学’,’’,2);

INSERTINTOCOURSEVALUES(‘3’,’信息系统’,’1’,4);

INSERTINTOCOURSEVALUES(‘4’,’操作系统’,’6’,3);

INSERTINTOCOURSEVALUES(‘5’,’数据结构’,’7’,4);

INSERTINTOCOURSEVALUES(‘6’,’数据处理’,’’,2);

INSERTINTOCOURSEVALUES(‘7’,’C语言’,’6’,4);

(6)清空查询窗格后,JXGL数据库中建立SC表,并插入记录,然后执行。

CREATETABLESC

(Snochar(5)notnull,

Cnochar

(2)notnull,

Gradesmallint,

PRIMARYKEY(Sno,Cno),

FOREIGNKEY(Sno)REFERENCESSTUDENT(Sno),

FOREIGNKEY(Cno)REFERENCESCOURSE(Cno));

INSERTINTOSCVALUES(‘95001’,‘1’,92);

INSERTINTOSCVALUES(‘95001’,‘2’,85);

INSERTINTOSCVALUES(‘95001’,‘3’,88);

INSERTINTOSCVALUES(‘95002’,‘2’,90);

INSERTINTOSCVALUES(‘95002’,‘3’,80);

(7)查看三个表中的内容。

分别执行以下命令,查看STUDENT、COURSE和SC数据表中的内容。

SELECT*FROMSTUDENT;

SELECT*FROMCOURSE;

SELECT*FROMSC;

(8)修改数据表结构。

①向STUDENT表增加“入学时间”列,其数据类型为日期型,用SELECT命令查看表中内容。

ALTERTABLESTUDENTADDSCOMEDATETIME;

SELECT*FROMSTUDENT;

②删除“入学时间”列,再用SELECT命令查看表中内容。

ALTERTABLESTUDENTDROPCOLUMNSCOME;

SELECT*FROMSTUDENT;

(9)删除数据表。

DROPTABLESC;

DROPTABLESTUDENT;

DROPTABLECOURSE;

(10)删除数据库命令。

切换到其他任意数据库,然后可用如下命令删除JXGL数据库。

DROPDATABASEJXGL;

3.创建供应系统“GYXT”数据库。

(注:

可采用企业管理器和查询分析器两种方法创建。

下面写出实现如下操作的SQL语句:

(1)创建供应系统“GYXT”数据库。

 

(2)建立供应商表S。

 

(3)建立零件表P。

 

(4)建立工程项目表J。

 

(5)建立供应情况表SPJ。

 

时间:

机房号:

得分:

实验2简单查询和连接查询

实验目的:

1.熟练掌握SQLServer查询分析器的使用方法,加深对标准SQL查询语句的理解。

2.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

实验内容:

1.基于实验一创建的教学管理JXGL数据库,参考教材查询中的SQL操作实例,实现数据的基本查询操作。

2.基于实验一创建的供应系统GYXT数据库,参考教材查询中的SQL操作实例,实现数据的基本查询操作。

实验步骤:

首先,写出下列操作的SQL语句,然后进入到SQLServer查询分析器中调试结果,并将结果抄写下来。

1.在教学管理JXGL数据库中进行如下操作:

(1)求数学系学生的学号和姓名。

 

(2)求选修了课程的学生学号。

 

(3)求选修了数学课的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

 

(4)求选修数学课其且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数输出。

 

(5)求数学系或计算机系姓刘的学生的信息。

 

(6)求缺少了成绩的学生的学号和课程号。

 

2.在供应系统GYXT数据库中进行如下操作:

(1)求供应工程J1零件的供应商号SNO。

 

(2)求供应工程J1零件P1的供应商号SNO。

 

(3)统计每种零件的供应总量。

 

时间:

机房号:

得分:

实验3嵌套查询和集合查询

实验目的:

1.熟练掌握SQLServer查询分析器的使用方法,加深对标准SQL查询语句的理解。

2.熟练掌握数据查询中的嵌套、分组、统计、计算和组合的操作方法。

实验内容:

1.基于实验一创建的教学管理JXGL数据库,参考教材查询中的SQL操作实例,实现数据的高级查询操作。

2.基于实验一创建的供应系统GYXT数据库,参考教材查询中的SQL操作实例,实现数据的高级查询操作。

实验步骤:

首先,写出下列操作的SQL语句,然后进入到SQLServer查询分析器中调试结果,并将结果抄写下来。

1.在教学管理JXGL数据库中进行如下操作:

(1)求选修了数学的学生的学号和姓名。

 

(2)求数学课程成绩高于李勇的学生学号和成绩。

 

(3)求其他系中年龄小于计算机系年龄最大者的学生。

 

(4)求其他系中比计算机系学生年龄都小的学生。

 

(5)求选修了数学课的学生姓名。

 

(6)求没有选修数学课的学生姓名。

 

2.在供应系统GYXT数据库中进行如下操作:

(1)求供应工程J1红色零件的供应商号SNO。

 

(2)求零件供应总量在1000种以上的供应商名字。

 

时间:

机房号:

得分:

实验4数据完整性

实验目的:

1.了解SQLServer用约束来维护数据完整性的机制。

2.掌握在企业管理器和查询分析器中如何创建、使用及删除约束的方法。

实验内容:

1.基于实验一创建的教学管理JXGL数据库,实现约束的创建、查看和删除操作。

2.创建人事关系RSGX数据库及其中的职工数据表和部门数据表,并实现完整性约束条件的定义。

实验步骤:

约束是SQLServer提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性。

常用的约束是NOTNULL(非空)、CHECK(检查)、UNIQUE(惟一)、PRIMARYKEY(主键)、FOREIGNKEY(外键)和DEFALT(默认)约束。

1.在教学管理JXGL数据库中进行如下操作:

(1)建立一个CITY表(CityNo,CityName),将CityNo指定为主键。

企业管理器方法:

①在JXGL数据库中创建CITY表,其方法见实验1。

②打开企业管理器,展开JXGL数据库下的“表”文件夹,在右边的详细窗格中选择要创建约束的表CITY,右击该表,选择“设计表”命令,启动表设计器。

在表设计器中,右击需要设为主键的字段CityNo,选择“设置主键”命令其左侧将出现一个钥匙样图标。

设置完毕,关闭表设计器。

查询分析器方法:

①用SQL语句创建主键,可使用CREATETABLE命令完成:

CREATETABLECITY

(CityNoCHAR

(2)CONSTRAINTc1PRIMARYKEY,

CityNameVARCHAR(30)NOTNULL);

②若创建表时没有设置主键,也可以使用ALTERTABLE命令为已存在的表创建主键约束:

ALTERTABLECITYADDCONSTRAINTc1PRIMARYKEY(CityNo);

其中c1为主键约束名称。

(2)为JXGL数据库中的CITY表,为其“CityName”创建惟一约束。

企业管理器方法:

①在企业管理器中,选择设置惟一约束的CITY表,打开表设计器。

②在表设计器中,右击CityName字段,选择“索引/键”命令,出现“属性”对话框,并进入“索引/键”选项卡。

③在该选项卡中,单击“新建”按钮,然后在“索引名”文本框中输入惟一约束名称,再从列名选项的下拉列表框中选择字段名称(如“CityName”),最后选择“创建UNIQUE”复选框和“约束”单选框,如图所示。

单击“关闭”按钮,完成惟一约束的创建。

图创建惟一约束对话框图设置检查约束

查询分析器方法:

为已存在的表创建惟一约束,SQL语句如下:

ALTERTABLECITYADDCONSTRAINTc2UNIQUE(CityName);

(3)为JXGL数据库中的SC表,为其“GRADE”创建检查约束。

企业管理器方法:

①在企业管理器中,选择设置检查约束的SC表,打开表设计器。

②在表设计器中,右击GRADE字段,选择“CHECK约束”命令,出现“属性”对话框,并进入“CHECK约束”选项卡。

③在该选项卡中,单击“新建”按钮,然后在“约束名”文本框中输入惟一约束名称,再在“约束表达式”文本框中输入约束条件“GRADE>=0ANDGRADE<=100”,如图所示。

单击“关闭”按钮,完成检查约束的创建。

查询分析器方法:

为已存在的表创建检查约束,SQL语句如下:

ALTERTABLESCADDCONSTRAINTc3CHECK(GRADE>=0ANDGRADE<=100);

(4)为JXGL数据库中的STUDENT表,为其“Ssex”创建默认约束’M’。

企业管理器方法:

①在企业管理器中,选择设置默认约束的STUDENT表,打开表设计器。

②在表设计器中,选择Ssex字段,在默认值栏中输入“’M’”即可,如图所示。

单击“关闭”按钮,完成默认约束的创建。

查询分析器方法:

为已存在的表创建默认约束,SQL语句如下:

ALTERTABLESTUDENTADDCONSTRAINTc4DEFAULT‘M’FORSsex;

图创建默认约束图创建外键约束

(5)为JXGL数据库中的SC表,为其“Sno”创建外键约束。

企业管理器方法:

①在企业管理器中,选择设置外键约束的SC表,打开表设计器。

②鼠标右击,选择“关系”命令,打开“属性”对话框的“关系”选项卡。

③在该选项卡中,单击“新建”按钮,从主键表下拉列表中选择外键引用表STUDENT,并在其下拉列表框中选择外键引用的SNO列;在外键表下拉表框中选择要创建外键的SC表,并从其下拉表框中选择要创建外键约束的SNO列,如图所示。

单击“关闭”按钮,完成外键约束的创建。

查询分析器方法:

为已存在的表创建外键约束,SQL语句如下:

ALTERTABLESCADDCONSTRAINTc5FOREIGNKEY(Sno)REFERENCESSTUDENT(Sno);

(6)查看约束的定义

在企业管理器中,选择要查看约束的表,打开表设计器,单击鼠标右键,分别选择“索引/键”、“关系”、“CHECK”命令,可以查看各类约束。

(7)删除约束

企业管理器方法:

在企业管理器的表设计器中,可以删除主键、去掉默认值。

单击鼠标右键,分别选择“索引/键”、“关系”、“CHECK”命令,可以删除各类约束。

查询分析器方法:

删除约束的SQL语句格式为:

ALTERTABLE<表名>DROPCONSTRAINT<约束名>;

例如,删除上例在JXGL数据库中为SC表的“Sno”列创建的外键约束。

ALTERTABLESCDROPCONSTRAINTc5;

2.创建人事关系RSGX数据库,并定义职工和部门两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;

部门(部门号,名称,经理名,电话),其中部门号为主码;

要求在模式中完成以下完整性约束条件的定义:

(1)定义每个模式的主码;

(2)定义参照完整性;

(3)定义职工年龄不得超过60岁。

 

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

当前位置:首页 > 考试认证 > 其它考试

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

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