MySQL

MySQL selectコマンド実例集

MySQLでテーブルからデータを取得するコマンドが select です。selectコマンドに色々な条件を追加することで、取得したいデータをテーブルから抽出することが可能です。この記事では、サンプルデータベースを準備し、実例を挙げて欲しいデータを抽出する際の条件指定について説明しています。下の目次からコマンド例を逆引き出来る形にしていますので、取得されたい条件の項目をクリックして見て下さい。

【サンプルテーブル テーブル名 : testDB】

IDNameAGE
1Sato19
2Ito20
3InoueNULL
4Saito30

全てのレコードを取得

MySQL selectコマンド

select * from testDB;

実行結果
テーブルの内容全てを取得出来ました。
selectの後にアスタリスクを指定することで、全てのカラムのデータを取得されます。

SQL select ALL

カラムを指定し全てのレコードを取得

Nameだけを取得します。

MySQL selectコマンド

select Name from testDB;

実行結果
Nameカラムだけ取得出来ました。
特定のカラムだけ取得する場合は、selectの後に取得したいカラム名を入力します。複数のカラムからデータを取得したい場合は、 select ID, Name のようにカラム名をカンマで区切り入力します。

SQL select a column

カラムのフィールドに特定文字列を含むレコードを取得

NameがInoueさんのレコードを取得します。

MySQL selectコマンド

select * from testDB where Name="Inoue";

実行結果
Nameが”Inoue"であるレコードが取得されました。
取得するレコードの条件の指定はwhereに続く式で入力します。この例ではName="Inoue"がその条件式です。データがテキスト情報の場合はダブルクオテーションかシングルクオテーションで囲む必要があります。

SQL select where text

カラムのデータがある値より大きいレコードを取得

AGEが20以上のレコードを取得します。

MySQL selectコマンド

select * from testDB where age>=20;

実行結果
AGEが20以上であるレコードが取得されました。
繰り返しになりますが、whereに続く式で条件を指定しています。"age>=20"でAGEが20以上という条件指定になります。

SQL select where

カラムのデータがある値より小さいレコードを取得

AGEが20より小さいレコードを取得します。

MySQL selectコマンド

select * from testDB where AGE<20;

実行結果
AGEが20より小さいレコードが取得されました。
20より小さいなので条件式は"AGE<20"となります。

SQL select where

カラムのデータがある値と等しいレコードを取得

ID=3のレコードを取得します。

MySQL selectコマンド

select * from testDB where ID=3";

実行結果
ID=3のレコードが取得されました。
等しい、という条件はイクオール記号を使用します。

SQL select where

カラムのデータが大きい順番でレコードを取得

AGEが大きい順番に並び替えてレコードを取得します。

MySQL selectコマンド

select * from testDB order by AGE desc;

実行結果
AGEが大きい順番でレコードが取得されました。
順番を指定する場合は"order by"を入力し、その後に対象のカラム名を入力します。"desc"はdescendingの略で大きい順番という指定になります。NULLのレコードも取得されており、大きい順番で並べる場合は順番は後になっています。ただし、データベースによりNULLの仕様が異なるため、一概に大きい順番で並べるときに後ろに来るとは言えません。

SQL select order by desc

カラムのデータが小さい順番でレコードを取得

AGEが小さい順番に並び替えてレコードを表示します。

MySQL selectコマンド

select * from testDB order by AGE ASC;

実行結果
AGEが小さい順番でレコードが取得されました。
順番を指定するので、"order by"を入力し、その後に対象のカラム名を入力します。 "ASC" はascendの略で小さい順番という指定になります。NULLは昇順で並べる場合は最初に来ています。ただし、データベースによりNULLの仕様が異なるため、一概に小さい順番で並べるときに先に来るとは言えません。

SQL select order by ASC

NULLを含むレコードを取得

AGEにNULLが含まれるレコードを取得します。

MySQL selectコマンド

select * from testDB where AGE=NULL;

実行結果
AGEがNULLのレコードが取得されました。
NULL指定の場合は"age = null"とするのではなく、"age is null"と指定します。

SQL select null

カラムのデータがある値より大きく、特定の文字列を含むレコードを取得

AGEが20より大きく、Nameに"Sa"が含まれるレコードを取得します。

MySQL selectコマンド

select * from testDB where AGE>20 AND name like "Sa%";

実行結果
AGEが20より大きく、Nameに"Sa"が含まれるレコードが取得されました。
複数の条件指定がある場合は、ANDで各条件を繋ぎます。AGE>20でAGEが20より大きいレコードの条件指定、さらにname like "sa%"でnameにsaが含まれるレコードの指定をしています。条件が2つありますのでANDで2つの条件を繋いでいます。文字列の条件指定で、「ある文字を含むもの」で指定したい場合はLIKE演算子で指定します。like "sa%"の指定により、頭がsaであれば後ろがどんな文字列であっても条件に当てはまることになります。例えば、"sakai", "sanada","saita","saeki"、等も条件に当てはまります。

SQL select 複数条件指定 文字列のlike指定

以上です。 最後までお読みいただきありがとうございます。
下の記事ではMySQLの基本コマンドを紹介していますので、MySQLの基本的な内容を知りたい方は参照頂ければと思います。

-MySQL