数据库原理本科实验指导综合.docx
- 文档编号:2123102
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:34
- 大小:25.90KB
数据库原理本科实验指导综合.docx
《数据库原理本科实验指导综合.docx》由会员分享,可在线阅读,更多相关《数据库原理本科实验指导综合.docx(34页珍藏版)》请在冰点文库上搜索。
数据库原理本科实验指导综合
《数据库原理》实验指导书
实验一建立数据库
一、实验目的
1.了解SQLServer2000;
2.掌握SQLServer2000数据库的建立和删除。
二、实验内容
1.查看SQLServer2000的所有组件
2.使用服务管理器
3.使用企业管理器
4.使用查询分析器
5.在企业管理器中建立和删除数据库
6.在查询分析器中建立和删除数据库
三、实验步骤
1.SQLServer2000的组件(9个)
(1)查询分析器:
执行输入的SQL语句并显示结果。
(2)导入和导出数据:
SQLServer2000与其他数据库系统进行相互转换。
(3)服务管理器:
管理SQLServer2000的各种服务。
(4)服务器网络实用工具:
管理和配置服务器网络。
(5)客户端网络实用工具:
管理和配置客户端网络。
(6)联机丛书:
帮助系统。
(7)企业管理器:
对本地或远程SQLServer2000服务器进行管理。
(8)事件探查器:
监视SQLServer2000执行的SQL语句。
(9)在IIS中配置SQLXML支持:
配置对IIS对XML的支持。
2.服务管理器
启动、暂停和停止指定服务器上的SQLServer2000的服务。
(1)Server:
指定服务器
(2)Services:
选择管理的4种服务
①SQLServer:
数据库引擎。
②SQLServerAgent:
自动化工作代理服务。
③MSSearch:
文本查询服务
④DistributedTransactionCoordinator:
分布式事务处理控制器。
(3)Start/Continue:
启动选定的服务
(4)Pause:
暂停选定的服务
(5)Stop:
停止选定的服务。
(6)“当启动OS时自动启动服务”复选框。
3.企业管理器
对本地或者远程服务器进行管理操作。
1)管理服务器:
(1)服务器服务:
①Database:
数据库(master、tempdb、msdb、model)
②DataTransformationServices:
转移
③Management:
管理(Agent、Backup、Activity、Plans、logs)
④Replication:
复制
⑤Security:
安全(logins、ServerRoles、LinkedServers、RemoteServers)
⑥SupportServices:
支持(DTC、Serch、Mail)
⑦MetaDataServices:
元数据
(2)服务器分组:
将多服务器分组(top组或sub组),默认组为SQLServerGroup
(3)服务器注册:
①选择服务器:
自动检测,手工添加
②选择验证方式:
Windows验证和SQLServer验证
③选择服务器组:
AddSQLServerGroup或CreateNewtopGroup
2)管理数据库
(1)自动建立的数据库(6个)
①master:
主数据库,记录登录和用户,系统配置设置,其他数据库包括数据库文件的位置等。
②tempdb:
临时数据库。
保存所有临时表和临时存储过程。
③msdb:
任务代理数据库。
供SQLServerAgent服务完成自动化工作使用。
④model:
模板数据库。
⑤Northwind:
销售范例数据库
⑥pubs:
书籍出版范例数据库。
(2)数据库对象(10个)
每个数据库中有10个目录结构,称之为数据库对象。
①关系图(Digram)
②表(Table)
③视图(View)
④存储过程(StoredProcedure)
⑤用户(User)
⑥角色(Role)
⑦规则(Ruler)
⑧默认(Default)
⑨用户定义的数据类型(UserDefinedDataType)
⑩用户定义的函数(Function)
4.查询分析器
执行输入的SQL语言。
查询分析器是SQLServer的交互界面,接受SQL语句,检查语法错误,执行语句,返回执行结果。
查询分析器是学习数据库操作的主要工具。
5.企业管理器中建立和删除数据库
(1)建立数据库
打开企业管理器,在数据库上选择菜单NewDatabase或CreateDatabaseWizard,主要参数:
数据库名:
name
主数据文件.mdf:
每一个数据库对应的文件,包括逻辑名、物理位置、物理文件
次数据文件.ndf:
包括逻辑名、物理位置、物理文件
日志文件.ldf:
每个数据库必须至少有一个日志文件,包括逻辑名、物理位置、物理文件
文件属性:
自动扩展及其扩展方式和最大空间
(2)删除数据库
选择要删除的数据库,选择菜单上的删除命令。
6.查询分析器中建立和删除数据库
(1)建立数据库以mydb为例
CREATEDATABASEmydb--数据库名
ON--数据文件
(NAME=pmydb,--主数据文件
FILENAME='D:
\MSSQLDATA\mydb.mdf',--物理文件及位置
SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1MB--初始大小、最大值、增长
),
(NAME=nmydb,--次数据文件
FILENAME='D:
\MSSQLDATA\mydb.ndf',--物理文件及位置
SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1MB--初始大小、最大值、增长
)
LOGON--日志文件
(NAME=logmydb,
FILENAME='E:
\MSSQLLOG\mydb.ldf',--物理文件及位置
SIZE=100MB,MAXSIZE=1000MB,FILEGROWTH=10MB--初始大小、最大值、增长
);
(2)删除数据库
DROPDATABASEmydb;
四、实验小结
1.本次实验的心得和体会。
2.本次实验的注意事项。
3.本次实验中遇到的问题和解决方法。
4.小结CREATEDATABASE语句的基本语法格式。
实验二建立表
一、实验目的
1.掌握表的建立和删除
2.掌握完整性规则的设置
二、实验内容
1.建立dept表,并设置完整性规则(2+3)
2.建立student表,并设置完整性规则(5+7)
3.建立course表,并设置完整性规则(4+6)
4.建立study表,并设置完整性规则(3+3)
5.删除建立的表。
三、实验步骤
运行实验1的SQL语句。
1.建立dept表,并设置完整性规则
CREATETABLEdept(
dnoCHAR
(2),
dnameVARCHAR(20)NOTNULL,
CONSTRAINTdept_pkPRIMARYKEY(dno),
CONSTRAINTdept_ukUNIQUE(dname)
);
2.建立student表,并设置完整性规则
CREATETABLEstudent(
snoCHAR
(2),
snameVARCHAR(20)NOTNULL,
ssexCHAR
(2)NOTNULL,
sageINTNOTNULL,
dnoCHAR(10)NOTNULL,
CONSTRAINTstudent_pkPRIMARYKEY(sno),
CONSTRAINTstudent_fkFOREIGNKEY(dno)REFERENCESdept(dno)
ONDELETECASCADEONUPDATECASCADE,
CONSTRAINTstudent_ckCHECK(ssexin('男','女'))
);
3.建立course表,并设置完整性规则
CREATETABLEcourse(
cnoCHAR
(2),
cnameVARCHAR(20)NOTNULL,
pcnoCHAR
(2)NULL,
creditINTNOTNULL,
CONSTRAINTcourse_pkPRIMARYKEY(cno),
CONSTRAINTcourse_fkFOREIGNKEY(pcno)REFERENCEScourse(cno),
CONSTRAINTcourse_ukUNIQUE(cname),
CONSTRAINTcourse_ckCHECK(credit>0)
);
4.建立study表,并设置完整性规则
CREATETABLEstudy(
cnoCHAR
(2),
cnoCHAR
(2),
gradeINTNULL,
CONSTRAINTstudy_pkPRIMARYKEY(sno,cno),
CONSTRAINTstudy_fk_snoFOREIGNKEY(sno)REFERENCESstudent(sno),
CONSTRAINTstudy_fk_cnoFOREIGNKEY(cno)REFERENCEScourse(cno)
);
5.删除建立的4个表。
DROPTABLEdept;
DROPTABLEstudent;
DROPTABLEcourse;
DROPTABLEstudy;
思考:
删表能顺利进行吗?
为什么?
四、实验小结
1.小结CREATETABLE语句的基本语法格式。
2.小结SQLserver2000基本数据类型(20种)
3.小结SQLserver2000完整性定义方法(5种)
实验三数据更新
一、实验目的
1.掌握数据的增删改操作
2.进一步掌握完整性规则
二、实验内容
1.对dept表进行数据增删改,并检查完整性规则
2.对student表进行数据增删改,并检查完整性规则
3.对course表进行数据增删改,并检查完整性规则
4.对study表进行数据增删改,并检查完整性规则
三、实验步骤
运行实验1、2的SQL语句。
1.对dept表进行数据增删改,并检查完整性规则
完整性规则如下:
dnoCHAR
(2)PRIMARYKEY
dnameVARCHAR(20)NOTNULL,UNIQUE
(1)增加数据
INSERTINTOdeptVALUES('D1','计科系');
----正常插入
INSERTINTOdeptVALUES('D2','电信系');
----正常插入
INSERTINTOdeptVALUES(NULL,'机械系');
----违反dno的主键(NOTNULL)规则
INSERTINTOdeptVALUES('D2','机械系');
----违反dno的主键(UNIQUE)规则
INSERTINTOdeptVALUES('D3',NULL);
----违反dname的NOTNULL规则
INSERTINTOdeptVALUES('D3','计科系');
----违反dname的UNIQUE规则
INSERTINTOdeptVALUES('D3','机械系');
----正常插入
(2)删除数据
DELETEFROMdeptWHEREdno='D3';
----正常删除
(3)修改数据
UPDATEdeptSETdname='计算机科学系'WHEREdno='D1';
----正常修改
UPDATEdeptSETdname='电信系'WHEREdno='D1';
----违反dname的UNIQUE规则
UPDATEdeptSETdname=NULLWHEREdno='D1';
----违反dname的NOTNULL规则
UPDATEdeptSETdno='D4'WHEREdno='D1';
----测试DBMS是否允许修改主键?
UPDATEdeptSETdno='D2'WHEREdno='D1';
----违反dno的主键(UNIQUE)规则
UPDATEdeptSETdno=NULLWHEREdno='D1';
----违反dno的主键(NOTNULL)规则
dept操作后的数据维持为:
dno
dname
D1
计科系
D2
电信系
2.对student表进行数据增删改,并检查完整性规则
完整性规则如下:
snoCHAR
(2)PRIMARYKEY
snameVARCHAR(20)NOTNULL,
ssexCHAR
(2)NOTNULL,CHECK(ssexin('男','女'))
sageINTNOTNULL,
dnoCHAR
(2)NOTNULL,FOREIGNKEYREFERENCESdept(dno)
ONDELETECASCADEONUPDATECASCADE
(1)增加数据
INSERTINTOstudentVALUES('S1','张刚','男',20,'D2');
----正常插入
INSERTINTOstudentVALUES('S2','李梅','女',21,'D2');
----正常插入
INSERTINTOstudentVALUES('S2','吴敏','男',20,'D1');
----违反sno的主键(UNIQUE)规则
INSERTINTOstudentVALUES(NULL,'吴敏','男',20,'D1');
----违反sno的主键(NOTNULL)规则
INSERTINTOstudentVALUES('S3','吴敏','男',NULL,'D1');
----违反sage的NOTNULL规则
INSERTINTOstudentVALUES('S3','吴敏','M',20,'D1');
----违反ssex的CHECK规则
INSERTINTOstudentVALUES('S3','吴敏','男',20,'D3');
----违反dno的外键规则
INSERTINTOstudentVALUES('S3','吴敏','男',20,'D1');
----正常插入
(2)删除数据
DELETEFROMstudentWHEREsno='S3';
(3)修改数据
UPDATEstudentSETsname='赵强',dno='D1'WHEREsno='S1'
----正常修改
UPDATEstudentSETsname=NULLWHEREsno='S1'
----违反sname的NOTNULL规则
UPDATEstudentSETssex='F'WHEREsno='S1'
----违反ssex的CHECK规则
UPDATEstudentSETsno='S2'WHEREsno='S1';
----违反sno的主键(UNIQUE)规则
UPDATEstudentSETsno=NULLWHEREsno='S1';
----违反sno的主键(NOTNULL)规则
UPDATEstudentSETdno='D3'WHEREsno='S1'
----违反dno的外键规则
UPDATEdeptSETdno='D3'WHEREdno='D1'
----检查dno的外键ONUPDATE规则
DELETEFROMdeptWHEREdno='D2'
----检查dno的外键ONDELETE规则
student操作后的数据保持为:
sno
sname
ssex
sage
dno
S1
赵强
男
20
D1
S2
李梅
女
21
D2
3.对course表进行数据增删改,并检查完整性规则
完整性规则如下:
cnoCHAR
(2)PRIMARYKEY
cnameVARCHAR(20)NOTNULL,UNIQUE
pcnoCHAR
(2)NULL,FOREIGNKEYREFERENCEScourse(cno)
creditINTNOTNULL,CHECK(credit>0)
(1)增加数据
INSERTINTOcourseVALUES('C1','操作系统',NULL,3);
----正常插入
INSERTINTOcourseVALUES('C2','数据库原理','C1',4);
----正常插入
INSERTINTOcourseVALUES(NULL,'计算机网络','C1',3);
----违反cno的主键(NOTNULL)规则
INSERTINTOcourseVALUES('C2','计算机网络','C1',3);
----违反cno的主键(UNIQUE)规则
INSERTINTOcourseVALUES('C3',NULL,'C1',3);
----违反cname的NOTNULL规则
INSERTINTOcourseVALUES('C3','数据库原理','C1',3);
----违反cname的UNIQUE规则
INSERTINTOcourseVALUES('C3','数据库原理','C4',3);
----违反pcno的外键规则
INSERTINTOcourseVALUES('C3','计算机网络','C1',NULL);
----违反credit的NOTNULL规则
INSERTINTOcourseVALUES('C3','计算机网络','C1',0);
----违反credit的CHECK规则
INSERTINTOcourseVALUES('C3','计算机网络','C1',3);
----正常插入
(2)删除数据
DELETEFROMcourseWHEREcno='C3';
----正常删除
(3)修改数据
UPDATEcourseSETcname='操作系统原理'WHEREcno='C1';
----正常修改(再次修改为'操作系统')
UPDATEcourseSETcname='数据库原理'WHEREcno='C1';
----违反cname的UNIQUE规则
UPDATEcourseSETcname=NULLWHEREcno='C1';
----违反cname的NOTNULL规则
UPDATEcourseSETpcno='C4'WHEREcno='C1';
----违反pcno的外键规则
UPDATEcourseSETcredit=NULLWHEREcno='C1';
----违反credit的NOTNULL规则
UPDATEcourseSETcredit=-3WHEREcno='C1';
----违反credit的CHECK规则
UPDATEcourseSETcno='C2'WHEREcno='C1';
----违反cno的主键(UNIQUE)规则
UPDATEcourseSETcno=NULLWHEREcno='C1';
----违反cno的主键(NOTNULL)规则
course操作后的数据维持为:
cno
cname
credit
C1
操作系统
3
C2
数据库原理
4
4.对study表进行数据增删改,并检查完整性规则
cnoCHAR
(2)FOREIGNKEY
cnoCHAR
(2)FOREIGNKEY
gradeINTNULL
PRIMARYKEY(sno,cno)
(1)增加数据
INSERTINTOstudyVALUES('S1','C1',100);
----正常插入
INSERTINTOstudyVALUES('S1','C2',90);
----正常插入
INSERTINTOstudyVALUES('S2','C1',80);
----正常插入
INSERTINTOstudyVALUES('S2','C1',70);
----违反(cno,sno)的主键(UNIQUE)规则
INSERTINTOstudyVALUES('S2',NULL,70);
----违反(cno,sno)的主键(NULL)规则
INSERTINTOstudyVALUES('S3','C1',70);
----违反sno的外键规则
INSERTINTOstudyVALUES('S2','C3',70);
----违反cno的外键规则
INSERTINTOstudyVALUES('S2','C2',70);
----正常插入
(2)删除数据
DELETEFROMstudyWHERE(sno='S2'ANDcno='C2');
----正常删除
(3)修改数据
UPDATEstudySETgrade=95WHERE(sno='S1'ANDcno='C1')
----正常修改
UPDATEstudySETcno='C2'WHERE(sno='S1'ANDcno='C1');
----违反(sno,cno)的主键(UNIQUE)规则
UPDATEstudySETcno=NULLWHERE(sno='S1'ANDcno='C1');
----违反(sno,cno)的主键(NOTNULL)规则
UPDATEstudentSETsno='S3'WHEREsno='S1'
----检查sno的外键ONUPDATE规则
DELETEstudentWHEREdno='S1'
----检查sno的外键ONDELETE规则
UPDATEcourseSETcno='C3'WHEREcno='C1'
----检查cno的外键ONUPDATE规则
DELETEcourseWHEREcno='C1'
----检查cno的外键ONDELETE规则
study操作后的数据保持为:
sno
cno
grade
S1
C1
95
S1
C2
90
S2
C1
80
四、实验小结
1.本次实验的心得和体会。
2.本次实验的注意事项。
3.本次实验中遇到的问题和解决方法。
4.小结INSERT、DELETE、UPDATE语句的基本语法格式。
实验四数据查询
一、实验目的
掌握数据查询语句SELECT。
二、实验内容
1.单表查询
2.集合查询
3.连接查询
4.嵌套查询
三、实验步骤
运行实验1、2、3的SQL语句,参考如下:
CREATEDATABASEmydb
ON
(NAME=pmydb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 本科 实验 指导 综合