数据库实验指导sqj版.docx
《数据库实验指导sqj版.docx》由会员分享,可在线阅读,更多相关《数据库实验指导sqj版.docx(75页珍藏版)》请在冰豆网上搜索。
数据库实验指导sqj版
实验1数据库的创建与管理(2学时)
目的和要求
1、巩固数据库的基础知识
2、掌握创建数据库的方法
3、掌握查看、修改数据库属性的方法
4、掌握缩小、更名与删除数据库的方法
5、掌握添加数据文件及分离、附加数据库的方法
内容和步骤
一、实验内容:
试用企业管理器、查询分析器建立数据库JWGL(教务管理),并用企业管理器对建立的数据库进行管理。
具体参数如下:
参数名称
数据库名称
数据库逻辑文件名称
数据文件名称
数据文件初始大小
数据文件大小最大值
数据文件增长增量
日志逻辑文件名称
日志文件名称
日志文件初始大小
日志文件大小最大值
日志文件增长增量
参数
JWGL
JWGL_data
C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\DATA\JWGL_data.mdf
20MB
200MB
5MB
JWGL_log
c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\LOG\JWGL_log.ldf
5MB
50MB
1MB
二、实验步骤:
1、创建数据库
使用企业管理器创建
(1)打开企业管理器,在左窗格中双击要建立数据库的服务器节点,将该节点展开。
双击“数据库”节点,然后在右窗格中右击空白区域,从弹出的快捷菜单中选择“新建数据库”命令。
(2)在“名称”文本框中输入的数据库名称“JWGL”,然后单击“数据文件”选项卡,在“文件名”栏中自动生成文件名为“JWGL_DATA”的数据文件,注:
SQLServer2000在默认情况下自动在用户输入的文件名后面增加上Data字样。
(3)在“文件组”栏中,输入文件所属的文件组名称。
(主文件文件组名不能改变)
(4)在“文件属性”选项组里,选中“文件自动增长”复选框,当数据文件的空间不
够用时,SQLServer2000可以自动增加容量。
SQLServer2000提供了两种方式来实现数据
文件的自动增加。
一种是以“按兆字节”的方式递增,一次增加1MB;另外一种方式是以“按百分比”的方式递增,一次递增原数据库文件容量的10%。
图1-1数据库属性
(5)单击“位置”栏中的按钮,选择存放数据文件的位置。
(6)单击“确定”返回“数据库属性”,单击“事务日志”选项卡,输入日志文件的名称、位置、大小,在日志需要更多空间时可以在“文件属性”选项组中设置日志自动增长和最大值选项,方法与设置数据文件类似。
用T—SQL语言创建数据库
在查询分析器中输入如下所示的创建数据库的SQL脚本。
CREATEDATABASEJWGL
ON
PRIMARY(NAME='JWGL_data',
FILENAME='c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\DATA\JWGL_data.mdf',
SIZE=20MB,
MAXSIZE=200MB,
FILEGROWTH=5MB)(或FILEGROWTH=5%)
LOGON
(NAME='JWGL_log',
FILENAME='c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\DATA\JWGL_log.ldf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=1MB)
刷新后即可见建立的数据库JWGL1
2、查看、修改数据库属性
1.使用企业管理器查看、修改数据库属性
(1)SQLServer2000有许多选项可以改变数据库的行为。
因此,在使用数据库之前可以考虑其中一些选项的设置。
进入企业管理器,右击数据库JWGL,从弹出的快捷菜单中选择“属性”命令后出现
“JWGL属性”对话框,打开“选项”选项卡,如图所示。
图1-2JWGL数据库”选项”卡
可根据需求对其进行调整。
(2)调整数据库大小
如果在数据库中用户需要不断地增加数据,就需要扩大数据库文件。
打开“数据文件”
(或“事务日志”)选项卡,如图所示。
图1-3JWGL数据库的“数据文件”选项卡
(说明)
·文件自动增长:
选中该复选框表示数据库文件自动增长,这时可以选择按兆字节增长还是按百分比增长。
·文件增长不受限制:
意味着数据库没有最大限制,可以一直充满磁盘。
·将文件增长限制为:
为数据库选择一个最大限制。
·分配的空间:
用户可以直接增加数据库文件大小。
扩大数据库的另外一个方法是增加辅助数据文件。
(3)增加文件组
生成一辅助文件后,可将其逻辑组织到文件组中,帮助管理磁盘空间分配。
增加文件组的方法是:
在文件组列中输入一个新的文件组名称,如next,单击“确定”按钮,然后右击数据库,从弹出的快捷菜单中选择“属性”命令,打开“JWGL属性”对话框,打开“文件组”选项卡,如图所示。
图1-4JWGL数据库的“文件组”选项卡
单击“选项”选项卡(见图1—1),在“访问”选项组里选中“限制访问”复选框,
原本保持灰白状态的两个单选按钮变为激活状态(选中“单用户”单选按钮表示当前只能
有一个用户可以使用该数据库)。
选中“只读”复选框表示该数据库在当前只能读取数据而不能进行修改。
(4)缩小数据库
SQLServer2000提供了缩小过于庞大的数据库的手段,以回收没有使用的数据空间,
可以用手动的方法单独缩小某个数据文件,也可以缩小整个文件组的长度。
还可以设置数据库在达到一定大小之前自动执行缩小操作。
企业管理器完成缩小数据库的步骤如下:
(1)展开服务器组,展开指定的服务器。
(2)从指定的服务器上展开数据库节点。
(3)右击要执行缩小操作的数据库,从弹出的快捷菜单中选择“所有任务”一“收缩
数据库”命令,会弹出如图1—4所示的对话框,选择执行数据库缩小操作的方式。
利用该对话框可以输入数据库大小,并且可以定制任务,让SQLServer2000自动定期收缩数据库。
图1-5收缩数据库
3、为数据库添加文件
(1)在目录窗口单击“数据库”项目,显示当前服务器中的数据库。
(2)使用鼠标右键单击“JWGL”数据库,在弹出的快捷菜单中选择“属性”命令。
(3)在数据库属性对话框中单击“数据文件”选项卡,在“数据库文件”列表中的空行“文件名”单元格中输入“JWGL_Data2”作为添加的辅助数据库文件名称;不修改文件位置、默认与主数据文件位置相同;将“分配的空间”单元格中的文件大小值修改2
(4)单击“事务日志”选项卡,为数据库添加一个辅助日志文件,文件名“JWGL_Log2”。
(5)点击确定,关闭对话框。
图1-6添加数据库文件
4、分离“JWGL”数据库
SQL服务器在运动时,会维护其中所有数据库的信息,如果一些数据库暂不使用,则可将其从服务器分离,从而减轻服务器的负担.
(1)
鼠标右键单击目录树窗口中的“JWGL”数据库,在弹出的菜单中选择[所有任务][分离数据库]命令。
(2)打开的对话框显示“成绩数据库”连接数为0,数据库状态显示可以分离数据库,单击确定,执行分离操作。
(3)分离成功操作执行完成后自动打开一对话框,单击确定后关闭该对话框,完成分离操作。
图1-7分离数据库
5、附加“JWGL”数据库
(1)
鼠标右键单击目录树窗口中的数据库,在弹出的菜单中选择[所有任务][附数据库]命令。
(2)在打开的“附加数据库”对话框中打开“浏览现有文件”对话框,在其中选中JWGL”数据库的数据文件“JWGL_Data.mdf”。
图1-8附加数据库
(3)单击确定,此时SQLServer自动将该数据库的数据文件和事务日志文件添加到“附加数据库”对话框,并执行验证操作
(4)通常,SQLServer根据数据文件名称自动确定附加数据库的名称,一般不需修改数据库名称和数据库所有者。
(5)单击确定按钮,执行附加数据库操作。
操作成功完成后,自动打开一对话框,单击确定后关闭该对话框,完成数据库附加操作。
6、删除数据库
如果一个数据库不再使用,则可将其删除。
执行一方面会删除数据库文件(包括数据文件和事物日志文件),另一方面会删除服务器中的数据库信息,如果只是简单地从Windows资源管理器中删除数据库文件,这样不能删除掉服务器中的数据库信息。
所以要在企业管理器中删除数据库,可在查询分析器或客户端程序中执行命令。
选中要删除的数据库,在弹出的快捷菜单中选择“删除”系统将会打开如下图所示的对话框。
图1-9删除数据库
如果选中为数据库删除备份并还原历史记录,则表示在删除数据库的同时删除数据库备份并还原历史记录,如果要保留数据库备份,则可取消复选框的选中标记。
单击“是”,即可删除数据库。
实验2表的创建与管理(4学时)
目的和要求
1、巩固数据库的基础知识
2、掌握创建表与删除表的方法
3、掌握修改表结构的方法
内容和步骤
一、实验内容:
分别利用企业管理器和查询分析器在数据库JWGL中建立数据表,并对建立的数据表进行简单管理。
在企业管理器建立表:
student(学生)表,course(课程)表,student_course(学生_课程)表,teacher(教师)表.
在查询分析器中建立表:
book(书)表,class(班级)表,class_course(班级_课程)表,department(系)表.
并在建立好的表中填入如下数据.(见下)
二、实验步骤:
在SQLServer2000下创建表有两种方法
1、利用企业管理器创建表
(1)打开企业管理器,打开左窗格中树开结构上的数据库节点。
(2)选中创建好的数据库,单击数据库中的表对象
(3)在右窗格中右击空白区域,从弹出的快捷菜单中选择“新建表”命令,弹出创建新表窗口。
在此窗口中,需要对表的内容进行定义。
在此窗口下我们要为“JWGL”数据库建立两个数据表“student”、“course”“student_course”“teacher”。
表结构如下:
student表结构
列名称
数据类型
长度
允许空值
说明
Student_id
Char
8
否
学生学号
Student_name
nVarchar
8
否
学生姓名
Sex
Bit
1
否
性别
Age
Int
4
否
年龄
Class_id
Char
6
否
班级号
Department_id
Char
6
否
系编号
Home_addr
nvarchar
40
否
家庭住址
Course表
字段名称
数据类型
长度
允许空
说明
Course_id
Char
10
否
课程号
Course_name
Varchar
20
是
课程名称
Book_id
Char
15
否
书标识
Student_course
字段名称
数据类型
长度
允许空
说明
Course_id
Char
10
否
课程号
Student_id
Varchar
8
否
学生号
grade
Tinyint
否
成绩
credit
Tinyint
否
学分
Teacher表
字段名称
数据类型
长度
允许空
说明
Teacher_id
Char
8
否
教师编号
Teacher_name
nvarchar
8
否
教师姓名
Department_id
Char
6
否
所在系号
Profession
Nvarchar
16
Sex
Bit
否
性别
Telephone
Nvarchar
15
是
电话
Home_adress
Nchar
40
是
住址
Salary
Numeric
5.2
是
工资
Birth
Smalldatetime
否
出生日期
postalcode
postalcode
是
邮编
Student表内容
student—id
student_name
Sex
Age
class_id
Department_id
Home_addr
g9940201
g9940202
g9940203
g9940204
g9940205
g9940206
g9940207
g9940210
g9940211
g9940301
g9940302
g9940303
g9940304
张虹
林红
曹雨
芮华
李丽]
林海国
李红
赵青
赵凯
左群
许小华
张雅丽
林红
1
0
1
1
0
1
0
1
1
1
0
0
0
19
19
20
19
18
19
21
20
21
19
19
19
20
g99402
g99402
g99402
g99402
g99402
g99402
g99402
g99402
g99402
g99403
g99403
g99403
g99403
Dep_01
Dep_02
Dep_03
Dep_01
Dep_04
Dep_04
Dep_04
Dep_04
Dep_04
Dep_01
Dep_02
Dep_03
Dep_01
南京市鼓楼区古平岗3
扬州市五亭街41号
南京玄武区林荫大道4
江苏仪征市青年路6号
江苏仪征市青年东路1号
北京市中关村太平北路
南京虎锯北路43号
南京中山北路10号
南京中山北路10号
上海市龙盘路97号
上海市北京东路191号
南京中山路9号
北京市海淀天平路8号
course表内容
course_id
Course_name
Book_id
Total_perior
Week_perior
credit
Dep01_s001
Depo4_b001
Dep04_p001
Depo4_s001
Dep04_soo2
Dep04_s003
Dep04_s004
Dep04_s005
电磁波工程
计算机基础
C语言程序设计
数据库开发技术JAVA程序开发
单片机原理
软件开发技术
网页设计
Dep01_s001_01
Depo4_b001_02
Dep04_p001_02
Depo4_s001_01
Dep04_soo2_01
Dep04_s003_01
Dep04_s004_01
Dep04_s005_01
80
68
68
80
68
68
51
80
6
4
4
5
4
4
3
3
6
4
4
5
4
4
3
5
student_course表内容
Course_id
student—id
grade
credit
dep04_b001
dep04_b001
dep04_b001
dep04_b001
dep04_b001
dep04_b001
dep04_b001
dep04_s001
dep04_s001
dep04_s001
dep04_s001
dep04_s001
dep04_s001
g9940201
g9940202
g9940203
g9940204
g9940205
g9940206
g9940207
g9940201
g9940202
g9940203
g9940204
g9940205
g9940206
88
78
88
56
45
98
87
89
78
44
65
52
92
4
4
4
6
2
4
1
4
2
5
3
5
8
Teacher表内容
Teacher_id
Teacher_name
sex
department_id
profession
telephone
home—addr
salary
Postalcode
dep01_001
dep02_001
dep03_001
dep03_002
dcp04_001
dep04_002
dep04_003
dep04_004
dep04_005
王敬远
康辉
董一平
潘惠
纪云
章红
李伟
严为
乔红
1
1
1
0
1
0
1
1
0
Dep_01
Dep_02
Dep_03
Dep_01
Dep_04
Dep_04
Dep_04
Dep_04
Dep_04
副教授
教授
副教授
讲师
副教授
教授
教授
助教
讲师
6211544
8569231
3728543
5887654
6245321
2781602
3728543
7654987
8802888
南京先贤路31
南京长虹路5号
南京长江路9号
南京长江路5号
南京长江路3号
南京西路31号
南京先贤路3号
南京长虹路3号
南京太青路32号
2100.02
3100.08
2300.36
1800.36
2100.36
3500.43
3200.02
1200.36
1800.71
210002
210008
210036
210036
210036
210034
210002
220001
210071
2、利用SQL语句创建表
(1)打开查询分析器
(2)输入创建表的Transact_SQL语句,建立“book”数据表,表结构如下:
字段名称
数据类型
长度
允许空
说明
Book_id
Char
13
否
书号
Book_name
Varchar
30
否
书名
Publish_company
Varchar
50
否
出版社
Author
nvarchar
8
是
作者
Price
Numeric
5.2
是
价格
输入的SQL语句如下:
createtablebook(book_idchar(13)notnull,
book_nameVarchar(30)NOTNULL,
publich_companyVarchar(50)NOTNULL,
authornvarchar(8),
pricenumeric(5,2))
(3)单击工具栏中的运行按钮,完成数据表创建操作。
按此方法依次建立表class、class_course、department。
Class表
字段名称
数据类型
长度
允许空
说明
Class_id
Char
6
否
班级号
Monitor
Varchar
8
是
班主任姓名
Class_course表
字段名称
数据类型
长度
允许空
说明
Class_id
Char
6
否
班级号
Course_id
char
10
否
课程号
Department表
字段名称
数据类型
长度
允许空
说明
Department_id
Char
6
否
系编号
Department_name
nvarchar
20
否
系名称
Book表内容
Book_id
Book_name
publish—company
author
Price
dep01_s001_0l
dep04_b001_01
dep04_b001_02
dep04_p001_0l
dep04_p001_02
dep04_s001_01
dep04_s002_01
dep04_s003_01
dep04_s004_01
dep04_s005_01
电磁波工程
计算机基础
计算机应用
C语言程序设计
C语言程序设计
SQLServer数据库开发技术
JAVA语言程序设计
单片机原理
软件开发技术
网页设计
电子工业出版社
清华大学出版社
电子工业出版社
清华大学出版社
南京大学出版社
北方交通出版社
东南大学出版社
东南大学出版社
南京大学出版社
地质出版社
顾华
洪涛
李群
钟军
李力
成虎
王平
肖红
刘雨
张凯芝
21
16
19.8
18.8
16.7
21.5
22.8
16.5
15
12
class表内容
Class_id
mointor
g00401
g00402
g00403
g01401
g01402
g01403
g99101
g99102
g99103
gg99401
g99402
g99403
张丽
姚夏
路立
方舟
钱程
李微
朱敬
孙兵
李晴
李强
姜一鸣
成佳洱
Class_course表内容
Class_id
Course_id
g99402
g99402
g99402
g99402
g99402
g99403
g99403
g99403
g99403
g99403
dep04_s001
dep04_s002
der04_s003
dep04_s004
dep04_s005
dep04_s001
dep04_s002
dep04_s003
dep04_s004
dep04_s005
Department表内容
Department_id
Department_name
Dep_01
Dep_02
Dep_03
Dep_04
无线电
通信与信息工程
电子工程
计算机科学
3、表的修改
在SQLServer2000下修改表有两种方法
利用企业管理器修改表
(1)从树形结构上展开要修改表所在的数据库
(2)选中该数据库节点下的表节点,则企业管理器显示出该数据库下全部的表格。
(3)右击所要修改表,从弹出的快捷菜单中选择“设计表”命令,在弹出的窗口中可以进行列的增加、删除、修改等操作。
在空白处右击鼠标,从弹出的快捷菜单中选择“属性”命令,在打开的窗口中可以更改约束,也可增加约束。
利用SQL语句修改表
如:
(1)向表中添加新字段:
在学生名单表中添加一个“年龄”字段,数据类型为数字。
(2)修改原有的列定义:
将年龄的数据类型改为半字长整数
(3)删除表中的旧列:
在学生名单表中删除“年龄”字段。
4、表的删除
表的删除在SQLServer2000下有两种方法
在企业管理器中删除
(1)在树形结构上,展开表所在的数据库
(2)选择表节点,则显示出该数据库下的全部表。
(3)选择表(按Shift或Ctrl可选多个表)
(4)右击鼠标,从弹出的快捷菜单中选“删除”命令,随后弹出的对话框中列出所有将被删除的表,可选择其中的表,然后单击“显示相关性”按钮,查看与该表格相关的数据库对象的信息。
(5