MySQLでSELECT(レコード読み込み)
更新日 : 2019年06月12日
MySQLでのレコード追加に続き、セレクト文を利用して追加されたレコードの読み取りをしてみましょう。
セレクト文の書式
レコード読み取りのためのSQL文の書式を確認していきます。
SELECT
カラム名1,
カラム名2,
...
FROM
データベース名.テーブル名
WHERE
条件式;
データベース名の指定はuse データベース名
を事前に実行していれば不要です。
書式は大まかにSELECT
・FROM
・WHERE
が基本となります。SELECT
句の後にあるカラム名は、取り出したいカラムデータの指定です。テーブルのカラムデータをすべて取得したい場合には*
を記載すればすべて取得できます。
条件を指定しない場合にはWHERE
句は必要ありません。
その他LIMIT
やORDER BY
・GROUP BY
など様々な追加オプションがありますが、別記事でご紹介します。
実際にレコードを取得してみる
MySQLでINSERTの記事で追加したデータを今度は読み出してみましょう。
まずは追加済みのデータから、すべてのカラムで条件無しで取得します。以下のSQLを実行してみましょう。
SELECT * FROM users;
これを実行すれば、すべてのデータが取得できます。
カラムと条件を指定して取得
次に、取得したいカラムデータの指定と取得したい条件も指定してみます。
SELECT last_name, first_name FROM users WHERE id = 1;
上記のSQLでは、「姓・名のデータをuser
テーブルから取得し、id = 1
のレコードの条件で取得する」という意味になります。
これを実行すると以下のようになります。

WHERE
句の条件式ではid = 1
でidが1のレコードという条件になり、id != 1
であればidが1以外のレコードという条件になります。
その他WHERE
句の条件は様々な条件式があります。
その他条件式
条件式はたくさんありますが、代表的な利用方法を記載していきます。
idが複数当てはまる条件で取得
先程のSQLを書き換えて、idの条件が複数ある場合のSQLに変更してみます。
SELECT last_name, first_name FROM users WHERE id IN(1, 2, 10);
このようにIN
句を利用してカッコ内に取得したいカラムデータをカンマ区切りで指定することで、上記SQLであればidが1または2または10のレコードを取得することができます。
ANDやOR
条件式自体を複数付け加えたい場合にはAND
やOR
を利用します。
SELECT last_name, first_name FROM users WHERE id = 1 AND first_name = '太郎';
上記のようにAND
の左右に条件式を記載することで、左の条件かつ右の条件でレコードを取得ができます。上記SQLであれば「idが1かつ名が’太郎’」の条件で取得します。
OR
であれば「かつ」が「または」になるだけです。
あいまい検索のLIKE
最後にLIKE
であいまい検索をしてみます。
下記のSQLを見てみましょう。
SELECT last_name, first_name FROM users WHERE first_name LIKE '%郎';
上記のSQLの条件では、名に「〜郎〜」と入っているレコードを取得できます。%
を利用すると任意の文字(そこに文字がなくてもOK)として検索できるため、「太郎」・「次郎」や「郎」だけの場合などもレコードが検索できます。
タグ
-
前の記事
MySQLでINSERT(レコード追加)
-
次の記事
MySQLでUPDATE(レコード更新)