数据库实验教案_第1页
数据库实验教案_第2页
数据库实验教案_第3页
数据库实验教案_第4页
数据库实验教案_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一启动SQLServer2000和建库、表

一、实验目的

SQLServer2000的启动和管理工作由服务管理器和企业管理器来实现。

本次实验了解SQLServer2000的启动,熟悉如何在SQLServer2000图形环境下建立

数据库和表。学会安装SQLServer2000的启动和建库、表的操作。

二、实验内容

1.启动数据库服务软件SQLServer2000:

在程序菜单中选择MicrosoftSQLServer,如图1-1所示:

图1-1

再选中服务管理器,如图1-2所示:

图1-2

点击服务管理器后,出现SQLServer服务管理器,如图1-3所示:

图1-3

点击“开始/继续”按钮,启动SQLServer2000数据库服务。

启动成功后,在时钟旁边出现一个符号,如图1-4所示。

图1-4

2.在SQLServer2000中建立数据库:

在程序菜单中选择MicrosoftSQLServer,如图1-5所示:

图1-5

再选中企业管理器,如图1-6所示:

图1-6

点击企业管理器后,出现企业管理器的主界面,如图1-7所示:

图1-7

点击左边树状控制栏的+/-号可以打开和关闭SQLServer组中的本地服务项目,在选中数据

库服务项目后,单击鼠标右键,出现数据库的菜单,如图1-8所示:

图1-8

点击新建数据库,出现新建数据库窗口,如图1-9所示:

图1-9

输入数据库名称:Test,点击数据文件选项卡,如图1-10所示:

图1-10

在数据文件中,你可以设定数据文件的名称,所在目录以及文件的大小等信息。

完成后点击事务日志选项卡,如图1-11所示:

图1-11

事务日志中,你可以设定日志文件的名称,所在目录以及文件的大小等信息。

接受系统的缺省值,点击确定按钮,完成数据库的新建,如图1-12所示。

图1-12

3.在Test数据库上建立表:

点击数据库Test前面的+号,打开数据库的各种属性,如图1-13所示:

图1-13

选中表的属性,单击鼠标右键,出现表的菜单,如图1-14所示:

图1-14

点击新建表按钮,出现新建表窗口,如图1-15所示:

图1-15

输入列名,数据类型,长度等信息,点击图标,出现选择表名窗口,如图1-16所示:

图1-16

输入表名,点击确定按钮,将新建的表存盘。

三、实验任务

1.用数据库SQLServer2000的服务管理器启动数据库服务;

2.用数据库SQLServer2000的企业管理器建立一个数据文件名为demodata、大小50M,日

志文件名为demolog、大小25M的新数据库,该数据库名为Demo。

3.在数据库Demo上,建立如下所示的表customer:

字段名类型长度含义

customidvarchar17顾客编号

namevarchar10姓名

sexvarchar2性别

ageint4年龄

xfgdec10,2消费金额

addressvarchar50地址

memovarchar100备注

实验二SQLServer2000查询分析器

一、实验目的

SQLServer2000的查询分析器是一种特别用于交互式执行SQL语句和脚本的极好的工具。

本次实验了解SQLServer2000查询分析器的启动,熟悉如何在SQLServer2000查询

分析器中建表、插入记录、查询记录。学会SQLServer2000的查询分析器中建表、插入记

录、查询记录。

二、实验内容

1.启动数据库服务软件SQLServer2000的查询分析器:

在程序菜单中选择MicrosoftSQLServer,如图2-1所示:

图2-1

再选中查询分析器,如图2-2所示:

图2-2

点击查询分析器后,出现连接到SQLServer窗口,如图2-3所示:

图2-3

点击按钮,出现选择服务器窗口,如图2-4所示。

图2-4

选择本地服务(Local),点击确定按钮。

再点击连接到SQLServer窗口的确定按钮。出现SQL查询分析器主界面,如图2-5所示。

图2-5

选择查询菜单,点击更改数据库,如图2-6所示。

图2-6

出现选择数据库窗口,如图2-7所示。

图2-7

选择在上次实验中建立的数据库Test,点确定按钮。

2.在查询分析器中建立表:

在查询分析器的查询窗口中输入SQL语句,如图2-8所示。

图2-8

点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图2-9所示。

图2-9

