Agile育成ブログ
未来を変える喜びを
SQL

SQL

データベース

データベースとは、テキストや数値などのデータを保存するためのツールです

命令(クエリ)を送ることでデータベースからデータを取得することができる。
SQLはクエリを書くための言語
降べきの順

order by ASC

グループごとに

group by

SQLの「3つの階層」を理解する

SQLはバラバラな単語の集まりではなく、以下のような「階層構造」になっています。

① ステートメント(文)

データベースに「何をするか」を指示する、最も大きな単位です。

  • SELECT(データを参照せよ)
  • INSERT(データを追加せよ)
  • UPDATE(データを更新せよ)
  • DELETE(データを削除せよ)

② 句(Clause)

ステートメントの中にある、役割ごとの「ブロック」です。

  • SELECT句(どの列を?)
  • FROM句(どのテーブルから?)
  • WHERE句(どんな条件で?)

③ キーワード / 修飾子

句の中で「どう振る舞うか」という細かいルールを指定するものです。

DISTINCT

SELECT DISTINCT user_id
FROM sales_log;

SELECT: ステートメント(指示文)=「取れ!」
DISTINCT: 修飾子(キーワード)=「ただし、重複は除いてな!」

主役はあくまでSELECTであり、DISTINCTは「取り方」にオプションを追加している添え字のような存在です。

AS

列名やテーブル名に「一時的なあだ名」をつけるキーワードです。

  • 役割:
    1. 読みやすくする: count(*) のような計算結果に AS total_count と名前をつけて分かりやすくする。
    2. 短縮する: 長いテーブル名を AS t1 と略して、結合(JOIN)の記述を楽にする。

例: SELECT user_name AS name FROM users; (user_name列を、結果画面では name として表示せよ)

ASC / DESC

ORDER BY 句の中で、データの並び方を指定するために使います。

  • ASC (Ascending): 昇順(小さい順、あいうえお順、古い順)。デフォルト(省略時)はこちらになります。
  • DESC (Descending): 降順(大きい順、逆引き順、新しい順)。

TOP / LIMIT

大量のデータがあるテーブルで、とりあえず中身を数件だけ確認したい時や、ランキングの上位だけが欲しい時に使います。

  • 役割: 最終的に出力する行数に「上限」を設けます。
  • 注意点: データベース製品によって書き方が異なります。
    • PostgreSQL / MySQL / Snowflake: LIMIT 10 (文の最後に書く)
    • SQL Server: SELECT TOP 10 (SELECTの直後に書く)
  • セットで使うべき句: ORDER BY です。「何をもって上からとするか」を決めないと、実行するたびに結果が変わる可能性があります。