SQL server练习题,在线急等答案
发布网友
发布时间:2022-04-28 16:29
我来回答
共4个回答
热心网友
时间:2022-04-09 07:39
**************
第一大题
**************
1. 求客户ID为“张娟”所下的订单中所包含的产品ID(10)
select distinct 产品ID from orders where 订单ID in (select 订单ID from procts where 客户ID = '张娟');
2. 求客户ID:要求这些客户所下的订单中产品ID有“51”的客户ID(10)
select distinct 客户ID from procts 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 procts where 客户ID = '张娟');
5. 统计每个客户所下的订单中所包含的产品种类个数。(20)
select 客户ID,sum((select count(distinct 产品ID) from orders where 订单ID = procts.订单ID)) as 产品种类个数 from procts 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 procts 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.上级菜单编码'
---
以上,希望对你有所帮助。
热心网友
时间:2022-04-09 08:57
我学的是信息管理,学的SQL server,但你的问题专业性太强了,我先翻翻书,你先忙吧···
热心网友
时间:2022-04-09 10:32
大侠来出题目了。
热心网友
时间:2022-04-09 12:23
你这个人么意思的很!