English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLクエリデータ(SELECT文)

このチュートリアルでは、SQLを使用してデータベーステーブルからレコードを選択する方法を学びます。

テーブルからデータを選択する

前章では、データベーステーブルにデータを挿入する方法を学びました。今や、既存のテーブルからデータを選択するSQLクエリを使用する時が来ました。

SELECT文は、1つまたは複数のテーブルからデータを選択または検索するために使用されます。この文を使用して、一度にテーブルのすべての行を検索したり、特定の条件や条件の組み合わせに一致する行のみを検索したりできます。

構文

テーブルからデータを選択する基本的な構文は以下のように示されます:

SELECT column1_name, column2_name, columnN_name FROM table_name;

ここでは、column1_namecolumn2_name、...は、値を取得したいデータベースのテーブルの列やフィールドの名前です。しかし、テーブルのすべての利用可能な列の値を取得する場合は、以下の構文を使用できます:

SELECT * FROM table_name;

これらの文を実用的な使用に取り入れてみましょう。例えば、データベースにemployeesのテーブル、以下のレコードが含まれています:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

テーブルのすべてのデータをクエリして表示します

以下の文は以下を返しますemployeesテーブルのすべての行です。

SELECT * FROM employees;

実行後、出力は以下のようになります:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

ご覧の通り、以下のように返されますemployeesテーブルのすべての行と列です。

ヒント:星号(*)はワイルドカードです。すべての内容を示します。例えば、SELECTの上の例の文の星号文字はemployeeテーブルのすべての列の省略形を使用します。

テーブルから指定の列をクエリするために選択してください

すべてのデータが必要でない場合、特定の列を選択することができます。以下のようになります:

SELECT emp_id, emp_name, hire_date, salary
FROM employees;

上記のステートメントを実行すると、以下のような出力が得られます:

+--------+--------------+------------+--------+
| emp_id | emp_name     | hire_date  | salary |
+--------+--------------+------------+--------+
|      1 | Ethan Hunt   | 1995-10-30 |   5000 |
|      2 | Tony Montana | 1990-07-15 |   6500 |
|      3 | Sarah Connor | 2011-04-13 |   5600 |
|      4 | Rick Deckard | 2005-10-18 |   7200 |
|      5 | Martin Blank | 1996-05-24 |   8000 |
+--------+--------------+------------+--------+

ご覧の通り、この結果セットにはありません。dept_id次の章では、条件に基づいてテーブルからレコードを選択する方法を学びます。