DanLevy.net

クイズ: SQLスキルを証明しよう!

SQL派ですか?それともNoSQL派ですか?

SQLクエリ基礎をテストしよう

ORMを使いすぎてスキルが鈍っていませんか?
心配はいりません。多くの開発者が同じ状況です。

さっそくSQLクエリ基礎を証明してみましょう! 👇

次の SQL クエリのうち、名前が “John” の行を正しく取得するものはどれですか?

SQL では、等価比較にはシングルイコール (=) を WHERE 句で使用し、== や === は JavaScript の演算子であり使用しません。

正しい構文は SELECT * FROM users WHERE name = 'John'; です。

SQL で COUNT(column_name) は何を行いますか?

COUNT(column_name) は指定された列の非 NULL 値の数をカウントします。NULL を含むすべての行をカウントしたい場合は COUNT(*) を使用します。

また、COALESCE を使って NULL を非 NULL 値にデフォルトさせることもできます。例えば: COUNT(COALESCE(column_name, 0)).

SQLで LEFT JOIN は何を行いますか?

LEFT JOIN は左テーブルのすべての行と、右テーブルのマッチする行を返し、右テーブルでマッチしない行には NULL が入ります。

SQL で INNER JOIN は何を行いますか?

INNER JOIN は結合条件が両テーブルの行と一致する行だけを返します。条件に合わない行は結果セットに含まれません。

SQL における相関サブクエリとは何ですか?

相関サブクエリは外側のクエリの列を参照し、意味上は外側の行に依存します。オプティマイザが結合への変換などを行うことがあるため、物理的に必ず1行につき1回実行されるわけではありません。

WITH句(共通テーブル式)の目的は何ですか?

WITH句、または共通テーブル式(CTE)は、メインクエリ内で参照できる一時的な結果セットを定義するために使用されます。PostgreSQLでは、WITHはSELECT、INSERT、UPDATE、DELETE、MERGEなどの文に付けることができます。

これにより、複雑なクエリの可読性と保守性が向上します。

構文は次のとおりです:

WITH cte_name AS (
SELECT column_name
FROM table_name
)
SELECT *
FROM cte_name;

SQL で IS NULL 演算子は何をしますか?

IS NULL は指定した列に NULL 値が含まれているかをチェックします。IS NOT NULL はその逆をチェックします。

SQLで IN 演算子は何をしますか?

IN は指定したリスト内のいずれかの値と一致するかを検査します。WHERE句では複数のOR条件の代わりに使えますが、重複行を除去する機能ではありません。

インデックスは必須ではありません。選択性の高い条件では通常のB-treeインデックスが役立つことがありますが、UNIQUEである必要はなく、実際の実行計画を確認します。

SQL で COALESCE 関数は何をしますか?

COALESCE 関数は指定されたリストの最初の非 NULL 値を返します。NULL に遭遇したときにデフォルト値を代入するのに便利です。

例として、 COALESCE(column_name, 0) は column_name が NULL の場合 0 を返します。

SQL の GROUP BY 句の目的は何ですか?

GROUP BY 句は、指定した列で同じ値を持つ行をグループ化し、各グループに集計関数を適用できるようにします。

SQL で FULL OUTER JOIN は何を行いますか?

FULL OUTER JOIN は両テーブルのすべての行を返し、一致しない行には欠損値として NULL を入れます。

これは 2 つのテーブルを比較し、差分を見つけるのに便利です。