0Pricing
SQL Academy · レッスン

列と式の選択

列を射影し、派生式を計算し、ASで結果に別名を付け、DISTINCTで重複を除去します。

「列と式の選択」はCoddyKit上の無料SQL Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSQL Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 SQL Academyコースには全4レッスンが含まれています。

基本的なSELECT

SELECTは、1つ以上のテーブルから列を射影します。

SELECT id, email, full_name
FROM users;

SELECT *

SELECT *はすべての列を返します。REPLでは便利ですが、本番コードでは適していません。

  • 必要以上のバイト数を返します
  • 列が追加または並べ替えられると壊れます
  • コードレビューで意図が分かりにくくなります

計算式

SELECTリストで新しい列を計算できます。

SELECT id,
       price,
       quantity,
       price * quantity AS subtotal,
       UPPER(email) AS email_upper
FROM order_items;

ASによる列の別名

ASは出力列の名前を変更します。このキーワードは省略できますが、読みやすさが向上します。

SELECT first_name || ' ' || last_name AS full_name,
       EXTRACT(YEAR FROM created_at) AS signup_year
FROM users;

文字列の連結

標準SQLでは||で文字列を連結します。多くのデータベースではCONCAT(...)もサポートしています。

SELECT first_name || ' ' || last_name FROM users;
SELECT CONCAT(first_name, ' ', last_name) FROM users;

-- ||  with NULL → NULL
-- CONCAT skips NULLs (treats them as empty strings)

DISTINCT

DISTINCTは結果から重複する行を削除します。

SELECT DISTINCT country FROM users;
SELECT DISTINCT country, city FROM users;  -- distinct pairs

DISTINCT ON(PostgreSQL)

DISTINCT ONは、ORDER BYで定義された各グループについて、最初の行を残します。

-- Most recent login per user:
SELECT DISTINCT ON (user_id) user_id, login_at, ip
FROM logins
ORDER BY user_id, login_at DESC;

SELECT内のCASE式

行ごとに複数の値のうち1つを計算します。

SELECT id,
       total,
       CASE
         WHEN total >= 1000 THEN 'whale'
         WHEN total >=  100 THEN 'regular'
         ELSE 'small'
       END AS bucket
FROM orders;

識別子と文字列の引用符の違い

SQLでは2種類の引用符を使います。

-- Single quotes: string literal
SELECT 'hello' AS greeting;

-- Double quotes: identifier (column/table name with special chars or case)
SELECT "First Name" FROM users;

-- Mixing them up is a common error.

型キャスト

::またはCAST(... AS ...)を使って、値を別の型に変換します。

SELECT '2024-01-15'::DATE AS d;
SELECT CAST('42' AS INTEGER) AS n;
SELECT (price::TEXT || ' USD') AS pretty FROM products;

複数のテーブルから選択する(プレビュー)

1つのクエリで複数のテーブルから列を取得できます。そのために使うのがJOINです。詳しくはJOIN Basicsコースで説明します。

SELECT u.email, o.total
FROM users u
JOIN orders o ON o.user_id = u.id;

まとめ

SELECTは列と式を射影します。

  • *ではなく、明示的な列リストを使います
  • 式を使ってその場で計算します
  • 分かりやすさのためにASで別名を付けます
  • DISTINCTは出力結果の重複行を削除します

確認問題

結果セットから重複する行を削除するキーワードはどれですか。

よくある質問

「列と式の選択」レッスンは無料ですか?

はい。「列と式の選択」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、SQL Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 SQL Academyコースには全4レッスンが含まれています。

「列と式の選択」で何を学びますか?

列を射影し、派生式を計算し、ASで結果に別名を付け、DISTINCTで重複を除去します。 ブラウザで直接実行するハンズオンコードでSQL Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

SQL Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSQL Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「列と式の選択」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSQL Academyレッスンでコードを書いて実行できますか?

はい。すべてのSQL Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 列と式の選択
  2. WHEREフィルター:比較演算子と論理演算子
  3. 単一列・複数列のORDER BY
  4. LIMIT、OFFSETとページネーションの基礎
← SQL Academyに戻る