提示命令成功完成,或者报告出错信息。

3.查询分析器中向表添加数据:

在查询分析器的查询窗口中输入SQL语句,如图2-10所示。

图2-10

点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图2-11所示。

图2-11

1.从表中查询数据:

在查询分析器的查询窗口中输入SQL语句,如图2-12所示。

图2-12

点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图2-13所示。

图2-13

三、实验任务

1.打开数据库SQLServer2000的查询分析器,用SQL语言建表student,表结构如下图所

示:

字段名类型长度含义

idvarchar17学生编号

namevarchar10姓名

sexvarchar2性别

ageinteger年龄

scorenumeric6,2总成绩

2.用SQL语言向表student插入如下6条记录:

A0001赵一男20580.00

B0002钱二女19540.00

C0003孙三男21555.50

D0004李四男22480.00

E0005周五女20495.50

F0006吴六男19435.00

3.练习查询语句,查找年龄大于等于20岁,成绩低于500分的记录。

4.createtablestudent(idvarchar(17),namevarchar(10),sexvarchar(2),age

integer,scorenumeric(6,2))

5.

6.droptablestudent

7.insertintostudentvalues('A0001','赵一','男',20,580.00)

8.insertintostudentvalues('B0002','钱二','女',19,540.00)

9.insertintostudentvalues('C0003','吴三','男',19,435.00)

insertintostudentvalues('D0006','李四','男',22,480.00)

insertintostudentvalues('E0006','周五','女',20,495.50)

insertintostudentvalues('F0006','吴六','男',19,435.00)

select*fromstudent

select*fromstudent

whereage>=20andscore<500;

实验三数据库模式设计及建立

一、实验目的

1、让学生自己完成数据库模式的设计。

2、用SQL命令建立数据库表。

3、用可视化环境建立数据库表。

二、实验设备

1、安装能进行SQL操作的微机。

三、实验内容及说明

1、建立学生数据库模式。

学生表:student(sno,sname,ssex,sage,sdept)

学生学号姓名性别年龄所在系

sno长度为4的字符串

sname长度为8的字符串

ssex长度为2的字符串

sage短整数

sdept长度为10的字符串

其中sno为主码。

2、建立课程数据库模式。

课程表:course(cno,cname,ccredit)

课程课程号课程名学分

cno长度为4的字符串

cname长度为10的字符串

ccredit短整数

其中cno为主码。

3、建立选课数据库模式。

选课表:sc(sno,cno,grade)

选课学号课程号成绩

sno长度为4的字符串

cno长度为4的字符串

grade短整数

其中(sno,cno)为主码;sno为外码和student表对应;,cno为外码和course表对应;grade

的值或空或为0—100之间。

四、实验步骤

1、用SQL语言对上述1、2、3三个表进行建立。

createschemastudent

createtablestudent(snovarchar(4)primarykey,snamevarchar(8),ssex

varchar(2),sagesmallint,sdeptvarchar(10))

createschemacourse

createtablecourse(cnovarchar(4)primarykey,cnamevarchar(10),ccredit

smallint,)

createschemasc

createtablesc(cnovarchar(4),snovarchar(4),gradesmallint,primary

key(sno,cno),foreignkey(cno)referencescourse(cno),foreignkey(sno)references

student(sno))

2、用可视化环境进行上述1、2、3三个表的操作。

五.思考题

1.SQL语言和可视化环境的优势各是什么?

2.SQL如何定义主码、外码和完整性约束?

实验四数据库中数据的更新

一.实验目的

1.对实验一已建好的student、course、sc表进行进一步的操作。

2.让学生充分体会SQL语言的灵活多变,功能强大,SQL语言之所以成为关系数据库语言的

原因。

二.实验设备

1.安装能进行SQL操作的微机。

三.实验内容及说明

本实验是在实验一的基础上,对实验一中的三个表进行更新操作。

四.实验步骤

1.在student表中输入6条记录。

2.在course表中输入4条记录。

3.在sc表中输入10条记录,注意有些课程可有多人选,有些课程可能没人选。

4.练习数据的删除和修改。

5.练习多个记录的增加、删除和修改。

6.给student表增加一个地址(address)属性。

7.给student表删除地址(address)属性。

8.给sc表建立索引,先sno按升序、再按cno降序。

