データを取得する(SELECT文)

テーブルに格納されているデータを取得するには SELECT 文を使用します。ここでは MariaDB でテーブルからデータを取得する方法について解説します。

(Last modified: )

データを取得する

テーブルに格納されているデータを取得するには SELECT 文を使います。非常にオプションが多いのですが、基本となる書式は次のとおりです。

SELECT col_name [, col_name ...]
  FROM table_references

指定したテーブル名( table_references )のテーブルに格納されているデータを取得します。データはテーブルのデータの中でも指定したカラム( col_name )の値を取得します。複数のカラムの値を取得する場合はカンマで区切って記述します。

データを取得する

では実際に試してみます。次のようなテーブルを作成し、データを 3 つ追加しました。

create table friends(id int, name varchar(10));

insert into friends values(1, 'Oota'),(2, 'Ueda'),(3, 'Nakano');

データを取得する(1)

それではテーブルからデータを取得します。テーブルには id カラムと name カラムが含まれますが、最初に両方のカラムの値を取得してみます。次のように実行してください。

select id, name from friends;

データを取得する(2)

テーブルに格納されている 3 つのデータを取得しました。各データの値として id カラムの値と name カラムの値を取得しています。

一部のカラムのデータだけを取得する

データを取得するときは、すべてのカラムではなく必要なカラムだけを指定して取得することができます。次のように実行してください。

select name from friends;

データを取得する(3)

テーブルに格納されている 3 つのデータを取得しました。今回は各データの値として name カラムの値だけを取得しています。

取得するカラムの順番を変える

複数のカラムのデータを取得するとき、カラムの指定はテーブルに格納されているカラムの順番でなくても構いません。次のように実行してください。

select name, id from friends;

データを取得する(4)

テーブルに格納されている 3 つのデータを取得しました。テーブルに作成されたカラムの順番とは逆に name カラムのあとに id カラムの値を取得しています。

同じカラムの値を複数回取得する

必要であれば同じカラムの値を複数回取得することもできます。次のように実行してください。

select id, name, id from friends;

データを取得する(5)

テーブルに格納されている 3 つのデータを取得しました。今回は id カラムを 2 回取得しています。

すべてのカラムをあらわすアスタリスク(*)を使用する

テーブルに含まれるすべてのカラムの値を取得するには、 SELECT 文ですべてのカラム名をカンマで区切って記述します。

SELECT col_name1, col_name2 FROM table_references

この記述方法のかわりに、すべてのカラムの値を取得する場合には単に * と記述することもできます。

SELECT * FROM table_references

この方法の場合、カラムはテーブルで定義された通りの順番でカラムの値を取得します。カラムの順番を変更することはできません。

それでは実際に試してみます。先ほど作成した friends テーブルのすべてのカラムの値を取得してみます。次のように実行してください。

select * from friends;

すべてのカラムをあらわすアスタリスク(*)を使用する(1)

テーブルに格納されている 3 つのデータを取得しました。取得するカラム名としてアスタリスク(*)を指定しているのですべてのカラムの値を取得しています。

取得するデータを表形式ではなくデータごとに分けて表示する

SELECT 文で取得したデータは表形式で表示されます。列のところに取得したカラム名が表示され、取得したデータ 1 件ごとに 1 つの行で表示されます。

select * from user;

取得するデータを表形式ではなくデータごとに分けて表示する(1)

表形式の場合、テーブルに数多くのカラムが含まれている場合や、格納されているデータが長い場合には見にくくなることがあります。このような場合は SELECT 文で取得したデータを 1 つのデータごとに分けて表示することができます。

データごとに分けて表示する場合には、 SELECT 文の最後にセミコロン(;)ではなく \G と記述してください( G は大文字である必要があります)。

select * from user\G

取得するデータを表形式ではなくデータごとに分けて表示する(2)

各データ毎に「カラム名:値」の形式でデータが表示されます。カラムの数が非常に多かったりした場合に表が崩れて表示されてしまう場合などに利用されてください。

-- --

MariaDB でテーブルからデータを取得する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。