当前位置:文档之家› sql数据库实训

sql数据库实训

《数据库》实训
一.数据库设计
根据如下的需求,设计出一个数据库,包括建立数据库表,设置主关键字和参照完整性。

现要建立一个论坛(BBS)网站,要求具有如下的功能:
●能进行用户的注册,只有注册用户才能发帖。

用户注册需要填写注册名、密码、性别、出生日期、
国家、省(州)、市、地址、邮箱、爱好、密码提示问题、密码提示问题答案、个人肖像等。

●用户可分为管理员、版主、普通用户三大类,能根据普通用户的发帖数量建立用户级别。

●论坛可分为若干个板块(能随意增减),每个板块有一个版主;
●对每一帖子至少应保留如下信息:主题、内容、发帖人、发帖心情图片、发帖时间、人气(点击数)、
回复数、最后回复人、最后回复时间。

●能记录每个用户的发表的主题量、参与讨论的主题量、登录次数、上次登录时间、IP地址等信息。

●能设置精华帖子。

●能记录被删(屏蔽)的帖子。

●设置论坛内的短信服务(即向指定的用户发送消息)。

每个用户有已发信箱、收信箱、待发信箱、
废件箱。

(提示:可用一个表来表示,设置几个标志字段)
二.数据库使用
下面的关系模式是根据关系数据模型建立起来的某一仓储公司的数据库的一部分,该公司在多个城市有仓库,各个仓库有若干名职工,由仓库的职工向供应商签发订购单。

仓库(仓库号,城市,面积)
职工(职工号,姓名,性别,仓库号,工资)
供应商(供应商号,供应商名,地址)
订购单(订购单号,职工号,供应商号,订购日期,金额)
注:下面各题中出现的代号(如S03、E001等)分别为对应实体的编号(如供应商号、职工号),在输入样本数据时应包含该代号。

“张三”、“上海”等数据同样也应包含在样本数据中。

完成下面各题:
1.根据上述关系模式建立相应的数据库表(必须设置主键和参照完整性)。

注意:根据你自己的理解和常识确定各字段的类型和长度。

2.往上述各表中添加适量的样本数据,前三表每表记录不少于5个,订购单表记录不少于15条。

3.用SQL语句完成下列查询:(注意要保存验证通过的语句)
(1)查询职工“张三”的工资;
(2)查询在“上海”的仓库的信息;
(3)查询供应商为公司的供应商信息;
(4)查询各员工的工资总额、平均工资、最高工资、最低工资;
(5)查询仓库总数和总面积;
(6)查询有职工工资超过5000元的仓库个数;
(7)查询在各城市的仓库数及其总面积;
(8)查询有哪些城市的仓库面积之和大于500平方米(例如:武汉有三个仓库,面积和为850m2);
(9)查询各个仓库中工资多于1200元的职工个数;
(10)查询向供应商“S03”发过订单的职工号和他所在的仓库号;
(11)查询职工“张三”所签发的所有订单的订单号及其订购日期;
(12)查询和职工E001和E005都签订过订单的供应商信息;
(13)查询供应商“S03”的历年的订购单个数和订购总金额,并按年份升序排列;(提示:使用
group by year(订购日期))
(14)查询哪些城市至少有一个仓库的职工的工资低于800元;
(15)查询所有职工的工资都多于1210元的仓库的信息;
(16)查询和职工”E004”挣同样多工资的所有职工;
(17)查询每个职工经手的具有最高总金额的订购单信息,并按职工号升序排列。

(18)查询给所有供应商都发过订单的员工的信息;
(19)为仓库号为“W01”的仓库增加一名职工“张三”,其工资为1000,其职工号为“E025”;
(20)将工资在1000元以下的职工的工资增加10%,在1000元以上的增加8%;
(21)将上一年度签订的订购单的总金额位居前3名的职工的工资增加500元;
(22)将供应商”S03”的名称改为”鹏达电子元件公司”,地址该位“武汉市解放大道234号”;
(23)删除职工“E001”在2001年5月12日签发的订购单;
(24)删除最近五年内没有签发订单的客户的订购单信息以及供应商资料;
4. 建立一个视图,存放各位职工签发的订购单的总金额。

5.建立一自定义函数,该函数以供应商号为参数,返回该供应商的年度订购总金额是否呈递增.并利用该函数查询出所有的供应商的订购额是否呈年度递增。

(提示:使用游标,利用上(13)小题的类似的查询语句)
6.建立一存储过程DeleteAndSave,将指定的供应商的订购单的信息从“订购单”表中删除,添加到与“订购单表”结构相同的表“被删订购单”中。

提示:首先判断是否存在表“被删订购单”,若存在,则用 insert … select * from …;
若不存在,则使用select * into被删订购单 from …
7.用某种方法将职工的工资限制在400-80000之间;将订购日期的默认值设为计算机当前时间;
补充题:
三、建立asp网页完成第一题中论坛用户的注册和密码验证。

已知asp中与SQL SERVER数据库的连接代码为:
'SQL SERVER 数据库:服务器为本机(假设服务器名zhusanyuan), 数据库名为test,用户名:user01,密码:12345;
'方法1:不使用ODBC;
' cn.provider="sqloledb"
'ProvStr="Server=ZHUSANYUAN;Database=test;UID=user01;PWD=12345;"
' cn.Open ProvStr
'--------------------------
'方法2:使用ODBC:建立系统数据源dsn_test
' cn.open "DSN=dsn_test","user01","12345"
答案待续。

相关主题