9.删除上述的索引。

10.建立视图view1,要求有sno,sname,cname,grade四个字段。

11.建立视图view2,要求有sno,ssex,sage三个字段。

12.insertintostudentvalues('5121','张三','m',20,'cs')

13.insertintostudentvalues('5122','李四','f',19,'cs')

14.insertintostudentvalues('5123','王五','f',18,'ma')

15.insertintostudentvalues('5124','赵二','m',20,'ma')

16.insertintostudentvalues('5125','李谷一','m',19,'is')

deletefromstudentwheresname='linyong'

updatestudent

setsname='liyong'wheresno='5121'

select*fromstudent

altertablestudent

addaddressvarchar(9)

altertablestudentdropcolumnaddress

createindexind1onsc(snoasc)

createindexind2onsc(cnodesc)

dropindexind1onstudent

deletefromcoursewherecno='5121'

insertintoscvalues('1','5121',92)

insertintoscvalues('2','5121',85)

insertintoscvalues('3','5121',88)

insertintoscvalues('2','5122',90)

insertintoscvalues('3','5123',80)

select*fromsc

select*fromcourse

insertintocoursevalues('1','database',4)

insertintocoursevalues('2','math',2)

insertintocoursevalues('3','inforsys',4)

insertintocoursevalues('4','os',3)

insertintocoursevalues('5','construct',4)

createviewv1(学号,姓名,分数)

as

selectsno,sname,gradefromsc

wheregrade>69andsex=”f”

selectsno,ssex,sage

fromstudent)

select*fromview2

五.思考题

1.SQL语言和可视化环境在数据的增、删、改方面的优势?

2.注意检测键码约束、外码约束、非空约束、唯一约束、取值约束等各种约束在输入数据及

数据的删除、修改时的作用。

3、比较view1和view2两个视图在进行更新操作时的不同。

实验五数据库中数据的查询

一.实验目的

1.对实验一、实验二已建好的student、course、sc表进行查询操作。

2.本实验可充分体会SQL语言的结构化查询功能,让学生充分体会SQL语言的灵活多变,

功能强大。

二.实验设备

1.安装能进行SQL操作的微机。

三.实验内容及说明

在实验一和实验二的基础上,进行数据库的查询,充分体会SQL语言的强大功能。

四.实验步骤

1.简单查询:

(1)查询全体学生的学号和姓名。

(2)查询全体学生的详细记录。

(3)查询全体学生的姓名和出生年份。

(4)查询选修了课程的学生的学号。

(5)查询计算机系的学生的姓名。

2.查询年龄在20岁以下的计算机系的学生的学号和年龄。

(6)查询年龄在20—22岁的学生的学号。

(7)查询信息系、计算机系和外语系的学生的信息。

(8)查询姓“王”的学生的信息。

(9)查询选修了3号课程的学生的学号及成绩,结果按分数的降序排列。

(10)查询学生总人数。

(11)查询选修1号课程的学生的最高分。

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

selectsname,snofromstudent

select*fromstudent

selectsname姓名,2010-sage年龄

fromstudent

selectcno

fromsc

wherestudent.sno=sc.sno

selectsage,snofromstudentwheresdept='ma'andsage<20

select*fromstudentwheresname='zhangli'

selectsc.sno,gradefromstudent,sc

wherestudent.sno=o=’3’

orderbygrade

selectCOUNT(sno)

fromstudent

select*

fromstudent

wherestudent.snamelike'王%'

selectMAX(grade)

fromsc

2.连接查询

(1)查询每个学生及其选修课程的情况。

(2)查询选修2号课程且分数在90分以上的所有学生。

(3)查询每个学生的学号、姓名、选课名及成绩。

selectstudent.sno,student.sname,student.ssex,sage,sdept,sc.grade,o

fromstudent,sc

wherestudent.sno=sc.sno

selectstudent.sname,student.sno

fromstudent,sc

o='2'andgrade>90

selectstudent.sno,student.sname,ame,sc.grade

fromstudent,sc,course

wherestudent.sno=o=o

3.嵌套查询、

(1)查询与“张三”在同一系的学生。

(2)查询选修了课程名为“数据库”的学生学号和姓名。

select*fromstudent

wheresdept=(

selectsdept

fromstudent

wheresname='张三')

selectsno,snamefromstudent

