当前位置:文档之家› 数据库系统及应用 上机实验报告

数据库系统及应用 上机实验报告

数据库系统及应用上机实验报告实验1一、实验目的:理解SQL Server数据库的存储结构,掌握SQL Server数据库的建立方法和维护方法。

二、实验内容:在SQL Server环境下建立数据库和维护数据库。

三、程序源代码:--1CREATE DATABASE test1ON(NAME=test1_dat,FILENAME='f:\DB\data\test1dat.mdf',SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 )LOG ON(NAME=order_log,FILENAME='f:\DB\data\test1log.ldf',SIZE= 5MB,MAXSIZE= 25MB,FILEGROWTH= 5MB)--2create database test2onprimary(name=test2_dat1,filename='f:\DB\data\test2dat1.mdf'), (name=test2_dat2,filename='f:\DB\data\test2dat2.ndf'), (name=test2_dat3,filename='f:\DB\data\test2dat3.ndf') log on(name=test2_log1,filename='f:\DB\data\test2log1.ldf'), (name=test2_log2,filename='f:\DB\data\test2log2.ldf') --3create database test3onprimary(name=test3_dat1,filename='f:\DB\data\test3dat1.mdf'), (name=test3_dat2,filename='f:\DB\data\test3dat2.mdf'), filegroupg2(name=test3_dat3,filename='d:\DB\data\test3dat3.ndf'), (name=test3_dat4,filename='d:\DB\data\test3dat4.ndf'), filegroupg3(name=test3_dat5,filename='e:\DB\data\test3dat5.ndf'), (name=test3_dat6,filename='e:\DB\data\test3dat6.ndf') log on(name=test3_log,filename='f:\DB\data\test3log.ldf')--4alter database test1add file(name=test1new_dat,filename='f:\DB\data\test1newdat.ndf', size=5MB)--5alter database test1modify file(name=test1_dat,size=15MB)--6dropdatabasetest3四、实验数据、结果分析:若没有指定size,则默认为1MB,没有指定Maxsize,文件可以增长到磁盘满为止,没有指定Filegrowth,则默认为10%。

五、总结:CREATE DATABASE dataname 创建数据库ALTER DATABASE database 修改数据库DROP DATABASE dataname 删除数据库实验21.创建客户表:create table 客户(客户号char(8) check(unicode(客户号) between 65 and 122) primary key,/*check(客户号like '[a-z]%')*/客户名称varchar(40) not null,联系人char(8),地址varchar(40),邮政编码char(6) check(len(邮政编码)=6 and isnumeric(邮政编码)=1),/* check(邮政编码like '[0-9][0-9][0-9][0-9][0-9][0-9]')*/电话char(12) check(isnumeric(电话)=1))2.创建产品表:create table 产品(产品号char(8) primary key check(unicode(产品号) between 65 and 122and unicode(substring(产品号,2,1)) between 65 and 122),产品名称varchar(40) unique,规格说明char(40),单价smallmoney check(单价>0))3.创建订购单表:create table 订购单(客户号char(8) foreign key references 客户(客户号) not null,订单号char(8) primary key,订购日期datetime default getdate())4.创建订单明细表:create table 订单明细(订单号char(8) foreign key references 订购单(订单号),序号tinyint,产品号char(8) foreign key references 产品(产品号) not null,数量smallint check(数量>0),primary key (订单号,序号))实验3一、实验目的:为实验2建立的表设计一组数据进行插入、删除、修改等操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。

二、实验内容:数据的插入、更新和删除。

三.、程序源代码:--1、部分记录insert into 客户 values('C001','A公司','小明','北京','123456','143567568457')insert into 客户 values('C002','B公司','小李','上海','234567','146389045634')insert into 客户(客户号,客户名称) values('C009','J商场')insert into 产品 values('GD001','iphone','4s','5000')insert into 产品 values('GD002','ipad','2g','5500')insert into 产品(产品号,产品名称) values('GD010','Mac Pro')insert into 订购单(客户号,订单号) values('C001','or01')insert into 订购单(客户号,订单号) values('C001','or02')insert into 订购单(订单号) values('or19')insert into 订单名细 values('or01','1','GD001','4')insert into 订单名细 values('or01','2','GD001','3')insert into 订单名细 values('or01','3','GD002','6')insert into 订单名细(订单号,序号,产品号) values('or14','28','GD006')--2delete from 客户 where 客户号='C001' --受参照完整性约束delete from订购单 where 订单号='or01' --受参照完整性约束--3update 订购单 set 订单号=null where 客户号='C001' --受实体完整性约束update 订购单 set 客户号='C011' where 订单号='or04'--受参照完整性约束update 订购单 set 客户号='C009' where 订单号='or07' --更新成功update 订单名细 set 数量=0 where序号='9' --受用户定义完整性约束--4update 订单名细 set 数量=数量+10from 订购单where 订购单.订单号=订单名细.订单号 and 客户号='C002'--5delete from 订单名细from 订购单where 订购单.订单号=订单名细.订单号 and 客户号='C002'四、实验数据、结果分析:--2在删除客户号为“C002”的记录时无法删除,因为客户表被订购单表参照。

删除订购单号为“or01”的记录时无法删除,因为订单名细表参照订购单表。

--3第一个更新根据实体完整性约束,订单号是主关键字,不能为空值。

第二个更新根据参照完整性约束,订购单表参照客户表,而客户表中没有客户号为“C011”的客户。

第四个更新根据用户定义完整性约束,数量必须为正整数。

--4使客户号为C002的订购单的订购数量增加10.--5删掉客户号为C002的订单名细记录。

五、总结:插入:INSERT INTO <表名>[(<列名>[,<列名>…])]values(<表达式>[,<表达式>…])更新:update <表名> set <列名>=<表达式>[,<列名>=<表达式>…] [[from<表名>] where<逻辑表达式>]删除:DELETE FROM <表名>[[FROM <表名>]WHERE <逻辑表达式>]完整性约束影响插入、更新和删除等操作实验4一、实验目的:熟练掌握SQL SELECT语句,能够运用该语句完成各种查询。

相关主题