はじめに
SQLabさんの問題を解いていきながら、ステップバイステップでSQLについて学んでいこうと思います。
初級編
SELECT文
今回はSQLの基礎中の基礎であるSELECT文について学びます!
基本形
SELECT <出力要素> FROM <テーブル名>;
問題1
書籍一覧を取得してください。
解答・解説
SELECT * FROM books;
解説
SELECT *
は、テーブル内のすべての列を選択することを意味します。FROM books
で、データを取得するテーブルを指定しています。このクエリを実行すると、books
テーブル内のすべての行とすべての列が取得され、書籍の完全な一覧が表示されます。
ポイント
-
すべての列を取得したいときは、
SELECT
の後に*
(アスタリスク)を使います。 - データを取得するテーブルを指定するには、
FROM
の後にテーブル名を書きます。
問題2
書籍名一覧を取得してください。
出力項目はname
(書籍名)です。
解答・解説
SELECT name FROM books;
解説
特定の列だけを取得したい場合、SELECT
の後にその列名を指定します。このクエリでは、books
テーブルからname
列のみを選択しています。これにより、書籍名だけの一覧が取得できます。
ポイント
- 必要な列だけを取得する場合は、
SELECT
の後にその列名を指定します。 - データ量を減らし、効率的に情報を取得できます。
問題3
書籍名と発行年一覧を取得してください。
出力項目はname
(書籍名)とrelease_year
(発行年)です。
解答・解説
SELECT name, release_year FROM books;
解説
複数の列を取得する場合、SELECT
の後にカンマで区切って列名を列挙します。このクエリでは、books
テーブルからname
とrelease_year
の2つの列を選択しています。これにより、各書籍の名前とその発行年の一覧を取得できます。
ポイント
- 複数の列を取得する際は、列名をカンマ(,)で区切って指定します。
- 複数の情報を同時に取得することで、データの関連性を把握できます。
問題4
書籍の発行年一覧を重複行を削除して取得してください。
出力項目はrelease_year
(発行年)です。
解答・解説
SELECT DISTINCT release_year FROM books;
解説
DISTINCT
キーワードを使用すると、選択した列の中で重複する行を排除し、一意の値のみを取得できます。このクエリでは、books
テーブルからrelease_year
列の値を取得しますが、重複する発行年は1つにまとめられます。これにより、発行年の種類を一度ずつ一覧できます。
ポイント
-
重複を排除して一意の値だけを取得したいときは、
SELECT
の後にDISTINCT
を入れます。 - データ内のユニークな値を知りたい場合に便利です。
問題5
書籍名と総ページ数の一覧を取得してください。
出力項目は書籍名(name
)と総ページ数(total_page
)です。
※ AS
句を使用して表示するカラム名を変更してください。
解答・解説
SELECT name AS "書籍名", total_page AS "総ページ数"
FROM books;
解説
AS
を使うと、列に別名(エイリアス)を付けることができます。これにより、出力結果の列名をより分かりやすい名前に変更できます。このクエリでは、name
列を「書籍名」、total_page
列を「総ページ数」として表示します。ユーザーにとって理解しやすい出力結果になります。
ポイント
- 出力する列の別名を指定したいときは、列名の後に
AS
を使って新しい名前を指定します。 - 別名はダブルクォーテーション
""
で囲むことで、スペースや日本語を含む名前を使用できます。
さいごに
今回は基本的なSELECT
文の使い方を学びました。SELECT
文はSQLの中でも最も基本的で重要な文ですので、しっかりと理解しておきましょう。
まとめ
-
SELECT *
:すべての列を取得 -
SELECT 列名
:特定の列を取得 -
カンマ区切りで複数の列を指定:
SELECT 列1, 列2
-
DISTINCT
:重複を排除して一意の値を取得 -
AS
句:出力時の列名を変更
次回予告
次回はWHERE
句を使ったデータの絞り込みについて学んでいきます。お楽しみに!