wherestudent.sno=(

selectsc.sno

fromsc

o=(

ofromcourse

wherecname='database')

)

4.EXISTS查询

(1)查询没有选修1号课程的学生的姓名。

(2)查询选修了所有课程的学生的姓名。

selectsname

fromstudent

wherenotexists(select*fromscwheresno=student.snoandcno='1')

selectsnamefromstudent

wherenotexists(select*

fromcourse

wherenotexists

(select*fromsc

wheresno=student.sno

andcno=o)

)

五.思考题

1.SELECT语句的一般格式是什么?

2.体会SELECT语句的强大功能。

Select[all|distinct]

From<表名或视图名>

[where<条件表达式>]

[groupby<列名>]

[orderby<列名>]

实验六SQL语言的DDL

一、实验目的

SQL(StructuredQueryLanguage)语言是关系数据库的标准语言。是一种介于关系代数

与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能

极强的关系数据库语言。

从本次实验开始,我们将详细的学习SQL的DDL(数据定义语言)、DML(数据操纵语言)、

DCL(数据控制语言)。

本次实验了解DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,学会SQLServer

2000的查询分析器中用DDL语言进行对表、索引、视图的增加、删除和改动。

二、实验内容

1.启动数据库服务软件SQLServer2000的查询分析器,用如下语句对表进行操作,详细

的语法格式参看课本相应章节:

CreateTable建表

DropTable删除表

AlterTable更改表

2.用如下语句对视图进行操作,详细的语法格式参看课本相应章节:

CreateView建视图

DropView删除视图

3.如下语句对索引进行操作,详细的语法格式参看课本相应章节:

CreateIndex建立索引

DropIndex删除索引

三、实验任务

1.打开数据库SQLServer2000的查询分析器,用CreateTable建表aa,表结构如下所示:

字段名类型长度含义

Aa1Varchar20字段1

Aa2Int字段2

Aa3Dec10,2字段3

2.用CreateTable建表bb,表结构如下所示:

字段名类型长度含义

Bb1Varchar30字段1

Bb2Int字段2

Bb3Dec6,2字段3

3.用DropTable删除表aa。

4.用AlterTable修改表bb,添加一个字段Bb4,类型Varchar,长度20。

5.用CreateView对表Bb的Bb1和Bb4建立一个视图Viewbb,字段名为Viewbb1和Viewbb2。

6.DropView删除视图Viewbb。

7.用CreateIndex对表Bb的Bb3字段建立一个升序索引,索引名Indexbb。

8.用DropIndex删除索引Indexbb。

9.将以上的SQL语言存盘。

createtableaa(Aa1varchar(20),Aa2int,Aa3dec(10,2))

createtablebb(Bb1varchar(30),Bb2int,Bb3dec(6,2))

droptableaa

altertablebb

addBb4varchar(20)

createviewviewbb(viewbb1,viewbb2)

as

selectBb1,Bb4

fromBb

dropviewviewbb

createindexindexbbonBb(Bb3asc)

dropindexindexbbonBb

实验七SQL语言的DML

一、实验目的

SQL的数据操纵功能通过DML(数据库操作语言)实现。DML包括数据查询和数据更新两种

数据操作语句。其中,数据查询指对数据库中的数据查询、统计、分组、排序等操作;数据

更新指数据的插入、删除和修改等数据维护操作。

本次实验了解DML语言的INSERT、UPDATE、DELETE对数据的操作,学会SQLServer2000

的查询分析器中用DML语言对表中的数据进行插入、删除和修改。

二、实验步骤

1.打开数据库SQLServer2000的查询分析器,用CreateTable建表cc,表结构如下所

示:

字段名类型长度含义

Cc1Varchar20字段1

Cc2Int字段2

Cc3Dec10,2字段3

Cc4Varchar60字段4

2.用INSERT语句对表cc插入6条记录

Cc1Cc2Cc3Cc4

赵一20580.00宿舍14-5-5

钱二19540.00宿舍5-4-9

孙三21555.50宿舍21-5-15

李四22480.00宿舍8-4-22

周五20495.50宿舍25-4-8

吴六19435.00宿舍4-5-12

3.用UPDATE语句,将表cc中cc2小于等于20的记录,把cc3字段加5。

