【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_nameとlast_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を使いこなすための第一歩となります。