SQL【91-105】

10-92 2-2-(e)查询所有彩色打印机的元组

本题目要求编写SQL语句,
检索出printer表中所有彩色打印机的元组。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE printer
( model CHAR(20) NOT NULL,    --型号
  color BIT,                  --是否彩色
  type CHAR(10),              --类型
  price INT,                  --价钱
  PRIMARY KEY(model)
);

表样例

printer表:

modelcolortypeprice
30011喷墨275
30021喷墨269
30030激光829
30040激光879

输出样例:

modelcolortypeprice
30011喷墨275
30021喷墨269
select * from printer where color=1

10-93 spj-查找在同一个城市的所有工程项目

本题目要求编写SQL语句,在SPJ数据库中,查找在同一个城市的所有工程项目jname,输出结果集以城市名city升序排序, 城市 名相同的再以工程项目jname升序排序。

提示:请使用SELECT语句作答。

表结构:

请在这里写定义表结构的SQL语句。例如:


CREATE TABLE  j  (  -- 工程项目表
   jno  char(3) NOT NULL,  -- 工程项目号
   jname  nvarchar(10) DEFAULT NULL,
   city  nvarchar(10) DEFAULT NULL,
  PRIMARY KEY ( jno )
) ;
CREATE TABLE  p  (  -- 零件表
   pno  char(3) NOT NULL,  -- 零件号
   pname  nvarchar(10) DEFAULT NULL,
   color  nchar(2) DEFAULT NULL,
   weight  smallint DEFAULT NULL,
  PRIMARY KEY ( pno )
) ;
CREATE TABLE  s  ( -- 供应商表
   sno  char(3) NOT NULL,  -- 供应商号
   sname  nvarchar(10) DEFAULT NULL,
   status  char(2) DEFAULT NULL,
   city  nvarchar(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 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表:

s.JPG

p表:

p.JPG

j表:

j.JPG

spj表:

spj.JPG

输出样例:

请在这里给出输出样例。例如:

5.JPG

select city,jname
from j
where city in(select
city from j group by city 
having count(city)>1)
order by city asc,jname asc

10-94 spj-查询同时使用红色的螺母零件和蓝色的螺丝刀零件的工程

本题目要求编写SQL语句,在SPJ数据库中,查询同时使用红色螺母零件和蓝色螺丝刀零件的工程项目名称jname,输出结果以jname升序排序。
注:假定红色螺母零件和蓝色螺丝刀零件分别只有一个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表:

s.JPG

p表:

p.JPG

j表:

j.JPG

spj表:

spj.JPG

输出样例:

请在这里给出输出样例。例如:

6.JPG

select jname 
from j 
where jno in 
(select jno from (select DISTINCT jno from spj where pno in (select pno from p where pname='螺母' and color='红')) as a
        where jno in (select DISTINCT jno from spj where pno in(SELECT pno from p where pname='螺丝刀' and color='蓝'))) 
order by jname asc

10-95 2-2-(f)查询具有1GB以上的硬盘容量而价格低于2000美元的所有个人计算机的型号、速度以及硬盘容量

本题目要求编写SQL语句,
检索出pc表中具有1GB以上的硬盘容量而价格低于2000美元的所有个人计算机的型号(model)、速度(speed)以及硬盘容量(hd)

提示:请使用SELECT语句作答。

表结构:

请在这里写定义表结构的SQL语句。例如:

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表:

modelspeedramhdcdprice
1001133.00161.606X1595
1002120.00161.606X1399
1003166.00242.506X1899
1004166.00322.508X1999
1008180.00322.008X3699
1009200.00322.508X2599

输出样例:

modelspeedhd
1001133.001.60
1002120.001.60
1003166.002.50
1004166.002.50

select model,speed,hd from pc where price<2000 and hd>1

10-96 spj-查询各工程项目使用所提供零件最多的供应商

本题目要求编写SQL语句,在SPJ数据库中,查询各工程项目使用所提供零件最多的供应商

提示:请使用SELECT语句作答。

如统计各工程项目的各供应商提供的零件数量和为:

8-1.JPG

则每个工程项目的使用所提供最多零件数量的供应商分别为:

8-2.JPG

表结构:

请在这里写定义表结构的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表:

s.JPG

p表:

p.JPG

j表:

j.JPG

spj表:

spj.JPG

输出样例:

请在这里给出输出样例。例如:

8-2.JPG

select jno,sno,qty
from (select sno,jno,sum(qty) qty
from spj
group by jno,sno)as x
where x.qty=(
select max(qty)
from (select jno,sum(qty) qty
from spj
group by jno,sno)as y
where x.jno=y.jno)
order by jno

10-97 spj-显示每个工程项目使用零件的供应列表

本题目要求编写SQL语句,在SPJ数据库中,显示每个工程项目所使用的提供零件数量少于100的供应列表,如工程项目尚未有供应商提供零件的也要列出。输出结果集以工程项目jno升序排序。

提示:请使用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表:

s.JPG

p表:

p.JPG

j表:

j.JPG

spj表:

spj.JPG

输出样例:

请在这里给出输出样例。例如:

9.JPG

select a.jno,jname,sname,pname,qty
from (select spj.jno,jname
from j,spj
where j.jno=spj.jno and qty<100) a inner join (select spj.jno,sname
from s,spj
where s.sno=spj.sno and qty<100) b on b.jno=a.jno
inner join (select spj.jno,pname,qty
from p,spj
where p.pno=spj.pno and qty<100) c on c.jno=a.jno
union
select jno,jname,NULL as sname,NULL as pname,0 as qty
from j
where jno not in (select distinct jno
from spj)
order by jno asc

10-98 3-1-(a) 查询电影“M3”中的男影星

本题目要求编写SQL语句,
查询电影M3中的影星。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE MovieStar                     
(  name CHAR(20) NOT NULL,                    --姓名
  address VARCHAR(255),                       --地址
  gender CHAR(1) CHECK(gender IN('F','M')),   --性别
  birthdate DATE,                             --生日
  PRIMARY KEY(name)
);
CREATE TABLE StarsIn                      
(  movieTitle CHAR(20),                   --电影名称
  movieYear INT ,                         --拍摄年份
  starName CHAR(20),                      --演员姓名
  PRIMARY KEY(movieTitle,movieYear,starName),
  FOREIGN KEY(starName) REFERENCES MovieStar(name)
);

表样例

MovieStar表:

nameaddressgenderbirthdate
S1sa1F1990-01-01
S2sa2F1980-01-01
S3sa3M1985-12-10
S4sa4F1994-11-01

StarsIn表:

movieTitlemovieYearstarName
M12018S1
M22018S1
M32019S2
M42017S3
M32019S3
M32019S4

输出样例:

name
S3

select name from StarsIn join MovieStar on MovieStar.name=StarsIn.starName
where movieTitle='M3' and gender='M'

10-99 3-1-(b) 查询st1制片公司的总裁

本题目要求编写SQL语句,
查询st1制片公司的总裁。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE MovieExec        
(  name CHAR(20),              --姓名  
  address VARCHAR(255),        --地址
  certID  CHAR(10) NOT NULL,   --身份证号
  netWorth INT,                --资产
  PRIMARY KEY(certID)
);
CREATE TABLE Studio           
(  name CHAR(20) NOT NULL ,   --公司名称
  address VARCHAR(255),       --地址  
  presCertID CHAR(10) ,       --行政总裁
  PRIMARY KEY(name),
  FOREIGN KEY(presCertID) REFERENCES MovieExec(certID)
);

表样例

MovieExec表:

nameaddresscertIDnetWorth
a1b10001111
a2b20002222
a3b30003333
a4b40004444
S4sa40005444

Studio表:

nameaddresspresCertID
st1sta10001
st2sta20003

输出样例:

name
a1
select MovieExec.name from MovieExec join Studio on Studio.presCertID=MovieExec.certID where Studio.name='st1'

10-100 3-1-(c)查询在st1公司于2018年制作的电影中出演的影星

本题目要求编写SQL语句,
查询在st1公司于2018年制作的电影中出演的影星。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE Movie              
(  title CHAR(20) NOT NULL,     --电影名称
  year INT NOT NULL,            --拍摄年份
  length INT ,                  --长度
  inColor BIT DEFAULT 1,        --是否彩色
  studioName CHAR(20),          --所属电影公司
  producerCertID CHAR(10),      --制片人
  PRIMARY KEY (title,year), 
);

CREATE TABLE StarsIn                      
(  movieTitle CHAR(20),                   --电影名称
  movieYear INT ,                         --拍摄年份
  starName CHAR(20),                      --演员姓名
  PRIMARY KEY(movieTitle,movieYear,starName),
  FOREIGN KEY(movieTitle, movieYear) REFERENCES Movie(title,year) 
);

表样例

Movie表:

titleyearlengthinColorstudioNameproducerCertID
M120181001st10001
M220181001st10002
M320191001st20003
M420171001st20004
M520141001st20004
M620151001st20004
M72018951st20003

StarsIn表:

movieTitlemovieYearstarName
M12018S1
M22018S1
M32019S2
M42017S3
M32019S3
M32019S4
M72018S2

输出样例:

starName
S1

select distinct starName
from StarsIn
where movieYear=2018 AND movieTitle IN (SELECT title 
from Movie
where studioName='st1' and year=2018)

10-101 A1-2根据所在国家查找订单信息

订单表(orders)中找出所在国家(ShipCountry)GermanyBrazilFrance订单编号(OrderID)顾客编号(CustomerID)

提示:请使用SELECT语句作答。

表结构:

列名数据类型长度主码说明
OrderIDint11订单编号
CustomerIDvarchar5顾客编号
EmployeeIDint11员工编号
OrderDatedatetime,订购日期
RequiredDatedatetime,预计到达日期
ShippedDatedatetime,发货日期
ShipViaint11运货商
Freightdecimal10,4运费
ShipNamevarchar40货主姓名
ShipAddressvarchar60货主地址
ShipCityvarchar15所在城市
ShipRegionvarchar15区域
ShipPostalCodevarchar10邮政编码
ShipCountryvarchar15所在国家

表样例

请在这里给出上述表结构对应的表样例。例如

orders表:

OrderIDCustomerIDShipCountry
10248VINETFrance
10249TOMSPGermany
10250HANARBrazil
10251VICTEFrance
10252SUPRDBelgium
10253HANARBrazil
10254CHOPSSwitzerland
10255RICSUSwitzerland
10256WELLIBrazil
10257HILAAVenezuela

输出样例:

OrderIDCustomerID
10248VINET
10249TOMSP
10250HANAR
10251VICTE
10253HANAR
10256WELLI

select distinct OrderID,CustomerID from orders where ShipCountry in('France','Brazil','Germany')

10-102 A1-3查询顾客表中所有不重复的城市

查询出顾客表(customers)中所有不重复的所在城市(City)

提示:请使用SELECT语句作答。

表结构:

列名数据类型长度主码说明
CustomerIDvarchar5顾客编号
CompanyNamevarchar40公司名称
ContactNamevarchar30联系姓名
ContactTitlevarchar30联系头衔
Addressvarchar60地址
Cityvarchar15城市
Regionvarchar15区域
PostalCodevarchar10邮政编码
Countryvarchar15国家
Phonevarchar24电话
Faxvarchar24传真

表样例

customers表:

CustomerIDCompanyNameCity
ANATRAna Trujillo Emparedados y heladosMxico D.F.
ANTONAntonio Moreno TaqueraMxico D.F.
AROUTAround the HornLondon
BERGSBerglunds snabbkpLule
BLAUSBlauer See DelikatessenMannheim
BLONPBlondesddsl pre et filsStrasbourg
BOLIDBlido Comidas preparadasMadrid
BONAPBon app'Marseille
BOTTMBottom-Dollar MarketsTsawassen

输出样例:

City
Berlin
Mxico D.F.
London
Lule
Mannheim
Strasbourg
Madrid
Marseille
Tsawassen
select distinct City from customers 

10-103 A1-4在产品表中找出库存数量大于50的产品的信息

产品表(products)中找出库存数量(UnitsInStock)大于50产品编号(ProductID),产品名称(ProductName)
提示:请使用SELECT语句作答。

表结构:

列名数据类型长度主码说明
ProductIDint11产品编号
ProductNamevarchar40产品名称
SupplierIDint11供应商编号
CategoryIDint11种类编号
QuantityPerUnitvarchar20数量
UnitPricedecimal10,4单价
UnitsInStocksmallint2库存数量
UnitsOnOrdersmallint2订购数量
ReorderLevelsmallint2再次订购量
Discontinuedbit1中止

表样例

products表:

ProductIDProductNameUnitsInStock
1Chai39
2Chang17
3Aniseed Syrup13
4Chef Anton's Cajun Seasoning53
5Chef Anton's Gumbo Mix0
6Grandma's Boysenberry Spread120
7Uncle Bob's Organic Dried Pears15
8Northwoods Cranberry Sauce6
9Mishi Kobe Niku29
10Ikura31

输出样例:

请在这里给出输出样例。例如:

ProductIDProductName
4Chef Anton's Cajun Seasoning
6Grandma's Boysenberry Spread
select ProductID,ProductName from products where UnitsInStock>50

10-104 3-1-(d)查询比电影《M1》时间更长的电影

本题目要求编写SQL语句,
查询比电影M1时间更长的电影。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE Movie              --电影表
(  title CHAR(20) NOT NULL,     --电影名称
  year INT NOT NULL,            --拍摄年份
  length INT ,                  --长度
  inColor BIT DEFAULT 1,        --是否彩色
  studioName CHAR(20),          --所属电影公司
  producerCertID CHAR(10),      --制片人
  PRIMARY KEY (title,year)  
);

表样例

Movie表:

titleyearlengthinColorstudioNameproducerCertID
M120181001st10001
M220181001st10002
M320191201st20003
M42017901st20004
M520141101st20004
M62015951st20004

输出样例:

titleyear
M32019
M52014
select title,year from Movie where length>(select length from Movie where title='M1')

10-105 3-1-(e)查询比a1更富有的行政长官

本题目要求编写SQL语句,
查询比a1更富有的行政长官。

提示:请使用SELECT语句作答。

表结构:

CREATE TABLE MovieExec        
(  name CHAR(20),              --姓名  
  address VARCHAR(255),        --地址
  certID  CHAR(10) NOT NULL,   --身份证号
  netWorth INT,                --资产
  PRIMARY KEY(certID)
);
CREATE TABLE Studio           
(  name CHAR(20) NOT NULL ,   --公司名称
  address VARCHAR(255),       --地址  
  presCertID CHAR(10) ,       --行政总裁
  PRIMARY KEY(name),
  FOREIGN KEY(presCertID) REFERENCES MovieExec(certID)
);

表样例

MovieExec

nameaddresscertIDnetWorth
a1b10001111
a2b20002222
a3b30003333
a4b40004444
S4sa40005444

Studio

nameaddresspresCertID
st1sta10001
st2sta20003

输出样例:

name
a3

select MovieExec.name from MovieExec join Studio on MovieExec.certID=Studio.presCertID
where netWorth>(select netWorth from MovieExec where name='a1')

10-106 A1-5在顾客表中找出特定名字的顾客信息

顾客表(customers)中找出公司名(CompanyName)中包含字符串th的顾客编号和公司名称

提示:请使用SELECT语句作答。

表结构:

列名数据类型长度主码说明
CustomerIDvarchar5顾客编号
CompanyNamevarchar40公司名称
ContactNamevarchar30联系姓名
ContactTitlevarchar30联系头衔
Addressvarchar60地址
Cityvarchar15城市
Regionvarchar15区域
PostalCodevarchar10邮政编码
Countryvarchar15国家
Phonevarchar24电话
Faxvarchar24传真

表样例

请在这里给出上述表结构对应的表样例。例如

customers表:

CustomerIDCompanyName
ALFKIAlfreds Futterkiste
ANATRAna Trujillo Emparedados y helados
ANTONAntonio Moreno Taquera
AROUTAround the Horn
BSBEVB's Beverages
BERGSBerglunds snabbkp
BLAUSBlauer See Delikatessen
BOLIDBlido Comidas preparadas
BLONPBlondesddsl pre et fils
BONAPBon app'

输出样例:

请在这里给出输出样例。例如:

CustomerIDCompanyName
AROUTAround the Horn
select CustomerID,CompanyName from customers where CompanyName like'%th%'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值