データベースから情報を取得することのできる基本的なselect文の書き方をご紹介していきます。
select文の書き方
下記のUSERSテーブル(表)を例に基本的なselect文についてご紹介していきます。
構文
select カラム名 from テーブル名;
コードの見方
selectとfromという文字列はselect文を利用する際の必須の単語のため省略できません。
カラム名とはデータを取得したい列を指定します。例えば、USERSテーブルから名前を取得したい場合はnameと記述します。
テーブル名にはデータを取得したいテーブル名を記述します。今回はUSERSテーブルからカラムを取得するのでUSERSとします。
文末には;(セミコロン)を忘れずに
上記の手順で作成されるSQL文は下記になります。
今回の例ではUSERSテーブルからnameカラムを取得する構文を記述します。
select name from users;
出力結果
+----------+
| name |
+----------+
| 柴犬 |
| コーギー |
| ダックス |
| パグ |
| シーズー |
+----------+
5 rows in set (0.001 sec)
USERSテーブルからnameカラムの情報を取得することができました。
すべてのカラムからデータを取得する
上記ではカラム名を指定してデータを取得してきましたが、一度にすべてのカラム名を取得する方法がありますのでご紹介していきます。
構文
select * from テーブル名;
データベースからすべてのカラムのデータを取得するにはカラム名に*(アスタリスク)を利用します。
今回のUSERSテーブルからすべてのカラムのデータを取得するには下記のように記述します。
select * from users;
出力結果
+----+----------+------+------------------+
| id | name | age | email |
+----+----------+------+------------------+
| 1 | 柴犬 | 7 | shibainu@dog.com |
| 2 | コーギー | 8 | corgi@dog.com |
| 3 | ダックス | 10 | daks@dog.com |
| 4 | パグ | 3 | pug@dog.com |
| 5 | シーズー | 17 | shi-tzu@dog.com |
+----+----------+------+------------------+
5 rows in set (0.001 sec)
すべてのUSERSテーブルからすべてのカラムの情報を取得することができました。
注意点として、業務などでは特定のカラムを取得する場合が多くすべ手のカラムを取得するのは効率が良くない場合があります。
現場で使用されるデータベースなどではカラムが数十種に及ぶ場合があり可読性が下がります。必要なデータがあらかじめわかっている場合には取得するカラムを指定してデータを取得するようにしましょう。
カラムを指定してデータを取得する(複数カラム)
カラムを一つ指定してデータを取得する方法については前述したとおりですが、複数取得したい場合もあります。
複数のカラムを指定してデータを取得する方法について紹介していきます
構文
select カラム名,カラム名,カラム名 from テーブル名;
取得したいカラム名を,(カンマ)で区切ることで複数指定することができます。
例として、USERSテーブルからnameカラムとemailカラムを取得してみます。
select name,email from users;
出力結果
+----------+------------------+
| name | email |
+----------+------------------+
| 柴犬 | shibainu@dog.com |
| コーギー | corgi@dog.com |
| ダックス | daks@dog.com |
| パグ | pug@dog.com |
| シーズー | shi-tzu@dog.com |
+----------+------------------+
5 rows in set (0.000 sec)
USERSテーブルからnameカラムとemailカラムのデータを取得することができました。
ほとんどの業務でデータを取得する場合にはこのように複数のカラムを指定してデータを取得するようにしましょう。
select文の応用例
様々なselect文の使用例について紹介していきます。
whereで条件を指定して特定の値を取得するSelect文
すべてのSQL文で多用される記述方法になります。ぜひ習得しましょう
データの取得件数を指定するLimitを使用したselect文
実際の業務ではデータが膨大なため取得するデータ件数を指定する方が安全です。理由としては取得したい件数が膨大であった場合サーバーがダウンしてしまう可能性があるからです。
現場などでサーバーが停止してしまうと大事になる可能性が高いので必ず指定してSQLを実行するようにしましょう。
関数や演算で現在日時を取得するSelect文
複数テーブルを結合して出力するselect文
現場では多数のテーブルを利用しており、データを取得する際に複数テーブルからデータを結合して出力するケースが非常に多いです。