【SQL】SELECT文の書き方と使い方の基本

この記事では、SQLで最もよく使うSELECT文の基本を解説します。データベースのテーブルからデータを取り出すための基本的な書き方から、全カラムの取得、特定カラムの取得、さらには取得したカラムに別名を付ける方法までを、サンプルコードを使って分かりやすく学びます。

作成日: 更新日:

開発環境

  • OS: Windows10
  • DatabaseGUI: TablePlus
  • MySQL: 8.0.42

SELECT文とは

SELECT文は、データベースの「テーブル」からデータを取得するためのSQL文です。テーブルとは、Excelのシートのように行と列で構成された、データを格納する表のことです。

このSELECT文を使うことで、テーブルに保存されているたくさんのデータの中から、必要な情報だけを選んで取り出すことができます。データベースを操作する上で最も基本的で、最も頻繁に使われる命令の一つです。

SELECT文の基本構文

SELECT文は、データベースに格納されているデータを取得(検索)するために使用する、最も基本的な命令です。この構文を使うことで、指定したテーブルから必要な列のデータだけを抜き出すことができます。

SELECTの後には、取得したいデータの列(カラム)の名前を記述します。複数の列を取得したい場合は、カンマ(,)で区切って並べます。

FROMの後には、データを取得する対象となるテーブルの名前を記述します。テーブルとは、データが行と列の形式で整理された表のことです。

つまり、この構文は「どのテーブルから、どのカラムのデータを取得するか」をデータベースに指示するためのものです。

1SELECT
2    カラム名,
3    カラム名,
4    ...
5FROM
6    テーブル名;

命令の最後には、文の終わりを示す記号としてセミコロン(;)を記述することが一般的です。

サンプルコード

これは、データベースから情報を取得するための基本的なSQL文であるSELECT文のサンプルです。SELECT文を使うことで、指定したテーブルから必要なデータを抽出できます。

sql/chapter03/01.sql

classesという名前のテーブルに保存されているデータをすべて取得するためのSQL文です。 SELECT ** (アスタリスク)は、「すべてのカラム(列)」を意味します。FROM classes は、「classesテーブルから」という意味です。 つまり、このSQL文は「classesテーブルから、すべてのカラムのデータを取得する」という命令になります。

1-- classes テーブルの内容を取得
2SELECT
3	*
4FROM
5	classes;

sql/chapter03/02.sql

テーブルから特定のカラムのデータだけを取得したい場合に使用します。 前のサンプルと違い、* の代わりに name という具体的なカラム名を指定しています。 これにより、「classesテーブルからnameカラムのデータだけを取得する」という命令になります。

1-- classes テーブルの内容をカラムを指定して取得
2SELECT
3	name
4FROM
5	classes;

sql/chapter03/03.sql

これは、studentsテーブルに保存されているデータをすべて取得するためのSQL文です。 FROM句の後にテーブル名を変えることで、異なるテーブルからデータを取得できます。 このSQL文は「studentsテーブルから、すべてのカラムのデータを取得する」という命令になります。

1-- students テーブルの内容を取得
2SELECT
3	*
4FROM
5	students;

sql/chapter03/04.sql

studentsテーブルから、複数の特定のカラムを取得するサンプルです。 取得したいカラム名が複数ある場合は、このようにカンマ(,)で区切って指定します。 このSQL文は「studentsテーブルからfirst_namelast_nameのカラムのデータを取得する」という命令になります。

1-- students テーブルの内容をカラムを指定して取得
2SELECT
3	first_name,
4    last_name
5FROM
6	students;

sql/chapter03/05.sql

取得したデータのカラム名に、分かりやすい別名を付けることができます。 カラム名の後に AS と付けたい別名を書くことで、結果の表示名を変更できます。 この例では、first_name名前last_name苗字という名前で表示されます。

1-- カラムに別名を付ける
2SELECT
3    first_name AS 名前,
4    last_name AS 苗字
5FROM
6    students;
7

sql/chapter03/06.sql

こちらもカラムに別名を付けるサンプルです。 classesテーブルのnameカラムを、クラス名という別名で取得します。 結果を分かりやすく整理したい場合などに便利です。

1-- カラムに別名を指定する
2SELECT
3    name AS クラス名
4FROM
5    classes;
6

おわりに

今回は、データベースからデータを取得するためのSELECT文の基本を学びました。SELECTで取得したいカラムを、FROMで対象のテーブルを指定するのが基本の書き方です。アスタリスク(*)を使えばすべてのカラムを一度に取得でき、ASを使えばカラムに分かりやすい別名を付けて結果を整理することもできます。まずはこの基本操作をしっかり身につけることが、SQLを使いこなすための第一歩となります。

【SQL】SELECT文の書き方と使い方の基本 | いっしー@Webエンジニア