当前位置:首页 >> 信息与通信 >>

数据库系统原理及应用实验报告


《数据库系统原理及应用》 实验报告

院系:计算机学院 班级:计科1102班 姓名:杨康 学号:04111043 序号:7号

实验二

定义表和数据库完整性

1. 使用T-SQL语句在数据库Market中创建客户基本信息表

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(20) unique, company 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, goodsid 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()) );

创建表:

实验三 表数据的插入、修改和删除
1.向表中输入数据,结果如下图所示:
customers表:

goods表:

orders表:

2.在表中完成删除、修改数据操作
删除数据:
delete from orders where orderid='2';

结果如图:

修改数据:
update orders set quantity=100 where goodsid in (select goodsid from goods where goodsid='3');

结果如图:

实验四 数据库的简单查询和连接查询
1.查找所有西安客户的信息. 语句:
select * from customers where city='西安';

结果:

2.查找所有商品的名称、库存量、价格以及折价25%后的价格,并使 用别名“Dicount”标识折扣价,结果按价格由低到高排序. 语句:

select goodsname ,storage,price,0.75*price Discount from goods order by price asc;

结果:

3.查找2013年5月9日至2013年5月20日期间,订货金额大于80的所有 订单的客户姓名,商品名称、单价、订货数量和订货金额。 语句:
select cname,goodsname,price,quantity,ordersum from customers,goods,orders where customers.customerid=orders.customerid and goods.goodsid=orders.goodsid and orderdate>'2013-5-9' and orderdate<'2013-5-20' and ordersum>80;

结果:

实验五 数据库的复杂查询
1.查找订单编号、 商品编号和客户编号, 要求按日期对订单进行分组, 并只显示订单数量超过50的订单信息。 语句:
select * from orders where quantity>=50 order by orderdate;

结果:

2.查找所有西安客户的订单信息,要求用不相关子查询完成。 语句:
select * from orders where customerid in (select customerid from customers where city='西安');

结果:

3.查找所有杭州客户的相关信息以及他们的订单情况。 语句:
select orders.customerid,cname,city,address,company,birthday,orderdate,o rdersum,quantity from customers,orders where city='杭州' and customers.customerid=orders.customerid;

结果:

实验六 索引和视图
1.请为成都客户建立一个订单情况的视图, 包括订单编号、 商品名称、

订货数量、客户编号、客户名称。 语句:
create view c_customer as

select orderid,goodsname,quantity,orders.customerid,cname from orders,goods,customers where city='成都' and orders.customerid=customers.customerid and orders.goodsid=goods.goodsid with check option;

结果:

2.针对1中定义的视图,完成查询,查找客户周俨的所有订单信息。 语句:
select * from c_customers where cname='周俨';

结果: 无信息,已被删除。

实验七 存储过程
1.编写存储过程sp_beijing,查看北京客户的信息 语句:
create procedure sp_beijing as select * from customers where city='北京'; execute sp_beijing;

结果:

2.编写存储过程goods,查看指定商品的信息,商品编号作为输入参 数。

语句:
create procedure goods @goodsid int as select * from goods where goodsid=@goodsid; execute goods @goodsid=1;

结果:

3.创建一个存储过程 g_orders.查看任何指定货品的订单情况, 包括订单号、订货客户的姓名以及订货数量等 语法:
create procedure g_orders @goodsid int as select orders.orderid,cname,quantity from orders,customers where goodsid=@goodsid and orders.customerid=customers.customerid; execute g_orders @goodsid=2;

结果:

实验八 触发器
1.在customers表上建立删除触发器, 实现customers表和orders表的 级联删除。
create trigger cusdelete on customers after delete as delete from orders where customerid in (select deleted.customerid from deleted);

2.在 orders 表上建立触发器,当向表中添加一条订货记录时,若订单 中的商品状态为整理(status=1),则不能插入该条记录。
create trigger orinsert on orders after insert as if(select status from goods,inserted where goods.goodsid=inserted.goodsid)=1 begin print '商品正在整理,不能插入该记录!' rollback transaction end;

