PTA - 数据库合集2

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 
    hd > 1 AND price < 2000;

 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
    MovieStar
WHERE 
    name in (SELECT starName FROM StarsIn
            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
    a.name
FROM
    MovieExec a, Studio b
WHERE
    b.presCertID = a.certID
AND 
    b.name = 'st1'

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

本题目要求编写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
    a.name
FROM
    MovieExec a, Studio b
WHERE
    b.presCertID = a.certID
AND 
    b.name = 'st1'

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

分数 10

全屏浏览题目

切换布局

作者 lhm

单位 河北农业大学

本题目要求编写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 
    movieTitle IN (SELECT title FROM Movie
                   WHERE studioName = 'st1'
                   AND YEAR = 2018)	
AND 
    movieYear = 2018;

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

分数 20

全屏浏览题目

切换布局

作者 柯海丰

单位 浙大城市学院

订单表(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
    OrderID , CustomerID
FROM 
    orders
WHERE
    ShipCountry = 'Germany' OR ShipCountry = 'Brazil' OR ShipCountry = 'France'

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

分数 10

全屏浏览题目

切换布局

作者 lhm

单位 河北农业大学

本题目要求编写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 
    name
FROM 
    MovieExec
WHERE 
    networth > ANY(
    SELECT networth 
    FROM MovieExec
    WHERE name='a1'
    )
AND 
    certID IN (
    SELECT presCertID
    FROM Studio
)

10-109 3-2-(c)查询所有出售便携式电脑(而不出售PC机)的生产厂商

分数 10

全屏浏览题目

切换布局

作者 lhm

单位 河北农业大学

本题目要求编写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表:

makermodeltype
D2003便携式电脑
D3001打印机
B1006个人电脑
B3002打印机
E2004便携式电脑
D1008个人电脑
A1001个人电脑
A1002个人电脑

pc表:

modelspeedramhdcdprice
1001133.00161.606X1595
1002120.00161.606X1399
1008180.00322.008X3699

laptop表:

modelspeedramhdscreenprice
2003117321.0011.203599
2004133161.1011.303699

输出样例:

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-111 3-2-(e)查询拥有相同速度和内存的PC机的成对的型号

分数 10

全屏浏览题目

切换布局

作者 lhm

单位 河北农业大学

本题目要求编写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表:

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

输出样例:

model1model2
10061009

SELECT
    a.model as model1,b.model as model2
FROM
    pc as a,pc as b
WHERE
    a.speed=b.speed and a.ram=b.ram and a.model<b.model
ORDER BY 
    model1;

10-120 spj-查询比p6零件供应数量都高的零件

分数 10

全屏浏览题目

切换布局

作者 张庆

单位 集美大学

本题目要求编写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 Distinct 
    pno
FROM 
    spj a
WHERE 
    pno not in(
    SELECT 
            pno
    FROM 
            spj b
    WHERE 
            b.qty <= (
        SELECT 
                max(qty)
        FROM 
                spj
        WHERE 
                pno='p6'
    )
);

10-127 A4-3在订单表中查找特定国家且平均运费不小于10的信息

分数 20

全屏浏览题目

切换布局

作者 柯海丰

单位 浙大城市学院

查询订单表(orders)中查找所在国家(ShipCountry)BelgiumSwitzerland,且平均运费不小于10的的顾客及运费信息,结果显示为顾客编号(CustomerID)平均运费(avgFreight)

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

表结构:

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

表样例

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

orders表:

OrderIDCustomerIDEmployeeIDOrderDateRequiredDateShippedDateShipViaFreightShipNameShipAddressShipCityShipRegionShipPostalCodeShipCountry
10248VINET51996/7/4 00:00:001996/8/1 00:00:001996/7/16 00:00:00332.3800Vins et alcools Chevalier59 rue de l-AbbayeReims51100France
10249TOMSP61996/7/5 00:00:001996/8/16 00:00:001996/7/10 00:00:00111.6100Toms SpezialittenLuisenstr. 48Mnster44087Germany
10250HANAR41996/7/8 00:00:001996/8/5 00:00:001996/7/12 00:00:00265.8300Hanari CarnesRua do Pao, 67Rio de JaneiroRJ05454-876Brazil
10251VICTE31996/7/8 00:00:001996/8/5 00:00:001996/7/15 00:00:00141.3400Victuailles en stock2, rue du CommerceLyon69004France
10252SUPRD41996/7/9 00:00:001996/8/6 00:00:001996/7/11 00:00:00251.3000Suprmes dlicesBoulevard Tirou, 255CharleroiB-6000Belgium
10253HANAR31996/7/10 00:00:001996/7/24 00:00:001996/7/16 00:00:00258.1700Hanari CarnesRua do Pao, 67Rio de JaneiroRJ05454-876Brazil
10254CHOPS51996/7/11 00:00:001996/8/8 00:00:001996/7/23 00:00:00222.9800Chop-suey ChineseHauptstr. 31Bern3012Switzerland
10255RICSU91996/7/12 00:00:001996/8/9 00:00:001996/7/15 00:00:003148.3300Richter SupermarktStarenweg 5Genve1204Switzerland
10256WELLI31996/7/15 00:00:001996/8/12 00:00:001996/7/17 00:00:00213.9700Wellington ImportadoraRua do Mercado, 12ResendeSP08737-363Brazil
10257HILAA41996/7/16 00:00:001996/8/13 00:00:001996/7/22 00:00:00381.9100HILARION-AbastosCarrera 22 con Ave. Carlos Soublette #8-35San CristbalTchira5022Venezuela

输出样例:

|CustomerID|avgFreight|
|CHOPS|22.98000000|
|RICSU|148.33000000|
|SUPRD|51.30000000|

SELECT 
    CustomerID,AVG(Freight) AS avgFreight
FROM 
    orders
WHERE 
    ShipCountry IN ('Belgium','Switzerland')
GROUP BY 
    CustomerID
HAVING 
    AVG(Freight) >= 10;

10-128 A4-4查找产品表中平均订购数大于特定值的产品信息

分数 20

全屏浏览题目

切换布局

作者 柯海丰

单位 浙大城市学院

产品表(products)中查找平均订购数量大于15的产品信息,显示为:产品编号(ProductID),和总订货数量(重命名为sumUnitsOnOrder

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

表结构:

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

表样例

products表:

ProductIDProductNameSupplierIDCategoryIDQuantityPerUnitUnitPriceUnitsInStockUnitsOnOrderReorderLevelDiscontinued
1Chai1110 boxes x 20 bags1839010
2Chang1124 - 12 oz bottles19174025
3Aniseed Syrup1212 - 550 ml bottles10137025
4Chef Anton's Cajun Seasoning2248 - 6 oz jars225300
5Chef Anton's Gumbo Mix2236 boxes21.35000
6Grandma's Boysenberry Spread3212 - 8 oz jars25120025
7Uncle Bob's Organic Dried Pears3712 - 1 lb pkgs.3015010
8Northwoods Cranberry Sauce3212 - 12 oz jars40600
9Mishi Kobe Niku4618 - 500 g pkgs.972900
10Ikura4812 - 200 ml jars313100

输出样例:

ProductIDsumUnitsOnOrder
240
370
SELECT 
    ProductID,SUM(UnitsOnOrder) AS sumUnitsOnOrder
FROM 
    products
GROUP BY 
    ProductID
HAVING 
    AVG(UnitsOnOrder) > 15;

10-129 4-1 查询速度至少为160MHz的PC的制造商

分数 10

全屏浏览题目

切换布局

作者 lhm

单位 河北农业大学

本题目要求编写SQL语句,
查询速度至少为160MHz的PC的制造商。

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

表结构:

CREATE TABLE product
( maker CHAR(20) ,          --制造商
  model CHAR(20) NOT NULL,  --产品型号
  type CHAR(20),            --产品类型
  PRIMARY KEY(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表:

makermodeltype
D2003便携式电脑
D3001打印机
B3002打印机
A1001个人电脑
B1006个人电脑
D1008个人电脑
D1009个人电脑

pc表:

modelspeedramhdcdprice
1001133.00161.606X1595
1006200.00323.108X2099
1008180.00322.008X3699
1009200.00322.508X2599

输出样例:

maker
B
D
SELECT DISTINCT 
    maker
FROM 
    product
WHERE 
    model IN(SELECT model FROM pc WHERE speed>=160) 
AND 
    type='个人电脑'

10-130 4-2 查询价格最高的打印机型号

分数 10

全屏浏览题目

切换布局

作者 lhm

单位 河北农业大学

本题目要求编写SQL语句,
查询价格最高的打印机型号。

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

表结构:

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

表样例

printer表:

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

输出样例:

model
3004

SELECT DISTINCTs
    model
FROM 
    printer
WHERE 
    price >= ALL(
        SELECT price 
        FROM printer
    )

10-131 4-3 查询速度低于任何PC的便携式电脑

分数 10

全屏浏览题目

切换布局

作者 lhm

单位 河北农业大学

本题目要求编写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) 
);
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)
);

表样例

pc表:

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

laptop表:

modelspeedramhdscreenprice
2001100.00201.109.501999
2002117.00120.7511.302499
2004133.00161.1011.203499

输出样例:

model
2001
2002

SELECT 
    model 
FROM 
    laptop
WHERE 
    speed < all (
    SELECT speed 
    FROM pc
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羊 : )

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值