数据库实验指导.docx
《数据库实验指导.docx》由会员分享,可在线阅读,更多相关《数据库实验指导.docx(30页珍藏版)》请在冰豆网上搜索。
数据库实验指导
附录1
实验指导
《数据库原理及应用》是一门理论和实践紧密联系的课程,为了配合数据库原理课程的教学内容,通过本课程的实验课使学生掌握数据库系统的基本概念和了解数据库应用系统的基本设计方法;学会使用一种具体的数据库管理系统产品(如SqlServer等)和开发工具(如VB等),从而进一步理解和掌握数据库系统的组成结构、DBMS的安全性、完整性控制等功能、结构、作用;理解数据库三级模式的概念和关系;理解并进一步掌握关系运算的基本的运算含义;关系模式分解的意义。
重点是使学生掌握SQL的作用、用法;数据库的设计过程和数据库应用系统的开发方法和调试方法。
该课程配合理论教学开设了如下实验。
共20学时,其中有八个验证型实验,一个综合设计型实验,具体安排如下:
实验一数据库、基本表的创建、修改与删除
实验二数据更新操作
实验三SQL数据查询与索引
实验四视图定义与管理
实验五数据库的安全性控制
实验六数据库设计
建议实验环境:
SQLServer
通过实验,学生应达到如下要求:
1.独立完成每个基本实验。
2.协同2-3名同学为实验小组完成综合性实验。
3.掌握SQL数据定义、数据查询、数据更新、数据控制以及数据库应用系统的设计实现方法。
实验1数据库、基本表的创建、修改与删除
1实验目的
(1)巩固数据库的基础知识。
(2)学会使用SQLServer创建数据库,并进行简单的管理工作。
(3)掌握删除基本表掌握修改、分离和附加和删除数据库的方法。
(4)掌握使用SQLServer创建、修改与删除基本表结构;
2建议实验工具及实验学时
Windows2000Server或者Windows2005AdvanceServer或者SQLServer2008。
实验学时:
2学时
3实验内容和步骤
3.1创建数据库
创建SQLServer数据库有多种方法,这里介绍用企业管理器(SQLEnterpriseManager)和用SQL语句来创建数据库的两种方法。
1.用企业管理器直接创建数据库
在Windows开始菜单中执行“程序|MicrosoftSQLServer|企业管理器”菜单项,进入企业管理器界面。
在企业管理器中展开SQLServer组,再展开数据库项,右击数据库,在弹出的快捷菜单中选择新建数据库…命令。
(2)此时,弹出“数据库属性”对话框,在“常规”选择卡中,输入数据库的名称“TRAINING”,在数据文件选择卡中,对所建的数据文件的名称、大小、位置、增长等属性进行设置。
(3)如果想改变新的事务日志文件,单击“事务日志”选择卡。
如果要改变在Filename、Location、Initialsize(MB)和Filegroup中提供的缺省值,单击适当的小格子,并键入新值。
(4)可以从上面所示的选项中选择、指定数据库文件、日志文件的增长方式和速率、文件大小的限制等。
(5)在设置好各参数后,用鼠标点击[确定]按钮开始创建数据库。
创建成功后,在数据库节点下可以看见新建的数据库TRAINING。
如果创建数据库参数设置有问题,系统将给予提示信息。
2.使用SQL语句创建数据库
(1)启动查询分析器。
在Windows开始菜单中执行“程序|MicrosoftSQLServer|查询分析器”菜单项,启动查询分析器。
弹出验证界面。
(2)连接数据库服务器。
如果系统配置为混合验证,在登录信息下输入正确的用户名和口令,或者如果系统配置为Windows身份验证,则直接[确定],即可连接上服务器,进入数据库。
系统默认的管理员是sa,没有口令。
(3)在查询分析器的命令窗口中,输入创建数据库的SQL语句。
(4)单击查询分析器的“执行”按钮,完成数据库创建。
创建新数据库成功后,可在查询分析器的对象窗口中,“刷新”后,查看新数据库的信息。
[例1]创建数据库training,它的数据文件存放路径为f:
\sql_data\下(该路径必须是预先存在的文件夹,否则,创建数据库语句不能成功执行),数据库文件名为training_data1.mdf,大小为1MB,自动增长,文件大小无限制,增长比例为10%,事务日志文件为training_log1.ldf,执行代码如下所示。
CREATEDATABASE[training]ON
(NAME=N'training_data1',FILENAME=N'f:
\sql_data\training_data1.mdf',SIZE=1,FILEGROWTH=10%)
LOGON(NAME=N'training_log1',FILENAME=N'f:
\sql_data\training_log1.ldf',SIZE=1,MAXSIZE=1,FILEGROWTH=10%)
COLLATEChinese_PRC_CI_AS
GO
3.2查看和修改数据库属性
这里介绍两种查看和修改数据库属性的方法。
1.使用企业管理器查看和修改数据库属性
(1)在企业管理器(EnterpriseManager)中,展开SQLServer组,再展开数据库项,右击training数据库,在弹出的快捷菜单中选择属性命令,此时出现training数据库属性对话框,在该对话框中可以查看数据库的各项设置参数。
在这个对话框的“常规”、“数据文件”和“事务日志”选项卡中,可对建库时所作的设置进行修改,在“文件组”、“选项”和“权限”选项卡中还可对其他参数进行修改。
(2)如果修改了某些数据库属性,可以点击[确定]按钮保存对数据库属性的修改。
2.使用SQL语句查看和修改数据库属性
(1)用查询分析器与SQLServer数据库服务器建立连接。
(2)在查询分析器的命令窗口中执行系统存储过程sp_helpdbtraining,则可在输出窗口中看到关于training数据库的属性。
(3)在命令窗口中执行下面提供的修改数据库属性的例子。
(注意只有数据库管理员或具有CREATEDATABASE权限的数据库所有者才有权执行此命令。
)
[例2]给training数据库增加一个新数据文件training_data2.ndf,其大小为2MB。
已知数据库training的存储路径为f:
\sql_data\。
首先定义文件组:
ALTERDATABASEtraining
ADDFILEGROUPdata2
然后添加文件到文件组中:
ALTERDATABASEtraining
ADDFILE
(name=training_data2,
filename='f:
\sql_data\training_data2.ndf',
size=2mb,
maxsize=50mb,
filegrowth=5%)
tofilegroupdata2
3.3 分离和附加方式移动数据库
在SQLServer中,可以有两种方法分离和附加数据库。
1.使用企业管理器(EnterpriseManager)分离和附加数据数据库
(1)在企业管理器中,展开SQLServer组,再展开数据库(DATABASE)项。
(2)选择要分离的数据库名,右击鼠标选择“属性”命令,查看该数据库的属性,获知该数据库的数据文件和日志文件名和存储路径等属性。
(3)选择要分离的数据库名,右击鼠标选择“所有任务|分离”命令,并在弹出的确认对话框中选择“确定”,稍后分离数据库成功,此时,在数据库项中已不存在training数据库。
(3)注意,不能在有连接该数据库的状态下分离数据库,否则,系统会弹出错误消息,直至数据库处于就绪状态,即断开所有的连接。
(4)分离数据库成功后,还需要在Windows系统下(参照以上第2步的属性)将该数据库相关的数据文件和日志文件拷贝到目的地址,注意不要遗漏,以便将来在目的数据库服务器上附加该数据库。
(5)在目的数据库服务器的企业管理器中,展开SQLServer组,再展开数据库(DATABASE)项。
然后打开附加数据库对话框。
(6)在附加数据库对话框中,指定要附加数据库的MDF文件,此时,系统会自动将与该数据库相关的其他数据文件和日志文件一起附加。
(7)附加成功后显示“附加数据库顺利完成”对话框,并且,在数据库项中也增加了新附加的training数据库。
如此,便可实现数据库的分离和附加。
2.使用SQL语句分离和附加数据数据库
(1)用查询分析器与SQLServer数据库服务器建立连接。
(2)在命令窗口中执行下面提供的分离和附加数据库的例子。
注,物理数据文件和日志文件的移动还要借助操作系统来完成。
[例3]移动数据库training的物理数据文件到H盘的sql_data文件夹下。
/*首先查看training数据库的属性*/
execsp_helpdbtraining
go
/*然后执行分离数据库的命令*/
execsp_detach_dbtraining,true
/*在windows系统下,将training数据库的相关数据文件和日志文件复制到根据需要的目标文件夹下,本例是H:
\SQL_DATA\*/
/*然后执行附加数据库的命令*/
execsp_attach_db@dbname='training',
@filename1='H:
\sql_data\training_data1.mdf',
@filename2='H:
\sql_data\training_data2.ndf',
@filename3='H:
\sql_data\training_log1.ldf'
执行成功后,可查看新数据库training的属性。
3.4删除数据库
只有数据库管理员或具有CREATEDATABASE权限的数据库所有者才有权执行删除数据库的操作。
下面介绍两种SQLServer中删除数据库的方法。
1.使用企业管理器(EnterpriseManager)删除数据库
(1)在企业管理器中,展开SQLServer组,再展开数据库(DATABASE)项。
(2)选择要删除的数据库名,右击鼠标选择删除命令,并在弹出的确认对话框中选择“是”,即可删除数据库,也可以选择数据库文件夹或图标后从工具栏中选择图标来删除数据库,系统会提示确认是否要删除数据库。
2.使用SQL语句删除数据库
(1)用查询分析器与SQLServer数据库服务器建立连接。
(2)在命令窗口中执行下面提供的删除数据库的例子。
[例3]删除用户数据库training.
DROPDATABASEtraining
Go
提示:
由于在后面的实验中还要用到training数据库,所以在删除它之后,最好把它重建起来。
3.5创建基本表
创建表的用户必须具有相应的权限才可以成功的执行。
1.使用企业管理器(在EnterpriseManager)创建表
(1)在企业管理器中展开SQLServer组,再展开Database项,选择要建表的数据库training,在表上右击鼠标,执行新建表…命令。
(2)在弹出设计表的窗口界面中,填写相应字段的列名、数据类型和长度等属性值后,在工具条上按保存按钮。
(3)在输入表名对话框中输入表名CUSTOMERS后,单击“确定”按钮即会将该表表保存到数据库中,建表成功。
2.使用SQL语句创建基本表
注意在SQL语句中的符号如引号、括号、逗号等要区分全角与半角,否则会出现语法错误。
(1)用查询分析器与SQLServer数据库服务器建立连接,此时系统默认的数据库是master。
(2)将连接数据库名设为training,以便将来在此数据库中创建新表。
(3)在命令窗口中执行下面提供的示例中创建基本表的SQL语句。
(4)单击工具栏中的[执行查询]按钮(或F5),完成表的创建。
[例1]创建供应商表Salers。
其属性组成为:
供应商代码SNO(字符型,长度为4个字符,不允许空),供应商姓名SNAME(字符型,长度为10个字符),供应商状态STATUS(字符型,长度为4个字符),供应商所在城市CITY(字符型,长度为10个字符),供应商代码SNO为主键。
CREATETABLESalers(
SNOCHAR(4)PRIMARYKEY,
SNAMECHAR(10),
STATUSCHAR(4),
CITYCHAR(10));
GO
[例2]创建产品表Products。
其属性组成为:
产品代码PNO(字符型,长度为4个字符,不允许空),产品名PNAME(字符型,长度为20个字符),颜色COLOR(字符型,长度为4个字符),重量WEIGHT(整型),产品代码PNO为主键。
CREATETABLEProducts(
PNOCHAR(4)PRIMARYKEY,
PNAMECHAR(20),
COLORCHAR(4),
WEIGHTINTEGER);
GO
[例3]创建工程项目表Projects。
其属性组成为:
工程项目代码JNO(字符型,长度为4个字符,不允许空),工程项目名JNAME(字符型,长度为20个字符),工程项目所在城市CITY(字符型,长度为10个字符),工程项目代码JNO为主键。
CREATETABLEProjects(
JNOCHAR(4)PRIMARYKEY,
JNAMECHAR(20),
CITYCHAR(10));
GO
[例4]创建供应情况表SPJ。
其属性组成为:
供应商代码SNO(字符型,长度为4个字符,不允许空),产品代码PNO(字符型,长度为4个字符,不允许空),工程项目代码JNO(字符型,长度为4个字符,不允许空),价格COST(货币型),供应数量QTY(整型),表示某供应商供应某种产品给某工程项目的数量为QTY,价格为COST。
CREATETABLESPJ(
SNOCHAR(4)NOTNULL,
PNOCHAR(4)NOTNULL,
JNOCHAR(4)NOTNULL,
COSTMONEY,
QTYINTEGER,
PRIMARYKEY(SNO,PNO,JNO),
FOREIGNKEY(SNO)REFERENCESSalers(SNO),
FOREIGNKEY(PNO)REFERENCESProducts(PNO),
FOREIGNKEY(JNO)REFERENCESProjects(JNO));
GO
3.2修改基本表结构
1.使用企业管理器(EnterpriseManager)修改基本表结构
(1)在企业管理器EnterpriseManager中展开Server组,再展开Database项,选择要修改表的数据库training,选中要修改的表,右击鼠标,执行“设计表”命令。
(2)在弹出的设计表对话框中,编辑修改表的列名、数据类型、长度、允许空等属性,如果要修改索引/键或约束,可点击“管理索引/键”按钮,在弹出的对话框中修改。
(3)点击“保存”按钮,将修改存入数据字典。
2.使用SQL语句修改基本表结构
(1)进入查询分析器QueryAnalyzer窗口,连接数据库后(在数据库复选框中选择training)。
(2)在QueryAnalyzer命令窗口中输入如下示例的修改基本表结构的SQL语句后,点击“ExecuteQuery”按钮,就可以在输出窗口中直接看到语句的执行结果。
[例5]修改基本表SPJ,将字段QTY的数据类型改为SMALLINT。
ALTERTABLESPJ
ALTERCOLUMNQTYSMALLINT
GO
[例6]修改产品表Products,增加字段出厂日期PDATE(日期型)。
ALTERTABLEProducts
ADDPDATEDATETIME
GO
[例7]删除产品表Products中的新增字段出厂日期PDATE。
ALTERTABLEProducts
DROPCOLUMNPDATE
3.6删除基本表
1.使用企业管理器(EnterpriseManager)删除基本表
(1)在企业管理器EnterpriseManager中展开Server组,再展开Database项,选择要删除表的数据库training,选中要删除的表,右击鼠标,执行“删除”命令。
(2)在弹出的删除表的对话框中,可以单击“显示相关性”按钮,查看与该表相关的对象信息。
(3)在删除表对话框中,单击“全部除去”按钮即可成功删除该表。
说明,如果该表被其他对象引用,则系统会弹出错误消息。
2.使用SQL语句删除基本表
(1)进入查询分析器QueryAnalyzer窗口,连接数据库后(在数据库复选框中选择training)。
(2)在QueryAnalyzer命令窗口中输入如下示例的删除基本表的SQL语句后,点击“ExecuteQuery”按钮,就可以在输出窗口中直接看到语句的执行结果。
说明:
SQL命令DROPTABLE不能用于除去由FOREIGNKEY约束引用的表。
必须先除去引用的FOREIGNKEY约束或引用的表。
[例8]假设当前数据库为training,用户SA需要删除SPJ表,可以用以下SQL语句:
DROPTABLESPJ
GO
或
DROPTABLEtraining.DBO.SPJ
GO
[例9]假设当前数据库为training,用户SA需要删除Salers表。
为此,必须先删除SPJ表,因为他们之间存在着引用关系,SPJ表为引用表,Salers为被引用表。
DROPTABLESPJ
DROPTABLESalers
GO
实验二数据更新操作
1实验目的
(1)掌握数据更新操作的概念与方法;
(2)掌握使用SQL语句完成各类更新操作(插入数据,修改数据,删除数据);
2建议实验工具及实验学时
Windows2000Server或者Windows2005AdvanceServer、SQLServer2008。
实验学时:
2学时
3实验内容和步骤
3.1使用EnterpriseManager对表进行数据的增加、删除、修改操作
在EnterpriseManager中,对表进行数据的增加、删除、修改操作非常方便。
1.数据的增加
(1)在EnterpriseManager中,展开SQLServer组,再展开Database项,展开要增加数据的表(如Products)所在的数据库(如training),在选定的表上单击右键,在弹出的快捷菜单中选择”打开表|选择所有行”(“OpenTable|Returnallrow”)命令,然后出现数据输入界面,在此界面上可以输入相应的数据。
(2)点击“运行”(“Run”)按钮或关闭此窗口,数据都被自动保存。
2.数据的修改
(1)如上所述,在EnterpriseManager中,在选定的表上单击右键,在弹出的快捷菜单中选择”打开表|选择所有行”命令,然后出现数据更新界面,在此界面上可以编辑相应的数据。
(2)修改完后,点击“运行”按钮或关闭此窗口,数据都被自动保存。
3.数据的删除
(1)如上所述,在EnterpriseManager中,在选定的表上单击右键,在弹出的快捷菜单中选择”打开表|选择所有行”命令,然后出现数据更新界面。
(2)在弹出的对话框中,选中要删除的部分行(连续的多行可按住shift键同时单击鼠标选中相应的首行和末行),然后右击鼠标,在弹出的菜单中选“删除”命令。
(3)系统会弹出对话框,确认删除,此时单击“是”即可永久删除选中的行。
3.2使用SQL插入数据
注意:
在INSERT语句中,VALUES中的数据在数量和类型上,必须与表结构匹配。
方法一:
(1)在打开表的界面中点击“SQL窗格”按钮,在此界面的窗口中输入相应的SQL语句后,点击“Run”按钮。
再次打开数据被插入数据的表,可以看到数据已被自动保存。
方法二:
(1)进入查询分析器(QueryAnalyzer)窗口,连接数据库后,(在数据库复选框中选择training),在QueryAnalyzer命令窗口中输入如下示例的SQL语句后,再执行该语句,也可实现数据的增加。
[例1]向工程表Projects中插入一新记录,工程号为J1,工程项目名为出版社办公楼扩建,城市为北京。
INSERTINTOProjects(JNO,JNAME,CITY)
VALUES('J1','出版社办公楼扩建','北京')
GO
[例2]使用带有NULL值的输入。
向工程表Projects中插入一新记录,工程号为J2,工程项目名为长江三桥,城市为NULL。
NSERTINTOProjects(JNO,JNAME,CITY)
VALUES('J2','长江三桥',NULL)
GO
[例3]通过INSERT语句向工程表Projects中插入多条新记录。
INSERTINTOProjectsVALUES('J3','新校区建设','广州')
INSERTINTOProjectsVALUES('J4','图书馆大楼','上海')
INSERTINTOProjectsVALUES('J5','实验楼建设','北京')
GO
[例4]构造一个新的数据表,表名为“Project_gz”,用于存放施工地在广州的项目信息。
CREATETABLEProject_gz(JNOCHAR(4)NOTNULL,
JNAMECHAR(20),
CITYCHAR(10)
PRIMARYKEYCLUSTERED(JNO))
GO
INSERTINTOProject_gz
SELECT*
FROMProjects
WHERECITY='广州'
GO
3.3使用SQL修改数据
注意:
在SQL的更新语句UPDATE中的新数据在数量和类型上,必须与表结构相匹配。
方法一:
在EnterpriseManager中修改数据,如同增加数据一样进入数据输入界面,在此界面中对数据进行修改后,点击“Run”按钮或关闭此窗口,数据都被自动保存。
也可点击“SQLPane”按钮,输入相应的修改数据的SQL语句后,点击“Run”按钮,修改后的数据被自动保存。
方法二:
进入QueryAnalyzer,连接数据库后,(在数据库复选框中选择training),在QueryAnalyzer命令窗口中输入如下示例的SQL语句后,再执行该语句,也可实现数据的更新。
[例5]将产品表中螺母的重量改为3公斤。
UPDATEProductsSETWEIGHT=3
WHEREPNAME='螺母'
GO
[例6]将供给长江三桥的零件螺帽的数量改为200个。
UPDATESPJSETQTY=200
WHEREPNO=(SELECTPNOFROMProductsWHEREPNAME='螺帽')
AND
JNO=(SELECTJNOFROMProjectsWHEREJNAME='长江三桥')
3.4使用SQL删除数据
方法一:
在企业管理器中,选中数据库