列と式の選択
列を射影し、派生式を計算し、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 pairsDISTINCT 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フィードバックを取得できます。ローカル設定は不要です。