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 における相関サブクエリとは何ですか?

相関サブクエリは外部クエリの各行ごとに一度評価されます。外部クエリの列を参照するため、各行に依存します。

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

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

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

構文は次のとおりです:

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 演算子は、指定されたリスト内のいずれかの値に一致する行をフィルタリングします。複数の OR 条件の代替としてよく使われます。

かもしれません “ユニークな行” を返すこともあります(実際にそうなることが多いですが)、それが主目的というわけではありません。

インデックスは必須ではありませんが、インデックス付き列(できれば UNIQUE インデックス)で IN を使うのがベストプラクティスです。パフォーマンス向上につながります。

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

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

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

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

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

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

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

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