SQL实总结

SQL实训总结

一、实训题目:现代餐饮管理数据库

二、实训内容

1.系统功能模块及表间关系说明

现代餐饮管理数据库数据库共有5个表,在5个表中前4个表都是相对独立的但都与第5个表存在关系,菜单表里的菜号和点菜表中的点菜号进行了联系,厨师表中的厨师号和点菜表中的厨师号进行了联系,餐桌信息表中的餐桌号和点菜表中的餐桌号进行了联系,菜单表中具有记录餐饮菜的各个方面的信息,厨师表中具有记录职工各个方面信息餐桌信息表记录了餐桌的各个方面的信息,

这个数据库实现了点菜、预订座位、记录员工(厨师)工作记录、和日统计利润的功能。

(1)数据库

create database db on

primary

(name='db',filename='d:\sql\db.mdf',

size=5MB,

maxsize=20MB,

filegrowth=20%

)

go

(2)数据表

create table 菜单

(

菜号int primary key,

菜名varchar(20) not null,

)

go

create table 厨师

(

厨师号int primary key,

厨师姓名varchar(20) not null,

工作时间varchar(20)

)

go

create table 餐桌信息

(

餐桌序号int primary key,

餐桌状态bit default 0,

餐桌座位数int default 6,

)

go

create table 点菜

(

点菜号int foreign key references 菜单(菜号),

做菜厨师号int foreign key references 厨师(厨师号),

点菜数量int not null,

座位号int foreign key references 餐桌信息(餐桌号)

)

go

(3)索引

create clustered index index1 on 点菜(座位号)

create nonclustered index index2 on 点菜(点菜数量)

(4)存储过程

--创建存储过程

--1 无参数存储过程 查找有座位的位置

create procedure weizi

as

select * from 餐桌信息where 餐桌状态=0

go

--调用存储过程

execute weizi

go

--2 带输入参数存储过程查找座位是否有客人

create procedure zhuangtai

@zuohao as int

as

select 餐桌号,餐桌状态from 餐桌信息where 餐桌号=@zuohao

go

--调用存储过程

execute zhuangtai 2

go

--3 带输出参数存储过程输入菜号输出菜名

create procedure baocai

@caihao int,

@caiming char(20) output

as

select @caiming=菜名from 菜单where 菜号=@caihao

go

--调用存储过程

declare @ot char(20)

execute baocai 2,@ot output

print '所查菜号所对应的菜名为:'+@ot

go

--4无参数存储过程

create procedure dakehu

as

select * from 点菜where 点菜数量>2

go

--调用存储过程

execute dakehu

go

(5)触发器

--创建触发器

--1 创建插入后触发 插入点菜单后在餐桌信息表中更改餐桌状态 create trigger 更改餐桌状态on 点菜

for insert

as

declare @座号int

select @座号=座位号from inserted

update 餐桌信息set 餐桌状态=1 where 餐桌号=@座号 print'餐桌状态已更改'

--测试触发器

insert into 点菜 values(5,2,2,7)

--2 创建插入代替触发插入点菜单后如果插到已经坐顾客位置会触发 create trigger 座位有顾客触发on 点菜

instead of insert

as

declare @座号int,@状态bit

select @座号=座位号from inserted

select @状态=餐桌状态from 餐桌信息where 餐桌号=@座号 if @状态=1

print'该座位已经有客户'

else

insert 点菜select * from inserted

--测试触发器

insert into 点菜values(4,5,1,5)

--3 删除触发器当客户想取消点菜座位会变成无人状态

create trigger 取消点菜on 点菜

after delete

as

declare @座号int

select @座号=座位号from deleted

update 餐桌信息set 餐桌状态=0 where 餐桌号=@座号 print'座位已清空'

--测试触发器

delete from 点菜where 点菜号=1

(6)视图

create view 厨师做菜单as select 厨师姓名,菜名,点菜时间做菜时间from 菜单,厨师,点菜where 点菜.点菜号=菜单.菜号and 点菜.做菜厨师号=厨师.厨师号

create view 点菜信息as select 菜名,点菜时间做菜时间from 菜单,厨师,点菜where 点菜.点菜号=菜单.菜号and 点菜.做菜厨师号=厨师.厨师号

create view日营销统计单as select 菜名,点菜数量,成本价,成本价*点菜数量总成本价,售价,售价*点菜数量总售价,售价*点菜数量-成本价*点菜数量利润from 菜单,点菜where 菜单.菜号=点菜.点菜号

三、实训体会

通过这次实训,其中的要求包含了许多数据库的对象,综合了我们所学的许多知识,让我们更努力的把所学到的东西运用上去。

实训课是在学习与探索中度过的,短暂的一星期实训是结束了,但其中让我们学到了许多知识,出现许多未知的为什么,如管理数据库的初步设置、数据备份与还原的步骤,如何建立视图、触发器等一系列的问题,正是在老师和同学的共同努力之下,我们才一步步把问题解决了,最终完成了不可能完成的任务。

四、自评成绩

良好

 

第二篇:SQl实训总结

SQl实训总结

一周紧张的SQL实训结束了,通过这一周的实训我学会了许多东西。使我对数据库有了更新的认识,知道了数据库的重要性,也掌握了许多对数据库的操作方法,包括数据库的创建、表的创建、数据的查询、数据的修改、数据的删除、数据的导入/导出等等 虽然最后交实验成果不是C#版的,但是通过次实训同时也对C#有了更深一步的了解,学会了在C#中连接SQL,也算也有了些收获。后来还是用的ASP格式的,在做ASP格式的查询时遇到了很多问题通过与同组的同学交流讨论之后基本上都解决了。但是最重要的是在这次的修改过程中学到了更多的知识。实训中遇到了一些问题,通过与同学的交流以及向老师请教,基本上解决了网页修改的问题。虽然实训中遇到了很多问题,但是同时我也学会了在书本上学不到的东西。

最后通过这次实训让我懂得了,为人做事一定要认真仔细,谨慎细心。通过实训体会的老师传授给我们的知识我们应该耐心的去学习。我相信通过实训会为我以后的工作和学习奠定了良好的基础。实训课是在学习与探索中度过的,通过这一次锻炼,我学到了许多知识,也认识到了自己的一些不足之处,但无论对我以后的学习还是工作都有很好的帮助。最后我还懂得了团队精神的重要性,在实践能力上也得到了提高真正地做

到了学以致用对我来说受益非浅。同时更要感谢老师的教导。

相关推荐