必要な列を取り出したい
SELECT に表示したい列、FROM に読み取るテーブルを書きます。
SELECT name, salaryやりたいことから見つかる
必要なデータを取り出す、まとめる、表を結び付ける。目的別のSQLと結果の例を確認できます。
カテゴリで絞り込む
20件
SELECT に表示したい列、FROM に読み取るテーブルを書きます。
SELECT name, salaryWHERE の後に条件を書き、一致する行だけに絞ります。
SELECT name, salaryAND は、両方の条件が真となる行を残します。
SELECT name, salaryOR は、少なくとも一方の条件が真となる行を残します。
SELECT name, salaryINは候補に一致する行、NOT INは候補から外れる行を探します。除外リストや比較する列にNULLがある場合は、結果が変わる点に注意します。
SELECT name, department_idBETWEEN は下限以上、上限以下の範囲に絞ります。
SELECT name, salaryLIKEは文字列を前方一致・後方一致・部分一致で検索します。%を置く位置によって、先頭・末尾・途中のどこを探すかが変わります。
SELECT name部署が未設定なら IS NULL、設定済みなら IS NOT NULL を使います。同じ社員6行から取り出す結果を比べます。
SELECT name, department_idORDER BY で並び順を指定します。DESC は降順、ASC は昇順です。
SELECT name, salaryLIMIT で取得する行数の上限を指定します。
SELECT name, salaryCOUNT(*) は全行を数え、COUNT(列) はその列が NULL でない行を数えます。
SELECT COUNT(*) AS employee_count,SUM は NULL を除いた数値の合計を返します。
SELECT SUM(salary) AS total_salaryAVG は NULL を除いた値の平均を返します。
SELECT AVG(salary) AS average_salaryGROUP BY は同じ値をひとまとめにして集計します。
SELECT department_id, COUNT(*) AS employee_countHAVING は集計後のグループを絞ります。まず社員が2人以上いる部署を探し、続いてWHEREで集計対象を変えた場合を3段階の表で比べます。
SELECT department_id, COUNT(*) AS employee_countINNER JOIN は結合条件に一致する組み合わせを取得します。
SELECT e.name AS employee_name,LEFT JOIN は左側のテーブルの行を残し、一致した右側の情報を付けます。
SELECT e.name AS employee_name,DISTINCT は選んだ列の組み合わせが同じ行を1つにまとめます。
SELECT DISTINCT department_idCASE は上から条件を調べ、最初に真となった条件の値を返します。
SELECT name,AS は結果の列に別名を付けます。集計や計算の結果に名前を付ける際にも便利です。
SELECT name AS employee_name,検索語を短くするか、カテゴリを「すべて」に戻してください。
はじめてでも大丈夫
PostgreSQLの構文を基準にしています。MySQL・SQL Server・SQLiteなどでは、一部の構文や挙動が異なります。
練習用のデータベースとSQLエディタを用意します。各解説は共通のサンプル表を使います。実際の業務データで試す前に、表名・列名を確認してください。