SQL试题以及答案

use master
go
if exists (select * from sysdatabases where name='库存数据库')
drop database 库存数据库
go
create database 库存数据库
go
use 库存数据库
go
create table 材料类别
(
 类别ID varchar(20) not null primary key,
 材料类别 varchar(50)
)
 
create table 库存
(
库存代码 varchar(20) not null primary key,
存货名称 varchar(50) not null,
类别ID varchar(20) not null  foreign key references 材料类别(类别ID),
规格 varchar(50),
单位 varchar(20),
货架 varchar(20),
数量 float(8),
最高库存 float (8),
最低库存 float (8)
)
create table 供应商
(
供应商ID varchar(20) not null primary key ,
供应商 varchar(50),
联系电话 varchar(50)
)
create table 入库表
(
入库单号 varchar(20) not null primary key,
总金额 float (8),
入库日期 datetime,
经手人 varchar(20),
是否审核 bit,
摘要 varchar(100)
)
create table 入库材料明细表
(
入库单号 varchar(20) not null foreign key references 入库表(入库单号) ,
存货代码 varchar(20) not null foreign key references 库存(库存代码) ,
供应商ID varchar(20) not null foreign key references 供应商(供应商ID) ,
单价 float (8),
单位 varchar(20),
数量 float (8),
金额 float(8),
摘要 varchar(100),
primary key (入库单号,存货代码,供应商ID)
)

insert into 材料类别 values ('CAI1','电脑配件');
insert into 材料类别 values ('CAI2','软件');
 
insert into 供应商 values('GONG1','蓝星电脑','027-88855588');
insert into 供应商 values('GONG2','文杰电脑','027-87459801');

insert into 库存 values('010001','打印机','CAI1','ISO1','台','架1',0,5,1);
insert into 库存 values('010002','生产统计分析系统','CAI2','ISO2','套','架2',0,3,1);

insert into 入库表 values ('001',29000,'2002-10-29','王',0,'');
insert into 入库表 values ('002',25000,'2002-10-30','王',1,'');

insert into 入库材料明细表 values('001','010001','GONG1',3000,'台',3,9000,'');
insert into 入库材料明细表 values('001','010002','GONG2',20000,'套',1,20000,'');
insert into 入库材料明细表 values('002','010001','GONG1',2500,'台',2,5000,'');
insert into 入库材料明细表 values('002','010002','GONG2',20000,'套',1,20000,'');

select * from 入库表
select * from 库存

select * from 入库材料明细表
select * from 供应商
select * from 材料类别


--查询供应商ID为:‘GONG1’的供应商及其联系电话;
select 供应商,联系电话 from 供应商 where 供应商ID='GONG1'

--查询存货名称为:“打印机”的材料类别;
select 材料类别 from 库存,材料类别 where 库存.类别ID=材料类别.类别ID and 存货名称='打印机'

--查询所有入库单号为‘001’的材料库存量及其最低库存
select count(入库材料明细表.数量)as 数量,count(最低库存)as 最低库存 from 库存,入库材料明细表 where 库存.库存代码=入库材料明细表.存货代码 and 入库材料明细表.入库单号=001

--查询供应商为“文杰电脑”的供应商所提供的材料涉及的入库单详细信息;
select distinct 供应商.供应商ID,联系电话,规格,入库材料明细表.单位,入库材料明细表.数量,最高库存,最低库存,入库材料明细表.单价,金额,材料类别,摘要 from 供应商,库存,入库材料明细表,材料类别 where 库存.类别ID=材料类别.类别ID and 库存.库存代码=入库材料明细表.存货代码 and 供应商.供应商ID=入库材料明细表.供应商ID and 供应商='文杰电脑'

--1、修改入库表中入库单号为‘001’的经手人为‘李’;
update 入库表 set 经手人='李' where 入库单号=001
select * from 入库表

--2、删除‘入库材料明细表’表中存货代码为‘010001’的材料记录;
delete from 入库材料明细表 where 存货代码=010001
select * from 入库材料明细表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值