MySQL の SELECT の基本

ここでは MySQL でデータを取得するのに使われる SELECT 文の基本についてご説明します。

サンプルデータベースのテーブルを使いますので、実際にスクリプトを実行してみたい方は、こちら のスクリプトを実行して school_db データベースを作成しておいてください。

MySQL の SELECT 文の基本

MySQL でデータベースのテーブルからデータを取得には SELECT 文を使います。

SELECT 文は上手に書くと欲しいデータを効率よく取得することができます。

逆に下手に書くと、データの取得に時間がかかり、アプリケーションのパフォーマンスに大きく影響したりします。


SELECT 文には様々な句、キーワード、オプションなどが指定できますが、よく使う基本の SELECT 文の構文は次の通りです。

SELECT select_expr

[ FROM table_references ] 

[ WHERE where_condition ] 

[ GROUP BY {col_name | expr | position} ] 

[ HAVING where_condition ] 

[ ORDER BY {col_name | expr | position} [ ASC | DESC ] ]

[ LIMIT {[offset,] row_count | row_count OFFSET offset} ];

必須なのは SELECT 句だけで、[ ] でくくられているのはオプショナルな句です。

それぞれの句の役割をざっくり説明すると、次のような感じです。

  • SELECT: 取得したいデータを指定する
  • FROM: データを取得したいテーブルを指定する
  • WHERE: データを取得する際の条件を指定する
  • GROUP BY: データをグループ化したいときに指定する
  • HAVING: データをグループ化したときの条件を指定する
  • ORDER BY: データのソート順を指定する (ASC: 昇順 | DESC: 降順)
  • LIMIT: SELECT 文の結果セットの何行目から何行分取得するか指定する

それぞれの句の具体的な使い方は、これからサンプルデータで実際にクエリーを書いて試しながら、学習していきましょう。


テーブルの全カラムの全レコードを取得する

それでは SELECT 文を使って、データを取得してみましょう。

テーブルの全カラム、全レコードを取得したい時には次のクエリーで取得することができます。

SELECT  *
FROM    テーブル名;

SELECT の次の * は、FROM で指定されているテーブルの全てのカラムのデータを取得したい時に使われます。


サンプルデータベースの school_db をスクリプトを実行して作った方は、次のような students テーブルができてデータが入っていると思います。

MySQL の SELECT の基本 1


この students テーブルの全カラム、全レコードを取得したい時は次のクエリーで取得できます。

SELECT  *
FROM    students;

上のクエリーを実行すると、次のようになります。

MySQL の SELECT の基本 2

students テーブルの全カラム、全レコードが、テーブルのカラム順で取得できました。


テーブルの特定のカラムの全レコードを取得する

では、次にテーブルの全カラムではなく、特定のカラムの全レコードを取得してみましょう。

特定のカラムのデータのみを取得したい場合は、SELECT 句でそのカラム名を指定します。


例えば、first_name、last_name、gender のデータのみを取得するクエリーは次のようになります。

SELECT  first_name,
		last_name,
        gender
FROM    students;

上のクエリーを実行すると、次のようになります。

MySQL の SELECT の基本 3

students テーブルの first_name、last_name、gender カラムの全レコードが取得できましたね。


以上、MySQL でデータを取得するのに使われる SELECT 文の基本についてご説明しました。

© 2024 MySQL 入門