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

サポートページ

補足情報

●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以上"