4.用DELETE语句将表cc中cc2大于等于20和cc3大于等于500的记录删除。

5.将以上的SQL语言存盘。

6.createtablecc(Cc1varchar(20),Cc2int,Cc3dec(10,2),Cc4varchar(40))

7.insertintoCcvalues('赵一',20,580.00,'宿舍-5-5')

8.insertintoCcvalues('钱二',19,540.00,'宿舍-4-9')

9.insertintoCcvalues('孙三',21,555.50,'宿舍-5-15')

10.insertintoCcvalues('李四',22,480.00,'宿舍-4-22')

11.insertintoCcvalues('周五',20,495.50,'宿舍-4-8')

12.insertintoCcvalues('吴六',19,435.00,'宿舍-5-12')

updateCc

setCc3=Cc3+5

whereCc2=20

delete

fromccwhereCc2>20andCc3>=500

实验八SQL语言的DCL

一、实验目的

SQL的数据控制通过DCL(数据控制语言)实现。DCL通过对数据库用户的授权和收权命令

来实现有关数据的存取控制,以保证数据库的安全性。

本次实验了解DCL语言的GRANT和REVOKE语句对数据库存取权限的控制,学会SQL

Server2000的查询分析器中用DCL语言对数据库存取权限进行设定。

二、实验步骤

1.用Windows2000的Administrator(系统管理员)用户登录系统,建立一个新用户DCL,用户

名和口令都相同。

2.打开数据库SQLServer2000的查询分析器,用GRANT语句将ALLPRIVILEGES的系统特

权授给用户DCL。

3.注销用户Administrator,用DCL登录系统,打开数据库SQLServer2000的查询分析器,

用CREATEDATABASE语句建立一个新的数据库DCLDemo。

4.在数据库DCLDemo上建立一个表Abc,表结构如下图所示:

字段名类型长度含义

A1Varchar20字段1

B2Dec4,2字段2

C3Int字段3

5.在表Abc中插入1条记录,如下图所示:

A1B2C3

DCL测试90.530

6.注销用户DCL,用Administrator登录系统,用REVOKE语句将用户DCL在表Abc中修

改A1的权利收回。

7.grantallprivilegesonCctoDCL

8.CREATEDATABASEDCLDemo

9.createtableAbc(A1varchar(20),c2dec(4,2),C3int)

10.insertintoAbcvalues('DCL测试',90.5,30)

11.revokeupdateonAbc(A1)fromDCL

实验九SQL语言综合练习

一、实验目的

SQL语言是数据库语言领域中的主流语言,对SQL语言的掌握程度直接关系到数据库学习

的好坏。

本次实验通过一个SQL语言的综合练习,对前面的学习的内容进行复习,并加以巩固,

希望大家对SQL语言有一个较好的掌握。

二、实验步骤

1.打开数据库SQLServer2000的查询分析器,用CreateTable建表Student,表结构如

下所示:

字段名类型长度含义

IDVarchar20学号

NameVarchar10姓名

AgeInt年龄

DepartmentVarchar30所在系

2.用CreateTable建表Course,表结构如下所示:

字段名类型长度含义

CourseIDVarchar15课程号

CourseNameVarchar30课程名

CourseBeforeVarchar15先行课

3.用CreateTable建表Choose,表结构如下所示:

字段名类型长度含义

IDVarchar20学号

CourseIDVarchar30课程号

ScoreDec5,2成绩

4.用INSERT语句向表Student中插入3条记录:

IDNameAgeDepartment

00001张三20计算机系

00002李四19计算机系

00003王五21计算机系

5.INSERT语句向表Course中插入3条记录:

CourseIDCourseNameCourseBefore

C1计算机引论-

C2PASCAL语言C1

C3数据结构C2

6.用INSERT语句向表Choose中插入5记录:

IDCourseIDScore

00001C195

00001C280

00001C384

00002C180

00002C285

7.用SELECT语句求计算机系学生的学号和姓名。

8.用SELECT语句求学生的学号、姓名、选的课程名及成绩。

9.用SELECT语句求C1课程的成绩低于张三的学生的学号和成绩。

10.用SELECT语句求选了C2课程并且也选了C3课程的学生的学号。

createtableStudent(IDvarchar(20),Namevarchar(10),Ageint,Department

varchar(30))

createtableCourse(Co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论