すらすらと手が動くようになる SQL書き方ドリル

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

補足情報

●Windows XP Home EditionにPostgreSQLをインストールするときのご注意
  • データベースクラスタを作成するための領域としてNTFSパーティションが必要です。
  • インストールが失敗して再インストールする場合は次のnetコマンドでpostgresアカウントを削除してから続行してください(netコマンドはコマンドプロンプトなどを利用して入力します)。

C:\>net user postgres /delete

お詫びと訂正(正誤表)

書籍の内容に誤りのあったことを,本書をお買いあげいただいた読者の皆様および関係者の方々におわびいたします。

P.57 第2章 その8 練習問題 第3問

[記入スペース] BEWEEN [記入スペース] AND [記入スペース]
[記入スペース] BETWEEN [記入スペース] AND [記入スペース]

P.71 第2章 その10 練習問題 第4問

「B」にランク分けし,SalesID,~
「B」にランク分けし,SaleID,~

P.102 第2章 その14 練習問題 第2問

Priceが160から399まで
Priceが100から399まで

P.105 第2章 その14 練習問題 第5問

Weightが61から60まで
Weightが51から60まで

P.109 第2章 その15 実行結果

bゥbゥ座布団
ふかふか座布団

P.111 第2章 その15 練習問題 第2問

DaleDate
SaleDate

P.111 第2章 その15 練習問題 第2問

SalesID
SaleID

P.127 第3章 その1 練習問題 第3問

Product
Products

P.147 第3章 その3 練習問題 第2問

PregecturalID
PrefecturalID

P.157 第3章 その4 練習問題 第3問

PrifecturalName
PrefecturalName

P.159 第3章 その5 解答,p.159~160考え方と書き順

( p1.Price + p2.Price ) > 2500
( p1.Price + p2.Price ) >= 2500

P.160 第3章 その5 考え方と書き順

ON ( p1.ProductID < p1.ProductID )
ON ( p1.ProductID < p2.ProductID )

P.194 第3章 その9 練習問題 第3問

SalDate
SaleDate

P.212 第4章 その2 問題

販売テーブルの名前はSale
販売テーブルの名前はSales

P.219 第4章 その2 練習問題 第1問

<= 1990
< 1990

P.222 第4章 その2 練習問題 第5問

CustomerId
CustomerID

P.229 第3章 その3 練習問題 第3問

, [記入スペース] =[記入スペース] + [記入スペース]
, [記入スペース] =[記入スペース] - [記入スペース]

P.234 第4章 その4 練習問題 第3問

[記入スペース] = [記入スペース] - [2]

, [記入スペース] = [記入スペース] + [3]

[記入スペース] = [記入スペース] - 2
, [記入スペース] = [記入スペース] + 3

P.236 第4章 その5 問題

Sale
Sales

P.254 第4章 その6 練習問題 第5問

Product
Products

P.285 解答編 第2章 その6 第2問

||(上下が切れている)
||

P.293 解答編 第3章 その6 第5問

SELECT DISTINCT
Z.EmployeeName
FROM
Salary X
JOIN
BelongTo Y
JOIN
Employees Z
USING (EmployeeID)
WHERE
Y.EndDate IS NULL
AND
X.Amount >=
( SELECT
AVG( Amount )
FROM
Salary A
JOIN
BelongTo B
USING (EmployeeID)
WHERE
Y.DepartmentID = B.DepartmentID
)
;
SELECT DISTINCT
Z.EmployeeName
FROM
Salary X
JOIN
BelongTo Y
USING (EmployeeID)
JOIN
Employees Z
USING (EmployeeID)
WHERE
Y.EndDate IS NULL
AND
( SELECT
AVG(Amount)
FROM
Salary
WHERE
EmployeeID = Z.EmployeeID
) 
>=
( SELECT
AVG(Amount)
FROM
Salary A
JOIN
BelongTo B
USING (EmployeeID)
WHERE
Y.DepartmentID = B.DepartmentID
)
;

P.299 第4章 その9 練習問題 第3問

Sale
Sales

なお,以下の誤りは第2刷では修正されています。

