
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) 展开
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) 展开
4个回答
展开全部
**************
第一大题
**************
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.上级菜单编码'
---
以上,希望对你有所帮助。
第一大题
**************
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.上级菜单编码'
---
以上,希望对你有所帮助。
本回答被提问者采纳

你对这个回答的评价是?
展开全部
我学的是信息管理,学的SQL server,但你的问题专业性太强了,我先翻翻书,你先忙吧···
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大侠来出题目了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个人么意思的很!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询