SELECT 文で特定の列だけを取得する方法

先のページでは全行前列の情報を取得する方法を学びました。

次に、SELECT 文を使って指定したテーブルから特定の列のデータを取得する方法を学びます。

利用シーンに合わせて、自分が欲しいデータのみを見れるようになるための必須の知識です。

書き方

SELECT <列名1>, <列名2>, <列名3>・・・<列名n> FROM <テーブル名>;

書き方の説明

SELECT: データを取得する SELECT 文を表します。

<列名1>, <列名2>, <列名3>・・・<列名n>: 自分が欲しい列名をカンマ区切りで示します。例えば、name 列と price 列だけが欲しければ、name と price をカンマで区切り、name, price のように表現します。

FROM <テーブル名>;: どのテーブルからデータを取得したいのかを表します。文末には;(セミコロン)を書きます。

どの行のレコードが欲しいのかは指定していないので、ここでも自動的に全行が取得されることに変わりはないです。

ところで、テーブル名はわかっていても、そのテーブルにはどのような列があるのか知らない・・・ということもあるかと思います。 そのような場合には、適当な 1 行だけを SELECT 文で取得すれば把握可能です。

SELECT * FROM <テーブル名> LIMIT 1; で 1 行のみ取得可能です。なお、RDBMS によって 1 行だけ取得する方法は異なり、SELECT TOP 1 * FROM <テーブル名>; とするようなRDBMSもあります。

ユーザー情報が入っている users テーブルから name 列のみを取得したいとき

SELECT name FROM users;

ユーザー情報が入っている users テーブルから name 列と age 列の 2 列のみを取得したいとき

SELECT name, age FROM users;

練習

試しに、SELECT 文で products テーブルから特定の列のみを参照してみましょう!

今、このページを開いている時点で既にあなたのための products テーブルが作られ、データも入っています。

もう SQL 文は入力してあるので実行ボタンを押してみてください。 products テーブルからname列と、作成日時であるcreated_at列のみが表示されます。

問題

sales というテーブルがあります。この sales というテーブルから、 user_id 列と total_price 列のデータのみを取得する SQL 文を書いてみましょう。

答え合わせ

正解を見る
正解:SELECT user_id, total_price FROM sales;
解説:user_id 列 と total_price 列 を取得するので、それらをカンマ区切りで繋げます。