3.在orders表上建立触发器,不允许订单日期进行修改
create trigger orupdate on orders after update as if update(orderdate) begin print '订货日期不能修改!' rollback transaction end;

实验总结
本次实验,让我有很大的进步,之前对这个不是很了解,在 做完实验之后,发现对数据库有了更深入的理解,特别是在执行 调试后才会知道其细节和原理。 不过做实验室才发现出现了好多 问题,语法不严谨不简洁,而且自己也不太细心,导致许多小问 题出现。不过要感谢老师的耐心指导,在实验过程中,让我能一 步一步克服这些问题, 请教老师或同学最终完满顺利的完成了本 次试验。

实验源代码
create database Market; create table customers ( customerid int identity(1,1) primary key, cname varchar(8) not null, address varchar(50), city varchar(10), tel varchar(20) unique, company 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, goodsid 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()) ); insert into customers(cname,address,city,tel,company,birthday,type) values('杨康','东长安街','西安','18725264783','航天所 ','1991-12-12',1); insert into customers(cname,address,city,tel,company,birthday,type) values('周俨','高新立交','成都','18300349756','大庆油田 ','1992-3-11',1); insert into customers(cname,address,city,tel,company,birthday,type)

values('李云涯','西单','北京','18777342565','哇哈哈总公司 ','1993-5-19',1); insert into customers(cname,address,city,tel,company,birthday,type) values('冯佳欣','西湖东路','杭州','18717524670','中国银行 ','1993-8-28',1); insert into goods values(1,'集成电路板',70,'电子产品',300,'联想',1); insert into goods values(2,'风扇',45,'家用电器',600,'格力',1); insert into goods values(3,'蚊帐',20,'生活用品',500,'温家',1); insert into goods values(4,'月饼',10,'食品',400,'米琪',1); insert into orders(goodsid,customerid,quantity,ordersum,orderdate) values(2,4,20,900,'2013-5-10'); insert into orders(goodsid,customerid,quantity,ordersum,orderdate) values(1,3,30,2100,'2013-5-15'); insert into orders(goodsid,customerid,quantity,ordersum,orderdate) values(4,2,100,1000,'2013-5-19'); insert into orders(goodsid,customerid,quantity,ordersum,orderdate) values(3,1,10,200,'2013-5-20'); delete from orders where orderid='2'; update orders set quantity=100 where goodsid in (select goodsid from goods where goodsid='3');

select * from customers where city='西安'; select goodsname,storage,price,0.75*price Discount from goods order by Price asc; select cname,goodsname,price,quantity,ordersum

from customers,goods,orders where customers.customerid=orders.customerid and goods.goodsid=orders.goodsid and orderdate>'2013-5-9' and orderdate<'2013-5-20' and ordersum>80; select * from orders where quantity>=50 order by orderdate; select orders.customerid,cname,city,address,company,birthday,orderdate,o rdersum,quantity from customers,orders where city='杭州' and customers.customerid=orders.customerid

create view c_customer as select orderid,goodsname,quantity,orders.customerid,cname from orders,goods,customers where city='成都' and orders.customerid=customers.customerid and orders.goodsid=goods.goodsid with check option; select * from c_customers where cname='周俨';

create procedure sp_beijing as select * from customers where city='北京'; execute sp_beijing;

create procedure goods @goodsid int as select * from goods where goodsid=@goodsid;

execute goods @goodsid=1;

create procedure g_orders; @goodsid int as select orders.orderid,cname,quantity from orders,customers where goodsid=@goodsid and orders.customerid=customers.customerid; execute g_orders @goodsid=2;

create trigger cusdelete on customers after delete as delete from orders where customerid in (select deleted.customerid from deleted);

create trigger orinsert on orders after insert as if(select status from goods,inserted where goods.goodsid=inserted.goodsid)=1 begin print '商品正在整理,不能插入该记录!' rollback transaction end; create trigger orupdate on orders after update as if update(orderdate) begin print '订货日期不能修改!' rollback transaction end;