P.24 第2章 その2 練習問題 第2問

ProductCD
ProductID

P.37 第2章 その5 解答

SELECT
Weight / (Height / 100) * (Height / 100) AS BMI
FROM
Employees
;
SELECT
Weight / (Height / 100) / (Height / 100) AS BMI
FROM
Employees
;
注)PostgreSQLでは,
以下のように小数点を扱える型への
変換(キャスト)を指定します。

Weight / 
(Height::FLOAT / 100) / (Height::FLOAT / 100) 
AS BMI

P.38 第2章 その5 考え方と書き順 SQLの書き順(4)(下から3行目)

  Weight / (Height / 100) * (Height / 100) AS BMI
  Weight / (Height / 100) / (Height / 100) AS BMI

P.39 第2章 その5 実行結果

bmi
72
60
52
45
(以下略)
bmi
25.5102040816327
23.1472551213302
21.6441207075963
18.0259573786252
24.2214532871972
(以下略)

P.39 第2章 その5 ワンポイントレッスン 下のSELECT文

  ((Weight / (Height / 100)) * (Height / 100) AS BMI
  ((Weight / (Height / 100)) / (Height / 100) AS BMI

P.40 第2章 その5 ワンポイントレッスン 上の実行結果

bmi
72
60
52
45
(以下略)
bmi
25.5102040816327
23.1472551213302
21.6441207075963
18.0259573786252
24.2214532871972
(以下略)

P.40 第2章 その5 ワンポイントレッスン SELECT文

  Weight / (Height / 100) * Height / 100 AS BMI
  Weight / ((Height / 100) / (Height / 100)) AS BMI

P.40 第2章 その5 ワンポイントレッスン 下の実行結果

bmi
120
96
80
71
(以下略)
bmi
72
60
52
45
(以下略)

P.55 第2章 その8 ワンポイントレッスン SELECT文の上の解説文 3行目

次のSQL文は入社年度が2000年以降で~
次のSQL文は入社年度が1988年以降で~

P.56 第2章 その8 ワンポイントレッスン 説明文

以下のようにORを使うと,入社年度が2000年以降~
以下のようにORを使うと,入社年度が1988年以降~

P.57 第2章 その8 練習問題 第4問 問題文

2004年6月1日以降のSalesIDを取り出しなさい。SalesDateの表記は~
2004年6月1日以降のSaleIDを取り出しなさい。SaleDateの表記は~

P.101 第2章 その14 練習問題 第1問 問題文3行目

「180cm以下:Heightが171から180まで」「160cm以下:Heightが180以上」
「180cm以下:Heightが171から180まで」「181cm以上:Heightが181以上」

P.102 第2章 その14 練習問題 第1問 SELECT文 上から15行目

  END ) AS "180cm以上"
  END ) AS "181cm以上"

P.113 第2章 その14 練習問題 第5問 問題文2行目

EmployeeID
DepartmentID

P.188 第3章 その9 右上のアイコン

 
対応DBMSとして「SQL Server」も含まれていますが,「SQL Server」は非対応です。

P.196 第3章 その10 右上のアイコン

 
対応DBMSとして「SQL Server」も含まれていますが,「SQL Server」は非対応です。

P.220~222 第4章 その2 練習問題 第3~5問 問題データ項目

SalesID
SaleID

P.228 第4章 その2 練習問題 第2問 問題文

EMailを***@nanstop-->***@nanstop.co.jpに~
EMailを***@nekoyasudoから***@nekoyasudo.co.jpに~

P.286 第2章解答 その8 第4問

WHERE
SaleDate >= '2004-06-01'
;
WHERE
TO_CHAR(SaleDate,'yyyy-mm-dd') >= '2004-06-01'
;

P.286 第2章解答 その9 第4問

WHERE
EmployeeName LIKE '%リ%'
AND
Height >= 160
;
WHERE
EmployeeName LIKE '%リ%'
AND
Height < 160

P.288 第2章解答 その14 第1問 SELECT文 18行目

  END ) AS "180cm以上"
  END ) AS "181cm以上"