MySQLでのレコード追加に続き、セレクト文を利用して追加されたレコードの読み取りをしてみましょう。

MySQLでSELECT(レコード読み込み)

1年以内に更新されました。
更新日 : 2019年06月12日

MySQLでのレコード追加に続き、セレクト文を利用して追加されたレコードの読み取りをしてみましょう。

セレクト文の書式

レコード読み取りのためのSQL文の書式を確認していきます。

SELECT
	カラム名1,
	カラム名2,
	...
FROM
	データベース名.テーブル名
WHERE
	条件式;

データベース名の指定はuse データベース名を事前に実行していれば不要です。

書式は大まかにSELECTFROMWHEREが基本となります。
SELECT句の後にあるカラム名は、取り出したいカラムデータの指定です。テーブルのカラムデータをすべて取得したい場合には*を記載すればすべて取得できます。

条件を指定しない場合にはWHERE句は必要ありません。

その他LIMITORDER BYGROUP 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

条件式自体を複数付け加えたい場合にはANDORを利用します。

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)として検索できるため、「太郎」・「次郎」や「郎」だけの場合などもレコードが検索できます。