相关文章:
数据库系统原理及应用实验报告.doc
数据库系统原理及应用实验报告 - 《数据库系统原理及应用》 实验报告 院系:计算
《数据库系统原理》实验报告.doc
数据库系统原理实验报告_工学_高等教育_教育专区。数据库实验报告 ...5、针对给定的数据库模式,以及相应的应用要求,创建视图和带 WITH CHECK OPTION ...
数据库系统原理-实验报告-数据库的基本查询.doc
数据库系统原理-实验报告-数据库的基本查询_计算机软件及应用_IT/计算机_专业资料。成绩评定 教师签名 计算机学院 数据库系统原理实验报告 课程名称: 数据库系统原理...
数据库系统原理实验报告.doc
本科实验报告 课程名称: 数据库系统原理 实验项目: 实验二、实验三、实验四 ...熟练掌握常用 SQL 语 句的基本语法 二、实验内容和原理选择如下一个应用背景之...
《数据库系统原理》实验报告.doc
数据库系统原理实验报告 - 学生实验报告 (理工类) 课程名称:数据库系统原理 专业班级:软件工程 学生学号: 所属院部: 软件工程学院 学生姓名: 指导教师: 20...
数据库系统原理实验报告数据更新.doc
数据库系统原理实验报告数据更新 - 1. 加强对数据更新(插入、修改及删除)语句
数据库原理实验报告.doc
学生实验报告(理工类) 课程名称:数据库系统原理 专业班级: 15 计科(W 专转...4、SQL Server 外围应用配置 SQL Server 外围应用配置器是 SQL Server2005 的...
数据库原理及应用实验报告 6.doc
数据库原理及应用实验报告 6 - 实验成绩 《数据库系统原理及应用》 实验报告六
数据库系统原理学生实验报告大学论文.doc
数据库系统原理学生实验报告大学论文 - 学生实验报告 (理工类) 课程名称:数据库系统原理 专业班级: 15 计算机 w 专转本 1 班 学生学号: 1513504069 学生姓名: ...
数据库系统原理实验报告.doc
数据库系统原理实验报告 - 实验一 《数据库系统原理实验报告 题目:数据库的创
数据库系统原理实验报告册.doc
数据库系统原理实验报告册_计算机软件及应用_IT/计算机_专业资料。实验四 T-
数据库原理实验报告(2).doc
数据库原理实验报告(2) - 《数据库原理应用》 课程实验报告 实验二 数据库的创建、管理、备份及还原实验 所在院(系): 班级: 学号: 姓名: 数信院 1.实验...
桂林电子科技大学数据库系统原理实验报告.doc
桂林电子科技大学数据库系统原理实验报告 - 桂林电子科技大学计算机科学与工程学院 数据库系统原理实验报告 实验一 SQL Server 基本使用与数据定义 一.实验目的 1....
数据库系统原理实验报告.doc
数据库系统原理实验报告 - 基于sql server的一些实验报告,献丑了... 《数据库系统原理数据库系统原理实验报告 班级___ 班级 姓名___ 姓名 学号___ 学号 ...
数据库系统原理实验报告一.doc
数据库系统原理实验报告一_工学_高等教育_教育专区。数据库系统原理实验报告:数据
《数据库系统原理》实验报告七.doc
数据库系统原理实验报告七 - 《数据库系统原理实验报告 班级: 姓名: 考
数据库系统原理及应用实验全套.doc
数据库系统原理及应用实验全套_工学_高等教育_教育专区。数据库系统原理及其应用...根据实验内容认真写好实验报告,记录每个步骤正确的 Transact-SQL 命令。 2. 无...
数据库原理与应用综合实验报告.pdf
数据库原理应用综合实验报告 - 华北科技学院计算机学院综合性实验 实验报告
数据库原理与应用实验报告.doc
数据库原理实验报告 14页 免费 数据库系统原理及应用实验... 60页 5财富
数据库实验报告.doc
数据库实验报告 - 合肥工业大学 数据库系统原理及应用 合肥工业大学实验报告一 课程名称:数据库系统原理及应用 学号: 姓名: 专业班级: 指导教师: 20095378...
更多相关标签: