基本
「Customersテーブルから、CustomerID、CompanyNameを取得しなさい」
SELECT CustomerID, CompanyName FROM Customers
- SELECTは、データの取得をするためのSQL命令
- CustomerID、CompanyNameは、それぞれ列の名前を指定します
- 複数の列を指定するときは、「,」で区切り
- SELECTとカラムの列の部分を、SELECT句、もしくは、SELECT文節
- FROMは、テーブルの指定。Customersテーブルを指定している
WHERE句の使い方
SQLによるデータの取得では、欲しい情報の条件を指定することが出来ます
SQLによるデータの取得では、欲しい情報の条件を指定することが出来ます
SELECT CustomerID, CompanyName, City
FROM Customers WHERE City = 'London'
- City列が'London'の行のみを取得するように指定しています
WHERE句には、複数の条件を指定することも可能
SELECT * FROM Orders
WHERE CustomerID = 'QUICK' AND OrderDate > '1998/1/1'
- Ordersテーブルから、CustomerIDが'QUICK'で、かつ、OrderDateが1998年以降のものを取得
BETWEEN条件
SELECT * FROM Orders
WHERE CustomerID = 'QUICK' AND
OrderDate BETWEEN '1996/1/1' AND '1997/12/31'
- 値が指定した2つの値の間にあるか否かを比較します。
- Ordersテーブルから、OrderDateが1996/1/1から1997/12/31であるものを取得します。
IN条件
SELECT * FROM Orders
WHERE CustomerID IN ('QUICK', 'VINET')
- 値が指定した値のリストの中にあるかを比較します。
- OrdersテーブルからCustomerIDが'QUICK'か'VINET'であるものを取得します。
LIKE条件
SELECT * FROM Orders WHERE CustomerID LIKE 'Q%'
- 文字の検索条件を指定します。
- %は「任意の文字数の任意の文字」、_は「1文字の任意の文字」を表します。
- CustomerID LIKE 'Q%'は、CustomerIDがQで始まる文字を指定し、CustomerID LIKE 'Q_'は、CustomerIDがQで始まる2文字の文字を指定します。
SQL文での集計の方法(GROUP BY)
Order Detailsテーブルの指定
SELECT * FROM "Order Details"
製品ごとにいくつ注文があったか、合計を計算してみる
SELECT ProductID, Sum(Quantity)
FROM "Order Details"
GROUP BY ProductID
- 「GROUP BY」というキーワードに続けて、集計のキーとなる列名を指定します
- 集計のキーは「製品」、すなわち、「ProductID」
- 「Sum(Quantity)」は、Quantity列の合計を求める集計関数
- MAX:最大値
- MIN:最小値
- AVG:平均値
- COUNT:データの個数
- 複数の集計関数を指定することも可能
SELECT ProductID, Avg(UnitPrice), Sum(Quantity)
FROM "Order Details"
GROUP BY ProductID
列名の指定「AS」
「AS」句を使用することで、列名の指定をすることが可能
SELECT ProductID AS "製品ID", Sum(Quantity) AS "個数合計"
FROM "Order Details"
GROUP BY ProductID