SQL server练习题,在线急等答案

第一大题1.求客户ID为“张娟”所下的订单中所包含的产品ID(10)2.求客户ID:要求这些客户所下的订单中产品ID有“51”的客户ID(10)3.求产品ID为“51”所... 第一大题
1. 求客户ID为“张娟”所下的订单中所包含的产品ID(10)
2. 求客户ID:要求这些客户所下的订单中产品ID有“51”的客户ID(10)
3. 求产品ID为“51”所在的订单中所包含的所有的 产品ID(10)
4. 统计客户ID为“张娟”所下的订单中所包含的产品种类个数。(15)
5. 统计每个客户所下的订单中所包含的产品种类个数。(20)
6. 创建一个名称”proc_ClientIDByOrderID”为存储过程:要求给出客户ID,返回该该客户ID所下的订单中产品ID(15)
7. 创建一个名称为Field_Rule的规则,并将其绑定到订单表Orders的订单ID上,规定取值只能五个数字(10)
8. 画出上面三张表中表与表之间的关系示意图,并分别注明关联字段。在画表的时候,只需要画出关键字段,并注明表名称即可。(10)

第二大题
已知菜单表Menu、角色表Role和权限表Authority如下,

菜单编码 菜单名称 上级菜单编码 权限编码
01 文件 Null 02
02 编辑 Null 02
03 视图 null 03
0101 新建 01 01
0102 打开 01 02
0103 保存 01 02
0201 剪切 02 02
0202 复制 02 02
0301 普通 03 03
0302 大纲 03 03
Menu表

角色编码 角色名称 权限编码
01 管理员 01
01 管理员 02
01 管理员 03
02 一般用户 02
02 一般用户 03
03 游客 03
Role表

权限编码 权限级别
01 高
02 中
03 低
Authority表
下列题目要求用SQL编写
1. 求名称为“编辑”的菜单所对应的子菜单项(10)
2. 求名称为“保存”的子菜单项所在的上级菜单名称(10)
3. 求角色名称为“一般用户”的角色所能操作的菜单名称(10)
4. 统计名称为“一般用户”的角色所能操作的菜单项数(15)
5. 统计每个角色所能操作的菜单项数(20)
6. 创建一个名称为存储过程:要求给出角色名称,返回该该角色所能操作的菜单名称。(15)
7. 创建一个名称为Field_Rule的规则,并将其绑定到菜单表Menu上的上级菜单编码列上,规定取值只能是两个数字,或者是四个数字,或者为null(10)
8. 画出上面三张表中表与表之间的关系示意图,并分别注明关联字段。在画表的时候,只需要画出关键字段,并注明表名称即可。(10)
展开
 我来答
奔驰M888
推荐于2016-06-01 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2881万
展开全部
**************
第一大题
**************
1. 求客户ID为“张娟”所下的订单中所包含的产品ID(10)
select distinct 产品ID from orders where 订单ID in (select 订单ID from products where 客户ID = '张娟');
2. 求客户ID:要求这些客户所下的订单中产品ID有“51”的客户ID(10)
select distinct 客户ID from products where 订单ID in(select 订单ID from orders where 产品ID = '51');
3. 求产品ID为“51”所在的订单中所包含的所有的 产品ID(10)
select distinct 产品ID from orders where 订单ID in( select 订单ID from orders where 产品ID = '51');
4. 统计客户ID为“张娟”所下的订单中所包含的产品种类个数。(15)
select count(distinct 产品ID) from orders where 订单ID in (select 订单ID from products where 客户ID = '张娟');
5. 统计每个客户所下的订单中所包含的产品种类个数。(20)
select 客户ID,sum((select count(distinct 产品ID) from orders where 订单ID = products.订单ID)) as 产品种类个数 from products group by 客户ID;
6. 创建一个名称”proc_ClientIDByOrderID”为存储过程:要求给出客户ID,返回该该客户ID所下的订单中产品ID(15)
create proc proc_ClientIDByOrderID(@customer_id varchar(50))
as
declare @str_sql varchar(1000);
set @str_sql = 'select distinct 产品ID from orders where 订单ID in (select 订单ID from products where 客户ID = ' + @customer_id + ')';
exec(@str_sql);
7. 创建一个名称为Field_Rule的规则,并将其绑定到订单表Orders的订单ID上,规定取值只能五个数字(10)
create rule Field_Rule
as
@id like '[0-9][0-9][0-9][0-9][0-9]'
exec sp_bindrule 'Field_Rule','Orders.订单ID';

**************
第二大题
**************

1. 求名称为“编辑”的菜单所对应的子菜单项(10)
select distinct 菜单名称 from Menu where 上级菜单编码 in( select 菜单编码 from Menu where 菜单名称 = '编辑');
2. 求名称为“保存”的子菜单项所在的上级菜单名称(10)
select distinct 菜单名称 from Menu where 菜单编码 in( select 上级菜单编码 from Menu where 菜单名称 = '保存');
3. 求角色名称为“一般用户”的角色所能操作的菜单名称(10)
select distinct 菜单名称 from Menu where 权限编码 in( select 权限编码 from Role where 角色名称 = '一般用户');
4. 统计名称为“一般用户”的角色所能操作的菜单项数(15)
select count(distinct 菜单名称) from Menu where 权限编码 in( select 权限编码 from Role where 角色名称 = '一般用户');
5. 统计每个角色所能操作的菜单项数(20)
select 角色名称,sum((select count(distinct 菜单名称) from Menu where 权限编码 =Role.权限编码)) as 菜单项数 from Role group by 角色名称;
6. 创建一个名称为存储过程:要求给出角色名称,返回该该角色所能操作的菜单名称。(15)
create proc Role_count_proc(@Role_name varchar(50))
as
declare @str_sql varchar(1000);
set @str_sql = 'select distinct 菜单名称 from Menu where 权限编码 in( select 权限编码 from Role where 角色名称 = '+ @Role_name +')';
exec(@str_sql);
7. 创建一个名称为Field_Rule的规则,并将其绑定到菜单表Menu上的上级菜单编码列上,规定取值只能是两个数字,或者是四个数字,或者为null
create rule Field_Rule
as
@id like '[0-9][0-9]' or @id like '[0-9][0-9]' or @id is null;
exec sp_bindrule 'Field_Rule','Menu.上级菜单编码'

---
以上,希望对你有所帮助。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaogang198909
2009-09-12 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7413
采纳率:66%
帮助的人:4937万
展开全部
我学的是信息管理,学的SQL server,但你的问题专业性太强了,我先翻翻书,你先忙吧···
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cailong87
2009-09-12 · 超过16用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:46.1万
展开全部
大侠来出题目了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
marser_clark
2009-09-12 · TA获得超过257个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:155万
展开全部
你这个人么意思的很!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式