数据库SQL语句练习题含答案
- 格式:docx
- 大小:35.15 KB
- 文档页数:22
SQL语句练习
练习5. 1. 2: 基于不断滚动的电影数据库的实例:
Movie( 电影名title,拍摄年代 year ,长度 length, inColor ,制片厂名
studioName, 制片人证书号producerC# )
StarsIn(电影名movieTitle,拍摄年份 movieYear ,影星名starName)
MovieStar (姓名 name,地址 address,性别 gender ,生日 birthdate)
MovieExec( 姓名name,地址 address ,证书号 cert # ,净资产 netWorth )
Studio(姓名 name, 地址address,总裁证书号presC# )
请写出下列SQL 查询语句:
* ( a) 找出米高梅制片公司(MGM studios)的地址。
SELECT address AS Studio_Address
FROM Studio WHERE name = 'MGM';
( b) 找出桑德拉·布洛克( Sandra Bullock ) 的出生日期( birthdate) 。
SELECT birthdate AS Star_Birthdate
FROM MovieStar WHERE name = 'Sandra Bullock';
* ( c) 找出在 1980 年拍摄过电影的所有影星, 或者拍摄过电影名中含有“Love”的电影的所有影星。
SELECT starName FROM StarsIn
WHERE movieYear = 1980 OR movieTitle LIKE '%Love%';
( d) 找出净资产至少1 000 万美元的所有行政长官。 SELECT name AS Exec_Name
FROM MovieExec WHERE netWorth >= 10000000;
( e) 找出所有的男影星或者是住址中含有Malibu 的影星。
SELECT name AS Star_Name FROM movieStar
WHERE gender = 'M' OR address LIKE '% Malibu %';
练习5. 1. 3: 用SQL 写出下列的查询。查询将引用练习4. 1. 1 中所描述的数据库模式:
Product (maker , model, t ype)
maker( 制造商) model( 型号) t ype( 类型)
PC(model, speed, ram, hd, cd, pr ice)
model( 型号) speed( 速度) ram( 内存) hd( 硬盘) cd( 光驱) pr ice( 价格)
Laptop(model, speed, ram, h d, screen, price)
model( 型号) speed( 速度) ram( 内存) hd( 硬盘) s creen( 屏幕) pr ice( 价格)
Printer (model, color , t ype, pr ice)
model( 型号) color ( 彩色) type( 类型) price( 价格)
使用练习4. 1. 1 的数据, 请写出查询的结果。
* ( a ) 找出价格低于 1 600 美元的所有个人计算机( PC) 的型号( model)、速度 ( speed) 以及硬盘容量( hd) 。
SELECT model, speed, hd FROM PC WHERE price < 1600 ;
* ( b) 同( a)的要求, 另外将“速度”( speed)改为“兆赫”(megaher t z) , 将“硬盘”( hd) 改为“吉字节”( gigabytes) 。
SELECT model , speed AS gigahertz, hd AS gigabytes FROM PC
WHERE price < 1600 ; ( c) 找出打印机( Printer ) 的制造商(maker ) 。
SELECT maker FROM Product WHERE type = 'printer' ;
( d) 找出费用高于 2 000 美元的便携式电脑( laptop )的型号、内存容量( ram)以及 屏幕尺寸( screen) 。
SELECT model, ram , screen FROM Laptop WHERE price > 2000 ;
( e) 从Printer 关系中找出所有彩色打印机的元组。记住color 是布尔值的属性。
SELECT * FROM Printer WHERE color =true;
( f ) 找出具有 6 倍速或 8 倍速光驱( 6x or 8x cd)而价格低于 2 000 美元的所有个人 计算机的型号、速度以及硬盘容量。你可以把属性cd 看作是字符串类型的。
SELECT model, speed, hd FROM PC
WHERE cd=’6x’ or cd=’8x’ and price <= 2000 ;
练习5. 1. 4: 基于练习4. 1. 3 的数据库模式:
Classes ( class , type, country, numGuns, bore, displacement)
class( 等级名) 、type( 类型: bb 代表战列舰, 或bc 代表巡洋舰) 、country
( 制造舰艇的国家) 、numGuns ( 主要火炮的数量) 、bore( 主要火炮的口径: 炮管的直径, 以英寸计算) 和displacement ( 排水量: 重量, 以吨计算)
Ships (name, class , launched)
name( 舰艇名) 、class( 舰艇等级名) 和launched( 舰艇下水的年份)
Battles(name, date)
name(名字) 和date(日期)
Outcomes( ship, battle, result ) 给出每艘舰艇在每次战役中的result ( 结果: 沉没、损坏或完好)
写出下列查询, 并根据练习4. 1. 3 中的数据给出查询的结果:
( a) 列出至少拥有十门火炮( numGuns )的所有舰艇等级( class )的名称( name )和 所属国家( country) 。
SELECT class, country FROM Classes WHERE numGuns >= 10 ;
( b) 找出所有在 1918 年以前下水的舰艇的 name, 而结果的名称用
shipName 来表示。
SELECT name AS shipName FROM Ships WHERE launched < 1918;
( c) 找出所有在作战中沉没的舰艇的name, 同时给出使它们沉没的bat
tle( 战役名) 。
SELECT ship AS shipName, battle FROM Outcomes
WHERE result = 'sunk';
( d) 找出所有name 和class 同名的舰艇。
SELECT name AS shipName FROM Ships WHERE name = class;
( e) 找出name 以字母R 开头的所有舰艇的名称。
SELECT name AS shipName FROM Ships WHERE name LIKE 'R%';
! ( f ) 找出舰名中包含三个或三个以上单词( 如King George V) 的所有舰艇的名称。
SELECT name AS shipName FROM Ships
WHERE name LIKE '_% _% _%' ;
练习5. 2. 1: 使用我们不断滚动的电影实例的数据库模式 Movie( title, year , length, inColor , studioName, producerC# )
StarsIn(movieTitle, movieYear , starName)
MovieStar ( name, address, gender , birthdate)
MovieExec( name, address , cert # , netWorth )
Studio( name, address, presC# )
用SQL 写出下列查询:
* ( a) 电影“Terms of Endearment”中的男影星都有谁?
SELECT AS starName FROM MovieStar M, StarsIn S
WHERE = S.starName AND S.movieTitle = 'Terms of Endearment'
AND M.gender = 'M';
( b) 哪些影星出现在米高梅公司(MGM) 于1995 年制作的电影中?
SELECT S.starName FROM Movies M , StarsIn S, Studios T
WHERE ='MGM' AND M.year = 1995
AND M.title = S.movieTitle AND M.studioName = ;
( c) 谁是米高梅制片公司的总裁?
SELECT AS presidentName FROM MovieExec X, Studio T
WHERE X.cert# = T.presC# AND = 'MGM';
* ! ( d) 哪些电影比《乱世佳人》(Gong With the Wind) 更长?
SELECT M1.title FROM Movies M1, Movies M2
WHERE M1.length > M2.length AND M2.title ='Gone With the Wind' ; ! ( e) 哪些行政长官比Merv Griffin 更富有?
SELECT AS execName FROM MovieExec X1, MovieExec X2
WHERE Worth > Worth AND = 'Merv Griffin' ;
练习5. 2. 2: 基于练习4. 1. 1 中的数据库模式
Product (maker , model, type)
PC ( model, speed, ram, hd, cd, pr ice)
Laptop (model, speed, ram, hd, screen, price)
Printer (model, color , type, price)
写出下列查询:
* ( a) 给出配置了容量至少为 1G 字节的硬盘( h d)的便携式电脑( laptop)的生产厂商(maker ) 及其速度( speed) 。
L.speed AS gigahertz FROM Product R, Laptop L
WHERE L.hd >= ‘1G’ AND R.model = L.model ;
* ( b) 找出由生产厂商 B 生产的所有产品的型号(model)和价格( pr ice)。
SELECT R.model, P.price FROM Product R, PC P WHERE R.maker = 'B'
AND R.model = P.model UNION
SELECT R.model, L.price FROM Product R, Laptop L WHERE R.maker =