10-107 3-2-(a)查询配置了容量至少为1G字节硬盘的便携式电脑的生产厂商及其速度
本题目要求编写SQL语句,
查询配置了容量至少为1G字节硬盘的便携式电脑的生产厂商及其速度。
表结构:
CREATE TABLE product
( maker CHAR(20) , --制造商
model CHAR(20) NOT NULL, --产品型号
type CHAR(20), --产品类型
PRIMARY KEY(model)
);
CREATE TABLE laptop
( model CHAR(20) NOT NULL, --型号
speed DECIMAL(6,2), --速度
ram INT, --内存
hd DECIMAL(6,2), --硬盘容量
screen DECIMAL(6,2), --屏幕大小
price INT, --价钱
PRIMARY KEY(model),
FOREIGN KEY(model) REFERENCES product(model)
);
表样例
product
表:
maker | model | type |
---|---|---|
D | 2003 | 便携式电脑 |
D | 3001 | 打印机 |
B | 1006 | 个人电脑 |
B | 3002 | 打印机 |
laptop
表:
model | speed | ram | hd | screen | price |
---|---|---|---|---|---|
2001 | 100.00 | 20 | 1.10 | 9.50 | 1999 |
2002 | 117.00 | 12 | 0.75 | 11.30 | 2499 |
2003 | 117.00 | 32 | 1.00 | 11.20 | 3599 |
输出样例:
maker | speed |
---|---|
D | 117.00 |
select maker,speed
from product,laptop
where type='便携式电脑' and hd>=1 and product.model=laptop.model;
10-108 3-2-(b)查询由生产厂商B生产的所有产品的型号(model) 和价格(price)
本题目要求编写SQL语句,
查询由生产厂商B
生产的所有产品的型号(model) 和价格(price)。
提示:查询按照pc、laptop和printer的顺序进行。
表结构:
CREATE TABLE product
( maker CHAR(20) , --制造商
model CHAR(20) NOT NULL, --产品型号
type CHAR(20), --产品类型
PRIMARY KEY(model)
);
CREATE TABLE laptop
( model CHAR(20) NOT NULL, --型号
speed DECIMAL(6,2), --速度
ram INT, --内存
hd DECIMAL(6,2), --硬盘容量
screen DECIMAL(6,2), --屏幕大小
price INT, --价钱
PRIMARY KEY(model),
FOREIGN KEY(model) REFERENCES product(model)
);
CREATE TABLE printer
( model CHAR(20) NOT NULL, --型号
color BIT, --是否彩色
type CHAR(10), --类型
price INT, --价钱
PRIMARY KEY(model),
FOREIGN KEY(model) REFERENCES product(model)
);
CREATE TABLE pc
( model CHAR(20) NOT NULL, --型号
speed DECIMAL(6,2), --速度
ram INT, --内存
hd DECIMAL(6,2), --硬盘容量
cd CHAR(4), --光驱
price INT, --价钱
PRIMARY KEY(model),
FOREIGN KEY(model) REFERENCES product(model)
);
表样例
product
表:
maker | model | type |
---|---|---|
A | 1001 | 个人电脑 |
D | 2003 | 便携式电脑 |
D | 3001 | 打印机 |
D | 2001 | 便携式电脑 |
B | 1006 | 个人电脑 |
B | 3002 | 打印机 |
pc
表:
model | speed | ram | hd | cd | price |
---|---|---|---|---|---|
1001 | 133.00 | 16 | 1.60 | 6X | 1595 |
1006 | 200.00 | 32 | 3.1 | 8X | 2099 |
laptop
表:
model | speed | ram | hd | screen | price |
---|---|---|---|---|---|
2001 | 100.00 | 20 | 1.10 | 9.50 | 1999 |
2003 | 117.00 | 32 | 1.00 | 11.20 | 3599 |
printer
表;
model | color | type | price |
---|---|---|---|
3001 | 1 | 喷墨 | 275 |
3002 | 1 | 喷墨 | 269 |
输出样例:
model | price |
---|---|
1006 | 2099 |
3002 | 269 |
select product.model,price
from product
join pc
on product.model=pc.model
where maker='B'
union
select product.model,price
from product
join laptop
on product.model=laptop.model
where maker='B'
union
select product.model,price
from product
join printer
on product.model=printer.model
where maker='B'
10-109 3-2-(c)查询所有出售便携式电脑(而不出售PC机)的生产厂商
本题目要求编写SQL语句,
查询所有出售便携式电脑
(而不出售PC
机)的生产厂商。
提示:请使用SELECT语句作答。
表结构:
CREATE TABLE product
( maker CHAR(20) , --制造商
model CHAR(20) NOT NULL, --产品型号
type CHAR(20), --产品类型
PRIMARY KEY(model)
);
CREATE TABLE laptop
( model CHAR(20) NOT NULL, --型号
speed DECIMAL(6,2), --速度
ram INT, --内存
hd DECIMAL(6,2), --硬盘容量
screen DECIMAL(6,2), --屏幕大小
price INT, --价钱
PRIMARY KEY(model),
FOREIGN KEY(model) REFERENCES product(model)
);
CREATE TABLE pc
( model CHAR(20) NOT NULL, --型号
speed DECIMAL(6,2), --速度
ram INT, --内存
hd DECIMAL(6,2), --硬盘容量
cd CHAR(4), --光驱
price INT, --价钱
PRIMARY KEY(model),
FOREIGN KEY(model) REFERENCES product(model)
);
表样例
product
表:
maker | model | type |
---|---|---|
D | 2003 | 便携式电脑 |
D | 3001 | 打印机 |
B | 1006 | 个人电脑 |
B | 3002 | 打印机 |
E | 2004 | 便携式电脑 |
D | 1008 | 个人电脑 |
A | 1001 | 个人电脑 |
A | 1002 | 个人电脑 |
pc
表:
model | speed | ram | hd | cd | price |
---|---|---|---|---|---|
1001 | 133.00 | 16 | 1.60 | 6X | 1595 |
1002 | 120.00 | 16 | 1.60 | 6X | 1399 |
1008 | 180.00 | 32 | 2.00 | 8X | 3699 |
laptop
表:
model | speed | ram | hd | screen | price |
---|---|---|---|---|---|
2003 | 117 | 32 | 1.00 | 11.20 | 3599 |
2004 | 133 | 16 | 1.10 | 11.30 | 3699 |
输出样例:
maker |
---|
E |
select DISTINCT product.maker from laptop,product
where laptop.model = product.model
and product.maker not in (select maker from pc,product
where pc.model = product.model);
10-110 3-2-(d)查询在两种或两种以上PC机上出现的硬盘容量
本题目要求编写SQL语句,
查询在两种或两种以上PC
机上出现的硬盘容量。
提示:请使用SELECT语句作答。
表结构:
CREATE TABLE pc
( model CHAR(20) NOT NULL, --型号
speed DECIMAL(6,2), --速度
ram INT, --内存
hd DECIMAL(6,2), --硬盘容量
cd CHAR(4), --光驱
price INT, --价钱
PRIMARY KEY(model)
);
表样例
pc
表:
model | speed | ram | hd | cd | price |
---|---|---|---|---|---|
1001 | 133.00 | 16 | 1.60 | 6X | 1595 |
1002 | 120.00 | 16 | 1.60 | 6X | 1399 |
1003 | 166.00 | 24 | 2.50 | 6X | 1899 |
1004 | 166.00 | 32 | 2.50 | 8X | 1999 |
1008 | 180.00 | 32 | 2.00 | 8X | 3699 |
1009 | 200.00 | 32 | 2.50 | 8X | 2599 |
输出样例:
hd |
---|
1.60 |
2.50 |
select hd from pc group by hd having count(hd)>=2
10-111 3-2-(e)查询拥有相同速度和内存的PC机的成对的型号
本题目要求编写SQL语句,
查询拥有相同速度和内存的PC机的成对的型号,输出结果属性名分别为model1,model2。
提示:请使用SELECT语句作答。
表结构:
CREATE TABLE pc
( model CHAR(20) NOT NULL, --型号
speed DECIMAL(6,2), --速度
ram INT, --内存
hd DECIMAL(6,2), --硬盘容量
cd CHAR(4), --光驱
price INT, --价钱
PRIMARY KEY(model)
);
表样例
pc
表:
model | speed | ram | hd | cd | price |
---|---|---|---|---|---|
1001 | 133.00 | 16 | 1.60 | 6X | 1595 |
1002 | 120.00 | 16 | 1.60 | 6X | 1399 |
1003 | 166.00 | 24 | 2.50 | 6X | 1899 |
1004 | 166.00 | 32 | 2.50 | 8X | 1999 |
1006 | 200.00 | 32 | 3.10 | 8X | 2099 |
1008 | 180.00 | 32 | 2.00 | 8X | 3699 |
1009 | 200.00 | 32 | 2.50 | 8X | 2599 |
输出样例:
model1 | model2 |
---|---|
1006 | 1009 |
select a.model model1,b.model model2
from pc a,pc b
where a.model < b.model and a.speed=b.speed and a.ram=b.ram
order by a.model
10-112 A1-6在顾客表中找出不是特定城市的顾客信息
在顾客表(customers)
中找出所在城市(City)
不是Madrid
、Torino
和Paris
的顾客编号(CustomerID)
及电话(Phone)
提示:请使用SELECT语句作答。
表结构:
列名 | 数据类型 | 长度 | 主码 | 说明 |
---|---|---|---|---|
CustomerID | varchar | 5 | √ | 顾客编号 |
CompanyName | varchar | 40 | 公司名称 | |
ContactName | varchar | 30 | 联系姓名 | |
ContactTitle | varchar | 30 | 联系头衔 | |
Address | varchar | 60 | 地址 | |
City | varchar | 15 | 城市 | |
Region | varchar | 15 | 区域 | |
PostalCode | varchar | 10 | 邮政编码 | |
Country | varchar | 15 | 国家 | |
Phone | varchar | 24 | 电话 | |
Fax | varchar | 24 | 传真 |
表样例
customers
表:
CustomerID | City | Phone |
---|---|---|
ALFKI | Berlin | 030-0074321 |
ANATR | Mxico D.F. | (5) 555-4729 |
ANTON | Mxico D.F. | (5) 555-3932 |
AROUT | London | (171) 555-7788 |
BERGS | Lule | 0921-12 34 65 |
BLAUS | Mannheim | 0621-08460 |
BLONP | Strasbourg | 88.60.15.31 |
BOLID | Madrid | (91) 555 22 82 |
BONAP | Marseille | 91.24.45.40 |
BOTTM | Tsawassen | (604) 555-4729 |
输出样例:
CustomerID | Phone |
---|---|
ALFKI | 030-0074321 |
ANATR | (5) 555-4729 |
ANTON | (5) 555-3932 |
AROUT | (171) 555-7788 |
BERGS | 0921-12 34 65 |
BLAUS | 0621-08460 |
BLONP | 88.60.15.31 |
BONAP | 91.24.45.40 |
BOTTM | (604) 555-4729 |
select CustomerID,Phone
from customers
where City not in('Madrid','Torino','Paris')
10-113 A1-7在产品表中找出库存量小于订购量的产品信息
在产品表(products)
中找出库存量(UnitsInStock)
小于订购量(UnitsOnOrder)
的产品的产品编号(ProductID)
和产品名称(ProductName)
提示:请使用SELECT语句作答。
表结构:
列名 | 数据类型 | 长度 | 主码 | 说明 |
---|---|---|---|---|
ProductID | int | 11 | √ | 产品编号 |
ProductName | varchar | 40 | 产品名称 | |
SupplierID | int | 11 | 供应商编号 | |
CategoryID | int | 11 | 种类编号 | |
QuantityPerUnit | varchar | 20 | 数量 | |
UnitPrice | decimal | 10,4 | 单价 | |
UnitsInStock | smallint | 2 | 库存数量 | |
UnitsOnOrder | smallint | 2 | 订购数量 | |
ReorderLevel | smallint | 2 | 再次订购量 | |
Discontinued | bit | 1 | 中止 |
表样例
products
表:
ProductID | ProductName | UnitsInStock | UnitsOnOrder |
---|---|---|---|
1 | Chai | 39 | 0 |
2 | Chang | 17 | 40 |
3 | Aniseed Syrup | 13 | 70 |
4 | Chef Anton's Cajun Seasoning | 53 | 0 |
5 | Chef Anton's Gumbo Mix | 0 | 0 |
6 | Grandma's Boysenberry Spread | 120 | 0 |
7 | Uncle Bob's Organic Dried Pears | 15 | 0 |
8 | Northwoods Cranberry Sauce | 6 | 0 |
9 | Mishi Kobe Niku | 29 | 0 |
10 | Ikura | 31 | 0 |
输出样例:
ProductID | ProductName |
---|---|
2 | Chang |
3 | Aniseed Syrup |
select ProductID,ProductName from products where UnitsInStock<UnitsOnOrder
10-114 A1-8查询传真号码不为空的供货商信息
在供货商(suppliers)
中查找传真号码(Fax)
不为NULL的供货商信息供货商编号(SupplierID)
,公司名称(CompanyName)
提示:请使用SELECT语句作答。
表结构:
列名 | 数据类型 | 长度 | 主码 | 说明 |
---|---|---|---|---|
SupplierID | int | 11 | √ | 供应商编号 |
CompanyName | varchar | 40 | 公司名称 | |
ContactName | varchar | 30 | 联系人 | |
ContactTitle | varchar | 30 | 职务 | |
Address | varchar | 60 | 地址 | |
City | varchar | 15 | 城市 | |
Region | varchar | 15 | 区域 | |
PostalCode | varchar | 10 | 邮政编码 | |
Country | varchar | 15 | 国家 | |
Phone | varchar | 24 | 电话 | |
Fax | varchar | 24 | 传真 | |
HomePage | mediumtext, | 主页 |
表样例
suppliers
表:
SupplierID | CompanyName | Fax |
---|---|---|
1 | Exotic Liquids | |
2 | New Orleans Cajun Delights | |
3 | Grandma Kelly's Homestead | (313) 555-3349 |
4 | Tokyo Traders | |
5 | Cooperativa de Quesos 'Las Cabras' | |
6 | Mayumi's | |
7 | Pavlova, Ltd. | (03) 444-6588 |
8 | Specialty Biscuits, Ltd. | |
9 | PB Knckebrd AB | 031-987 65 91 |
输出样例:
请在这里给出输出样例。例如:
SupplierID | CompanyName |
---|---|
3 | Grandma Kelly's Homestead |
7 | Pavlova, Ltd. |
9 | PB Knckebrd AB |
select SupplierID,CompanyName from suppliers where Fax is not null
10-115 A2-1查找产品表中再次订购量大于15的产品信息
在产品表(products)
中找出再次订购量(ReorderLevel)
大于15
的产品的产品编号(ProductID)
,产品名称(ProductName)
和供货商编号(SupplierID)
提示:请使用SELECT语句作答。
表结构:
列名 | 数据类型 | 长度 | 主码 | 说明 |
---|---|---|---|---|
ProductID | int | 11 | √ | 产品编号 |
ProductName | varchar | 40 | 产品名称 | |
SupplierID | int | 11 | 供应商编号 | |
CategoryID | int | 11 | 种类编号 | |
QuantityPerUnit | varchar | 20 | 数量 | |
UnitPrice | decimal | 10,4 | 单价 | |
UnitsInStock | smallint | 2 | 库存数量 | |
UnitsOnOrder | smallint | 2 | 订购数量 | |
ReorderLevel | smallint | 2 | 再次订购量 | |
Discontinued | bit | 1 | 中止 |
表样例
products
表:
ProductID | ProductName | SupplierID | ReorderLevel |
---|---|---|---|
1 | Chai | 1 | 10 |
2 | Chang | 1 | 25 |
3 | Aniseed Syrup | 1 | 25 |
4 | Chef Anton's Cajun Seasoning | 2 | 0 |
5 | Chef Anton's Gumbo Mix | 2 | 0 |
6 | Grandma's Boysenberry Spread | 3 | 25 |
7 | Uncle Bob's Organic Dried Pears | 3 | 10 |
8 | Northwoods Cranberry Sauce | 3 | 0 |
9 | Mishi Kobe Niku | 4 | 0 |
10 | Ikura | 4 | 0 |
输出样例:
ProductID | ProductName | SupplierID |
---|---|---|
2 | Chang | 1 |
3 | Aniseed Syrup | 1 |
6 | Grandma's Boysenberry Spread | 3 |
select ProductID,ProductName,SupplierID
from products
where ReorderLevel>15
10-116 A2-2查找产品表中再次订购量大于等于10且修订量大于订货数量的产品信息
在产品表(products)
中找出再次订购量(ReorderLevel)
大于等于10
,且再次订购量(ReorderLevel)
大于订购数量(UnitsOnOrder)
的产品的产品编号(ProductID)
,产品名称(ProductName)
和供货商编号(SupplierID)
提示:请使用SELECT语句作答。
表结构:
列名 | 数据类型 | 长度 | 主码 | 说明 |
---|---|---|---|---|
ProductID | int | 11 | √ | 产品编号 |
ProductName | varchar | 40 | 产品名称 | |
SupplierID | int | 11 | 供应商编号 | |
CategoryID | int | 11 | 种类编号 | |
QuantityPerUnit | varchar | 20 | 数量 | |
UnitPrice | decimal | 10,4 | 单价 | |
UnitsInStock | smallint | 2 | 库存数量 | |
UnitsOnOrder | smallint | 2 | 订购数量 | |
ReorderLevel | smallint | 2 | 再次订购量 | |
Discontinued | bit | 1 | 中止 |
表样例
products
表:
ProductID | ProductName | SupplierID | UnitsOnOrder | ReorderLevel |
---|---|---|---|---|
1 | Chai | 1 | 10 | 0 |
2 | Chang | 1 | 25 | 40 |
3 | Aniseed Syrup | 1 | 25 | 70 |
4 | Chef Anton's Cajun Seasoning | 2 | 0 | 0 |
5 | Chef Anton's Gumbo Mix | 2 | 0 | 0 |
6 | Grandma's Boysenberry Spread | 3 | 25 | 0 |
7 | Uncle Bob's Organic Dried Pears | 3 | 10 | 0 |
8 | Northwoods Cranberry Sauce | 3 | 0 | 0 |
9 | Mishi Kobe Niku | 4 | 0 | 0 |
10 | Ikura | 4 | 0 | 0 |
输出样例:
ProductID | ProductName | SupplierID |
---|---|---|
1 | Chai | 1 |
6 | Grandma's Boysenberry Spread | 3 |
7 | Uncle Bob's Organic Dried Pears | 3 |
select ProductID,ProductName,SupplierID
from products
where UnitsOnOrder<ReorderLevel and ReorderLevel>=10
10-117 A2-3查询产品表中单价不在范围内的的产品信息
在产品表(products)
中查询单价(UnitPrice)
小于15
或大于45
的产品的产品编号(ProductID)
,产品名称(ProductName)
和种类编号(CategoryID)
提示:请使用SELECT语句作答。
表结构:
列名 | 数据类型 | 长度 | 主码 | 说明 |
---|---|---|---|---|
ProductID | int | 11 | √ | 产品编号 |
ProductName | varchar | 40 | 产品名称 | |
SupplierID | int | 11 | 供应商编号 | |
CategoryID | int | 11 | 种类编号 | |
QuantityPerUnit | varchar | 20 | 数量 | |
UnitPrice | decimal | 10,4 | 单价 | |
UnitsInStock | smallint | 2 | 库存数量 | |
UnitsOnOrder | smallint | 2 | 订购数量 | |
ReorderLevel | smallint | 2 | 再次订购量 | |
Discontinued | bit | 1 | 中止 |
表样例
products
表:
ProductID | ProductName | CategoryID | UnitPrice |
---|---|---|---|
1 | Chai | 1 | 18.0000 |
2 | Chang | 1 | 19.0000 |
3 | Aniseed Syrup | 2 | 10.0000 |
4 | Chef Anton's Cajun Seasoning | 2 | 22.0000 |
5 | Chef Anton's Gumbo Mix | 2 | 21.3500 |
6 | Grandma's Boysenberry Spread | 2 | 25.0000 |
7 | Uncle Bob's Organic Dried Pears | 7 | 30.0000 |
8 | Northwoods Cranberry Sauce | 2 | 40.0000 |
9 | Mishi Kobe Niku | 6 | 97.0000 |
10 | Ikura | 8 | 31.0000 |
输出样例:
ProductID | ProductName | CategoryID |
---|---|---|
3 | Aniseed Syrup | 2 |
9 | Mishi Kobe Niku | 6 |
select ProductID,ProductName,CategoryID
from products
where UnitPrice >45 or UnitPrice<15
10-118 spj-统计各供应商的零件供应量
本题目要求编写Select语句,在SPJ
数据库中,统计每个供应商的零件供应量总和。
要求:仅对那些每次供应零件的数量都在100
以上(含100)的供应商进行统计。
如:供应商s2
供应工程项目 j5
的p3
零件数量为50
,则不统计供应商s2
。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `j` ( -- 工程项目表
`jno` char(3) NOT NULL,-- 工程项目号
`jname` varchar(10) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
PRIMARY KEY (`jno`)
);
CREATE TABLE `p` ( -- 零件表
`pno` char(3) NOT NULL, -- 零件号
`pname` varchar(10) DEFAULT NULL,
`color` char(2) DEFAULT NULL,
`weight` smallint(6) DEFAULT NULL,
PRIMARY KEY (`pno`)
);
CREATE TABLE `s` ( -- 供应商表
`sno` char(3) NOT NULL, -- 供应商号
`sname` varchar(10) DEFAULT NULL,
`status` char(2) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
PRIMARY KEY (`sno`)
);
CREATE TABLE `spj` ( -- 零件供应表
`sno` char(3) NOT NULL,
`pno` char(3) NOT NULL,
`jno` char(3) NOT NULL,
`qty` smallint(6) DEFAULT NULL,
PRIMARY KEY (`sno`,`pno`,`jno`),
CONSTRAINT `fk_jno` FOREIGN KEY (`jno`) REFERENCES `j` (`jno`),
CONSTRAINT `fk_pno` FOREIGN KEY (`pno`) REFERENCES `p` (`pno`),
CONSTRAINT `fk_sno` FOREIGN KEY (`sno`) REFERENCES `s` (`sno`)
);
表样例
请在这里给出上述表结构对应的表样例。例如
s
表:
p
表:
j
表:
spj
表:
输出样例:
请在这里给出输出样例。例如:
select a.sno 供应商号,sname 供应商,sum(qty) 供应总量
from spj a,s
where a.sno=s.sno
and s.sno not in (select distinct sno from spj b where qty<100)
group by a.sno
10-119 spj-显示供应商供应零件的汇总列表
本题目要求编写SELECT语句,在SPJ
数据库中,列出各个供应商供应各种零件的数量合计的汇总列表。
要求:显示出每个供应商供应每种零件的数量合计和每个供应商供应所有零件的数量合计以及所有供应商供应的所有零件数量合计。
提示:请使用 " WITH ROLLUP " 语句作答。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `j` ( -- 工程项目表
`jno` char(3) NOT NULL,-- 工程项目号
`jname` varchar(10) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
PRIMARY KEY (`jno`)
);
CREATE TABLE `p` ( -- 零件表
`pno` char(3) NOT NULL, -- 零件号
`pname` varchar(10) DEFAULT NULL,
`color` char(2) DEFAULT NULL,
`weight` smallint(6) DEFAULT NULL,
PRIMARY KEY (`pno`)
);
CREATE TABLE `s` ( -- 供应商表
`sno` char(3) NOT NULL, -- 供应商号
`sname` varchar(10) DEFAULT NULL,
`status` char(2) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
PRIMARY KEY (`sno`)
);
CREATE TABLE `spj` ( -- 零件供应表
`sno` char(3) NOT NULL,
`pno` char(3) NOT NULL,
`jno` char(3) NOT NULL,
`qty` smallint(6) DEFAULT NULL,
PRIMARY KEY (`sno`,`pno`,`jno`),
CONSTRAINT `fk_jno` FOREIGN KEY (`jno`) REFERENCES `j` (`jno`),
CONSTRAINT `fk_pno` FOREIGN KEY (`pno`) REFERENCES `p` (`pno`),
CONSTRAINT `fk_sno` FOREIGN KEY (`sno`) REFERENCES `s` (`sno`)
);
表样例
请在这里给出上述表结构对应的表样例。例如
s
表:
p
表:
j
表:
spj
表:
输出样例:
请在这里给出输出样例。例如:
select coalesce(sno,'所有供应商')'供应商',coalesce (pno,'所有零件') '零件',sum(qty) '供应量'
from spj
group by sno,pno
with rollup
10-120 spj-查询比p6零件供应数量都高的零件
本题目要求编写SQL语句,在SPJ
数据库中,查询在供应工程项目零件时,比p6
零件每次的供应数量都高的零件pno
。
提示:请使用SELECT语句作答。
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `j` ( -- 工程项目表
`jno` char(3) NOT NULL,-- 工程项目号
`jname` varchar(10) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
PRIMARY KEY (`jno`)
);
CREATE TABLE `p` ( -- 零件表
`pno` char(3) NOT NULL, -- 零件号
`pname` varchar(10) DEFAULT NULL,
`color` char(2) DEFAULT NULL,
`weight` smallint(6) DEFAULT NULL,
PRIMARY KEY (`pno`)
);
CREATE TABLE `s` ( -- 供应商表
`sno` char(3) NOT NULL, -- 供应商号
`sname` varchar(10) DEFAULT NULL,
`status` char(2) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
PRIMARY KEY (`sno`)
);
CREATE TABLE `spj` ( -- 零件供应表
`sno` char(3) NOT NULL,
`pno` char(3) NOT NULL,
`jno` char(3) NOT NULL,
`qty` smallint(6) DEFAULT NULL,
PRIMARY KEY (`sno`,`pno`,`jno`),
CONSTRAINT `fk_jno` FOREIGN KEY (`jno`) REFERENCES `j` (`jno`),
CONSTRAINT `fk_pno` FOREIGN KEY (`pno`) REFERENCES `p` (`pno`),
CONSTRAINT `fk_sno` FOREIGN KEY (`sno`) REFERENCES `s` (`sno`)
);
表样例
请在这里给出上述表结构对应的表样例。例如
s
表:
p
表:
j
表:
spj
表:
输出样例:
请在这里给出输出样例。例如:
select pno from spj
group by pno
having min(qty) > (select max(qty) from spj where pno='p6')
10-121 A3-1查询订单表中的平均运费
查询订单表(orders)
的平均运费
,并将其重命名为avgFreight
提示:请使用SELECT语句作答。
表结构:
列名 | 数据类型 | 长度 | 主码 | 说明 |
---|---|---|---|---|
OrderID | int | 11 | √ | 订单编号 |
CustomerID | varchar | 5 | 顾客编号 | |
EmployeeID | int | 11 | 员工编号 | |
OrderDate | datetime, | 订购日期 | ||
RequiredDate | datetime, | 预计到达日期 | ||
ShippedDate | datetime, | 发货日期 | ||
ShipVia | int | 11 | 运货商 | |
Freight | decimal | 10,4 | 运费 | |
ShipName | varchar | 40 | 货主姓名 | |
ShipAddress | varchar | 60 | 货主地址 | |
ShipCity | varchar | 15 | 所在城市 | |
ShipRegion | varchar | 15 | 区域 | |
ShipPostalCode | varchar | 10 | 邮政编码 | |
ShipCountry | varchar | 15 | 所在国家 |
表样例
请在这里给出上述表结构对应的表样例。例如
orders
表:
OrderID | CustomerID | EmployeeID | OrderDate | RequiredDate | ShippedDate | ShipVia | Freight | ShipName | ShipAddress | ShipCity | ShipRegion | ShipPostalCode | ShipCountry |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
10248 | VINET | 5 | 1996/7/4 00:00:00 | 1996/8/1 00:00:00 | 1996/7/16 00:00:00 | 3 | 32.3800 | Vins et alcools Chevalier | 59 rue de l-Abbaye | Reims | 51100 | France | |
10249 | TOMSP | 6 | 1996/7/5 00:00:00 | 1996/8/16 00:00:00 | 1996/7/10 00:00:00 | 1 | 11.6100 | Toms Spezialitten | Luisenstr. 48 | Mnster | 44087 | Germany | |
10250 | HANAR | 4 | 1996/7/8 00:00:00 | 1996/8/5 00:00:00 | 1996/7/12 00:00:00 | 2 | 65.8300 | Hanari Carnes | Rua do Pao, 67 | Rio de Janeiro | RJ | 05454-876 | Brazil |
10251 | VICTE | 3 | 1996/7/8 00:00:00 | 1996/8/5 00:00:00 | 1996/7/15 00:00:00 | 1 | 41.3400 | Victuailles en stock | 2, rue du Commerce | Lyon | 69004 | France | |
10252 | SUPRD | 4 | 1996/7/9 00:00:00 | 1996/8/6 00:00:00 | 1996/7/11 00:00:00 | 2 | 51.3000 | Suprmes dlices | Boulevard Tirou, 255 | Charleroi | B-6000 | Belgium | |
10253 | HANAR | 3 | 1996/7/10 00:00:00 | 1996/7/24 00:00:00 | 1996/7/16 00:00:00 | 2 | 58.1700 | Hanari Carnes | Rua do Pao, 67 | Rio de Janeiro | RJ | 05454-876 | Brazil |
10254 | CHOPS | 5 | 1996/7/11 00:00:00 | 1996/8/8 00:00:00 | 1996/7/23 00:00:00 | 2 | 22.9800 | Chop-suey Chinese | Hauptstr. 31 | Bern | 3012 | Switzerland | |
10255 | RICSU | 9 | 1996/7/12 00:00:00 | 1996/8/9 00:00:00 | 1996/7/15 00:00:00 | 3 | 148.3300 | Richter Supermarkt | Starenweg 5 | Genve | 1204 | Switzerland | |
10256 | WELLI | 3 | 1996/7/15 00:00:00 | 1996/8/12 00:00:00 | 1996/7/17 00:00:00 | 2 | 13.9700 | Wellington Importadora | Rua do Mercado, 12 | Resende | SP | 08737-363 | Brazil |
10257 | HILAA | 4 | 1996/7/16 00:00:00 | 1996/8/13 00:00:00 | 1996/7/22 00:00:00 | 3 | 81.9100 | HILARION-Abastos | Carrera 22 con Ave. Carlos Soublette #8-35 | San Cristbal | Tchira | 5022 | Venezuela |
输出样例:
avgFreight |
---|
52.78200000 |
select avg(Freight) avgFreight from orders