データベース
データベースとは、テキストや数値などのデータを保存するためのツールです
命令(クエリ)を送ることでデータベースからデータを取得することができる。 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
列名やテーブル名に「一時的なあだ名」をつけるキーワードです。
- 役割:
- 読みやすくする:
count(*)のような計算結果にAS total_countと名前をつけて分かりやすくする。 - 短縮する: 長いテーブル名を
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の直後に書く)
- PostgreSQL / MySQL / Snowflake:
- セットで使うべき句:
ORDER BYです。「何をもって上からとするか」を決めないと、実行するたびに結果が変わる可能性があります。



