1、部门列名数据类型长度是否允许空备注部门号char6否主关键字部门名10是上年预算money本年预算工程工程名20预算8外部关键字所需部件数量smallint2职工职工号5姓名char 性别年龄工资money 部件部件号仓库号部件数量仓库仓库名面积库存量2、工厂管理基本数据仓库101东仓库 100021000102160025000201西仓库 150022000202120023000工程电力工程 710117500环境工程 7101215500基因工程 7102111000土木工程 7102217000职工610李明 男27611刘丽 女29612张新 28613李南 614曲波 32200
2、0615徐思 331440616许微 1700617天蓝 30部件800070001039000104500010585001061076000部门A部门 B部门 3、创建数据库和表建库create database 工厂管理信息系统建表create table 部门 (部门号 char(6) primary key, 部门名 char(10), 上年预算 money, 本年预算 money);create table 工程 (工程名 char (20)primary key, 预算 money, 部门号 char(6) references 部门(部门号), 所需部件数量 smallint)
3、;create table 职工 (职工号 char(5) primary key, 姓名 char(10), 性别 char(2) default 男, 年龄 smallint, 工资 money, 工程名 char(20) references 工程(工程名);create table 仓库 (仓库号 char(5)primary key, 仓库名 char(20), 面积 smallint, 库存量 smallint);create table 部件 (部件号 char(5) primary key, 工程名 char(20), 仓库号 char(5), 部件数量 smallint co
4、nstraint pk_bj1 foreign key (工程名) references 工程(工程名), constraint pk_bj2 foreign key (仓库号) references 仓库(仓库号);添加记录 insert into 部门 values(071011,A部门,1000000,1200000);071021B部门,1500000,1300000);071012,1250000,1500000);071022,2000000,1800000);insert into 工程电力工程 ,1200000,7500);环境工程 ,1400000,15500);基因工程 ,
5、1900000,11000);土木工程 ,1100000,17000);insert into 职工0610李明,27,1500,土木工程);0611刘丽女,29,1600,基因工程0612张新,28,1600,电力工程0613李南,29,1500,0614曲波,32,2000,环境工程0615徐思,33,1800,0616许微,28,1700,0617天蓝,30,1700,insert into 仓库101东仓库,1000,21000);201西仓库,1500,22000);202,1200,23000);102,1600,25000); insert into 部件0101,8000);0
6、102,7000);0103,9000);0104,5000);0105,8500);01060107,6000);四、功能处理索引建立索引create unique index id_ix on 职工(姓名);create unique index im_in on 部件(部件数量);create unique index ik_il on 仓库(库存量);删除索引drop index 仓库.ik_il;视图创建视图create view view_1 as select 职工号,姓名,性别,年龄 from 职工create view view_2 as select 部件号,部件数量,仓库
7、号 from 部件 where 部件数量=7500create view view_3 as select 部门.部门名,本年预算,工程名,所需部件数量 from 部门,工程 where 部门.部门号=工程.部门号视图的撤消drop view view_1;视图的查询select * from view_3;select * from view_2;视图的更新insert into view_1 values (0621陈雨,29);存储过程创建存储过程create proc proc_zg as select 职工号,姓名,年龄 where 性别=;create proc proc_0710
8、12 kh varchar(10) select x.工程名,部门号,部件号,仓库号 from 工程 x,部件 y where x.工程名=y.工程名 and 部门号=kh存储过程的查询exec proc_zg;exec proc_071012 存储过程的修改alter proc proc_zg select 职工号,姓名,性别 where 工程名=4触发器创建触发器create trigger z_select on 职工 after insert as select * from 职工 select * from inserted go insert into 职工(职工号,姓名)0623
9、徐蕾)触发器的删除 drop trigger z_select; 5、数据更新插入(前面已插入)修改update 职工 set 工资=0.8*工资 where 年龄30and 工资1300000;select 职工.职工号,所需部件数量,部门号 from 职工,工程 where 职工.工程名=工程.工程名 order by 所需部件数量;select distinct 工程名 from 工程;select 职工号,姓名,工资,年龄 from 职工 where 年龄 between 30 and 32;select * from 工程,仓库;select 姓名,性别,年龄 from 职工 whe
10、re 工程名 in(select 工程名 from 工程 where 部门号=select max(年龄) as 最大年龄 ,min(年龄) as 最小年龄select 姓名,年龄 from 职工 where 姓名 like 徐%select 工程名,count(*) as 工程人数 from 职工 group by 工程名 having count(*)1;select 仓库名,sum(面积) as 总面积 from 仓库 group by 仓库名;select avg(工资) as 平均工资 from 职工 group by 工程名;五、系统设计小结通过这次的课程设计实验,我发现自己对数据库课程的兴趣有了很大提高,而且对课本的知识更加的了解并有了一定的掌握,通过实验我懂得了如何创建索引、视图、存储过程以及触发器。以前不懂为何要创建触发器、视图等,现在终于知道它们的优点了。在自己没做数据库课程设计以前,总是觉得自己什么都不懂什么都不会,但是现在做出来了,所以我觉得自己还是有能力做一些实际操作方面的东西。我相信以后通过自己自学其它课程,我一定会做出一个更好的数据库。六、参考资料1李红主编。数据库原理与应用。北京:高等教育出版社,2003。 2黄志球、李清等编著。数据库应用技术基础。机械工业出版社,2003。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1