数据库SQL Server 2000实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理及应用
实
验
报
告
实验题目:定义表和数据库的完整性
和表数据的插入,修改和删除系:经济学
班级:、、、、、、、、、、
学号:、、、、、、、、、、、
姓名:、、、、、、、、
任课教师:、、、、、、、、、、
时间:2012年11月
一、实验目的
(1)了解SQL Server 2000的基本数据类型,空值的概念,以及表的结构特点。
(2)学会使用T-SQL语句和企业管理器创建表结构和修改表结构。
(3)学会使用SQL Server 2000提供的数据完整性功能,并在创建表是定义表的数据的完整性。
通过实验进一步理解数据完整性的概念和分类。
(4)掌握使用T-SQL语句和企业管理器对数据表进行插入,修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。
通过本实验,要熟练掌握INSERT,UPDATE,DELETE语句和使用方法。
二、实验环境
装有SQL Server 2000的实验机。
三、实验前准备
1.要明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
2.创建数据库必须要确定数据库名、所有者、数据库大小和存储数据的文件。
3.确定数据库包含哪些表以及包含的各表的结构并且弄明白各表之间的关系。
还要了解SQL Server 的常用数据类型,以创建数据库的表。
4.了解常用的创建数据库和表的方法。
企业管理器创建和语句创建都要会。
5 .要会进行数据的插入、删除、修改的操作方法。
四、实验内容
(1)用企业管理器在数据库中创建名称为“020李”的数据库,在其中创建学生表student,课程表course,学生选课表sc,根据课本中的表结构创建后,如下图所示
Student表
Sc表
Course表
(2)用T-SQL语句在“020李”数据库中创建客户基本信息表customers,货品信息表goods,订单信息表orders,它们定义如下:create table customers(customerID int identity(1,1) primary key,
Cname varchar(8) not null,
address varchar(50),
city varchar(10),
tel varchar(50),
birthday datetime,
type tinyint default 1);
create table goods( goodsid int constraint C1 primary key, goodsname varchar (20)not null,
price money ,description varchar(200),
storage int,
provider varchar(50),
Status tinyint default(0));
create table orders(
orderid int identity(1,1) constraint c2 primary key ,
goodid int not null references goods(goodsid) on delete cascade,
customerid int not null foreign key(customerid)
references customers (customerid) on delete no action,
quantity int not null constraint c3 check(quantity>0),
ordersum money not null,
orderdate datetime default(getdate())); customers表
Goods表
Orders表
(3)、使用SQL语句在SPJ数据库中创建第2章习题10中的四张表;
供应商表S,零件表P、项目表J和供应情况表SPJ,数据类型自行设计,注意同时定义主键、外键和其他的数据完整性。
CREATE TABLE S
( Sno char(6) PEIMARY KEY ,
Sname char(10)UNIQUE ,
Statue INT ,
City char(20),
):
CREATE TABLE P
( Pno char(6) PEIMARY KEY,
Pname char(10)UNIQUE,
Color char(3),
Weight char(20),
);
CERATE TABLE J
(Jno char(6) PEIMARY KEY,
Jname char(10)UNIQUE,
City char(20),
);
CREATE TABLE SPJ
(Sno char(6),
Pno char(6),
Jno char(6)
PRIMARY KEY (Sno,Pno,Jno)
FOREIGN KEY(Sno) REFERENCES S(Sno),
FOREIGN KEY(Pno) REFERENCES P(Pno),
FOREIGN KEY(Jno) REFERENCES J(Jno),
);
(4)、用SQL语句在图书借阅数据库TSGL中建立图书、读者、和借阅三个表。
CREATE TABLE 图书
(书号 char(6) PEIMARY KEY,
书名 varchar(10)UNIQUE,
类别 varchar(20),
出版社 varchar(15),
作者 char(10)UNIQUE,
定价 tinyint,
出版时间 datetime not null
);
CREARE TABLE 读者
(借书证号 char(6) PEIMARY KEY
姓名 varchar(10)UNIQUE,
单位 varchar(20),
性别 char(2) CHECK (性别IN (‘男’,‘女’)),
地址 varchar(15)
电话号码 varchar(12)UNIQUE,
);
CREATE TABLE 借阅
( 书号 char(6),
借书证号 char(6),
借阅日期 datetime not null,
FOREIGN KEY (书号) REFERENCES 图书(书号),
FOREIGN KEY (借书证号) REFERENCES 读者(借书证号),);
(5)分别使用t-sql语句和企业管理器,向数据库“020李”中的各张表输入一些记录。
并对表进行插入,修改,删除的操作。
①插入数据时既要插入一些不违背数据完整性约束的记录,
也要插入一些违背数据完整性约束的记录,观察插入后
的结果,并利用相关知识解释此现象。
在涉及参照完整
性约束的参照表中插入数据时,理解系统是如何保证完
整性的。
②修改数据时除使用正确数据外,也可以对修改后的新值使
用一些违背数据完整性约束的数据,观察系统执行后的
结果。
另外进一步观察在涉及参照完整性约束的参照表
和被参照表中修改数据时系统的执行情况,如果违背参
照完整性那么观察结果。
③删除记录时一般不会出现问题,但要是在有参照完整性约
束的被参照表中删除数据时也存在破坏完整性的情况。
观察删除记录系统的执行结果。
(初始输入的记录)insert
into student
values('48','王五','男','24','010*******','计算机')
update student
set age=age+1
下图则为完成了插入了学号为48的学生信息,和学生年龄加一的操作的student表
delete from student
where sdept='计算机'
下图为进行删除“计算机系学生”操作后的student图
(初始输入的记录)
(初始输入的记录)
update sc
set grade=0
where sno in ( select sno from student where sdept='经济') 下图为进行将经济系学生成绩修改操作的sc表
五、实验步骤及实验结果详见实验内容
六、评价分析及心得体会
心得体会
通过对实验进行设计和调试过程,掌握了T-sql语句和企业管理器对数据进行插入、修改和删除数据的操作,并体会到了数据完整性约束的作用,加深了对数据完整性及其约束的理解。
当执行插入操作时,首先会检查实体完整性规则,即插入行
在主键上的值是否已经存在,若存在可以执行插入,否则不能执
行插入。
Primary key是保证数据库实体完整性的约束。
在每一
个表中都应该有自己的主键,并且只能有一个。
当删除操作时,
如果是删除被参照关系中的行,检查被删除的行在主键上的值是否正在被相应的参照关系的外键引用,若正在引用则不能被删除或级联删除。
当执行更新操作时,因为更新操作可以看成数据的完整性是指数据的正确性和相容性。
它是防止不合语义的数据进入数据库,是确保数据库中数据一致、正确的手段。
这次上机实验让我更好地理解了书本上的知识。
虽然有时候写的代码总是出错,但经过反复的修改,最终还是可以正常运行了,同时也体会到了细节的重要性。