※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

基本
「Customersテーブルから、CustomerID、CompanyNameを取得しなさい」
SELECT CustomerID, CompanyName FROM Customers
  • SELECTは、データの取得をするためのSQL命令
  • CustomerID、CompanyNameは、それぞれ列の名前を指定します
    • 複数の列を指定するときは、「,」で区切り
  • SELECTとカラムの列の部分を、SELECT句、もしくは、SELECT文節
  • FROMは、テーブルの指定。Customersテーブルを指定している

WHERE句の使い方
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