中級
STAGE 1
110問目 • 10
  • Q1

    INNER JOINの役割として正しいものはどれですか?

    ANSWER
    両方のテーブルで条件に一致するレコードのみを返す
    クリックして解説を表示
    EXPLANATION

    INNER JOINは、両方のテーブルで結合条件に一致するレコードのみを返します。どちらかのテーブルに対応するレコードがない場合は結果に含まれません。

  • Q2

    次のSQLの結果として正しいものはどれですか?

    SELECT users.name, orders.total
    FROM users
    INNER JOIN orders ON users.id = orders.user_id;
    ANSWER
    注文があるユーザーの名前と注文金額を返す
    クリックして解説を表示
    EXPLANATION

    INNER JOINにより、usersテーブルとordersテーブルで users.id = orders.user_id が一致するレコードのみが結合されて返されます。

  • Q3

    LEFT JOINの特徴として正しいものはどれですか?

    ANSWER
    左側のテーブルのすべてのレコードを返し、右側は一致しない場合NULL
    クリックして解説を表示
    EXPLANATION

    LEFT JOINは、左側のテーブルのすべてのレコードを返し、右側のテーブルに一致するレコードがない場合はNULLで埋められます。

  • Q4

    次のSQLの結果として、注文がないユーザーはどうなりますか?

    SELECT users.name, orders.total
    FROM users
    LEFT JOIN orders ON users.id = orders.user_id;
    ANSWER
    nameが表示され、totalはNULLで表示される
    クリックして解説を表示
    EXPLANATION

    LEFT JOINなので、注文がないユーザーもname列に値が入り、orders.totalはNULLとして結果に含まれます。

  • Q5

    RIGHT JOINの特徴として正しいものはどれですか?

    ANSWER
    右側のテーブルのすべてのレコードを返し、左側は一致しない場合NULL
    クリックして解説を表示
    EXPLANATION

    RIGHT JOINは、右側のテーブルのすべてのレコードを返し、左側のテーブルに一致するレコードがない場合はNULLで埋められます。

  • Q6

    FULL OUTER JOINの特徴として正しいものはどれですか?

    ANSWER
    両方のテーブルのすべてのレコードを返し、一致しない場合はNULL
    クリックして解説を表示
    EXPLANATION

    FULL OUTER JOINは、両方のテーブルのすべてのレコードを返し、一致しない場合はNULLで埋められます。

  • Q7

    CROSS JOINの結果として正しいものはどれですか?

    ANSWER
    2つのテーブルのすべての組み合わせ(直積)を返す
    クリックして解説を表示
    EXPLANATION

    CROSS JOINは、2つのテーブルのすべての組み合わせ(直積)を返します。結果の行数は両テーブルの行数の積になります。

  • Q8

    3つ以上のテーブルを結合する場合の正しい方法はどれですか?

    ANSWER
    複数のJOIN句を連続して記述する
    クリックして解説を表示
    EXPLANATION

    複数のJOIN句を連続して記述することで、3つ以上のテーブルを結合できます。

  • Q9

    次のSQLで正しく動作するものはどれですか?

    SELECT * FROM users u
    INNER JOIN orders o ON u.id = o.user_id
    INNER JOIN products p ON o.product_id = p.id;
    ANSWER
    3つのテーブルが正しく結合される
    クリックして解説を表示
    EXPLANATION

    複数のJOINを連続して記述することで、users、orders、productsの3つのテーブルを結合できます。エイリアスを使用して記述を簡潔にしています。

  • Q10

    自己結合(SELF JOIN)とは何ですか?

    ANSWER
    同じテーブルを自分自身と結合すること
    クリックして解説を表示
    EXPLANATION

    自己結合は、同じテーブルを別名を使って自分自身と結合する方法です。階層構造のデータ(例:従業員と上司)を扱う際に使用します。

STAGE 2
1120問目 • 10
  • Q11

    サブクエリとは何ですか?

    ANSWER
    SQL文の中に含まれる別のSELECT文
    クリックして解説を表示
    EXPLANATION

    サブクエリ(副問合せ)は、SQL文の中に含まれる別のSELECT文です。外側のクエリから参照されます。

  • Q12

    次のSQLのサブクエリは何を返しますか?

    SELECT * FROM users
    WHERE id IN (SELECT user_id FROM orders WHERE total > 10000);
    ANSWER
    注文金額が10000を超える注文のuser_idリスト
    クリックして解説を表示
    EXPLANATION

    サブクエリは、totalが10000を超える注文のuser_idリストを返します。外側のクエリはそのリストに含まれるidのユーザーを取得します。

  • Q13

    相関サブクエリの特徴として正しいものはどれですか?

    ANSWER
    外側のクエリの各行に対して実行される
    クリックして解説を表示
    EXPLANATION

    相関サブクエリは、外側のクエリの各行に対して実行され、外側のクエリの値を参照します。非相関サブクエリより遅いことが多いです。

  • Q14

    EXISTS演算子の役割として正しいものはどれですか?

    ANSWER
    サブクエリが1行以上返すかどうかを判定する
    クリックして解説を表示
    EXPLANATION

    EXISTSは、サブクエリが少なくとも1行を返すかどうかを判定します。返す場合はTRUE、返さない場合はFALSEになります。

  • Q15

    次のSQLの意味として正しいものはどれですか?

    SELECT * FROM users u
    WHERE EXISTS (
      SELECT 1 FROM orders o WHERE o.user_id = u.id
    );
    ANSWER
    注文が存在するユーザーのみを取得する
    クリックして解説を表示
    EXPLANATION

    EXISTSにより、ordersテーブルに注文が存在するユーザーのみが取得されます。サブクエリが1行以上返す場合、そのユーザーが結果に含まれます。

  • Q16

    GROUP BY句の役割として正しいものはどれですか?

    ANSWER
    レコードをグループ化する
    クリックして解説を表示
    EXPLANATION

    GROUP BYは、指定した列の値でレコードをグループ化し、各グループに対して集計関数を適用できるようにします。

  • Q17

    次のSQLの結果として正しいものはどれですか?

    SELECT country, COUNT(*) AS user_count
    FROM users
    GROUP BY country;
    ANSWER
    国ごとのユーザー数
    クリックして解説を表示
    EXPLANATION

    GROUP BY countryにより、国ごとにグループ化され、各国のユーザー数がCOUNT(*)で計算されます。

  • Q18

    GROUP BYを使用する際、SELECT句に含められる列の制約として正しいものはどれですか?

    ANSWER
    GROUP BYで指定した列または集計関数を適用した列のみ
    クリックして解説を表示
    EXPLANATION

    GROUP BY句を使用する場合、SELECT句にはGROUP BYで指定した列か、集計関数を適用した列のみを含めることができます。

  • Q19

    HAVING句の役割として正しいものはどれですか?

    ANSWER
    グループ化後の結果をフィルタリングする
    クリックして解説を表示
    EXPLANATION

    HAVINGは、GROUP BYでグループ化した後の結果に対して条件を指定してフィルタリングします。集計関数の結果に基づく条件を指定できます。

  • Q20

    WHERE句とHAVING句の違いとして正しいものはどれですか?

    ANSWER
    WHEREはグループ化前、HAVINGはグループ化後にフィルタリング
    クリックして解説を表示
    EXPLANATION

    WHEREはグループ化前に個々のレコードをフィルタリングし、HAVINGはグループ化後にグループをフィルタリングします。

STAGE 3
2130問目 • 10
  • Q21

    次のSQLの意味として正しいものはどれですか?

    SELECT country, COUNT(*) AS user_count
    FROM users
    GROUP BY country
    HAVING COUNT(*) >= 10;
    ANSWER
    ユーザー数が10人以上の国とそのユーザー数を返す
    クリックして解説を表示
    EXPLANATION

    GROUP BYで国ごとにグループ化し、HAVINGでユーザー数が10人以上の国のみをフィルタリングして結果を返します。

  • Q22

    UNION演算子の役割として正しいものはどれですか?

    ANSWER
    SELECT文の結果を垂直方向に結合し、重複を除去する
    クリックして解説を表示
    EXPLANATION

    UNIONは、2つ以上のSELECT文の結果を結合し、重複を除去して1つの結果セットを返します。

  • Q23

    UNIONとUNION ALLの違いとして正しいものはどれですか?

    ANSWER
    UNIONは重複を除去、UNION ALLは重複を保持
    クリックして解説を表示
    EXPLANATION

    UNIONは重複を除去しますが、UNION ALLは重複を保持したまますべての行を返します。UNION ALLの方が一般的に高速です。

  • Q24

    UNIONを使用する際の制約として正しいものはどれですか?

    ANSWER
    同じ列数と互換性のあるデータ型が必要
    クリックして解説を表示
    EXPLANATION

    UNIONで結合するSELECT文は、同じ列数を持ち、対応する列のデータ型が互換性を持つ必要があります。

  • Q25

    INTERSECT演算子の役割として正しいものはどれですか?

    ANSWER
    両方のSELECT文に共通する行のみを返す
    クリックして解説を表示
    EXPLANATION

    INTERSECTは、2つのSELECT文の結果の共通部分(両方に存在する行)のみを返します。

  • Q26

    EXCEPT(またはMINUS)演算子の役割として正しいものはどれですか?

    ANSWER
    最初のSELECT文にのみ存在する行を返す
    クリックして解説を表示
    EXPLANATION

    EXCEPTは、最初のSELECT文の結果から、2番目のSELECT文の結果に含まれる行を除いたものを返します。

  • Q27

    インデックスの役割として正しいものはどれですか?

    ANSWER
    データへのアクセスを高速化する
    クリックして解説を表示
    EXPLANATION

    インデックスは、テーブルのデータへの高速なアクセスを可能にするデータ構造です。検索、ソート、結合のパフォーマンスを向上させます。

  • Q28

    インデックスを作成すると何が起こりますか?

    ANSWER
    検索は高速化するが、データ更新操作は遅くなる可能性がある
    クリックして解説を表示
    EXPLANATION

    インデックスを作成すると、検索は高速化しますが、追加のディスク領域が必要になり、INSERT、UPDATE、DELETEの操作が遅くなる可能性があります。

  • Q29

    インデックスを作成するSQLコマンドはどれですか?

    ANSWER
    CREATE INDEX
    クリックして解説を表示
    EXPLANATION

    CREATE INDEX文を使用して、テーブルの指定した列にインデックスを作成します。

  • Q30

    次のSQLは何を行いますか?

    CREATE INDEX idx_users_email ON users(email);
    ANSWER
    usersテーブルのemail列にインデックスを作成する
    クリックして解説を表示
    EXPLANATION

    usersテーブルのemail列にidx_users_emailという名前のインデックスを作成します。これによりemailでの検索が高速化されます。

STAGE 4
3140問目 • 10
  • Q31

    複合インデックス(複数列のインデックス)の列の順序が重要な理由は何ですか?

    ANSWER
    先頭の列から順にインデックスが使用されるため
    クリックして解説を表示
    EXPLANATION

    複合インデックスは、指定した順序で列を評価します。先頭の列を使用するクエリで最も効果的であり、中間の列だけを使用するクエリでは効果が低下します。

  • Q32

    一意インデックス(UNIQUE INDEX)の特徴として正しいものはどれですか?

    ANSWER
    列の値が重複しないことを保証する
    クリックして解説を表示
    EXPLANATION

    UNIQUE INDEXは、インデックス対象の列に重複する値が存在しないことを保証します。検索の高速化と一意性の制約を同時に実現します。

  • Q33

    CREATE TABLE文の基本構文として正しいものはどれですか?

    ANSWER
    CREATE TABLE テーブル名 (列定義)
    クリックして解説を表示
    EXPLANATION

    CREATE TABLE文は、テーブル名の後に括弧で囲んだ列定義のリストを指定します。各列には名前とデータ型、オプションで制約を指定します。

  • Q34

    次のSQLで作成されるテーブルの主キーはどれですか?

    CREATE TABLE users (
      id INT PRIMARY KEY,
      name VARCHAR(100),
      email VARCHAR(255) UNIQUE
    );
    ANSWER
    id
    クリックして解説を表示
    EXPLANATION

    PRIMARY KEY制約が指定されているid列が主キーになります。emailにはUNIQUE制約があり、一意ですが主キーではありません。

  • Q35

    AUTO_INCREMENT(または SERIAL)の役割として正しいものはどれですか?

    ANSWER
    新しいレコードに自動的に一意の値を割り当てる
    クリックして解説を表示
    EXPLANATION

    AUTO_INCREMENTは、新しいレコードが挿入されるたびに自動的に一意の整数値を生成します。主キーによく使用されます。

  • Q36

    ALTER TABLE文の役割として正しいものはどれですか?

    ANSWER
    既存のテーブル構造を変更する
    クリックして解説を表示
    EXPLANATION

    ALTER TABLE文は、既存のテーブル構造を変更するために使用します。列の追加、削除、変更、制約の追加などが行えます。

  • Q37

    テーブルに新しい列を追加するSQLはどれですか?

    ANSWER
    ALTER TABLE テーブル名 ADD COLUMN 列名 データ型
    クリックして解説を表示
    EXPLANATION

    ALTER TABLE テーブル名 ADD COLUMN 列定義で、既存のテーブルに新しい列を追加できます。

  • Q38

    テーブルから列を削除するSQLはどれですか?

    ANSWER
    ALTER TABLE テーブル名 DROP COLUMN 列名
    クリックして解説を表示
    EXPLANATION

    ALTER TABLE テーブル名 DROP COLUMN 列名で、テーブルから指定した列を削除できます。

  • Q39

    テーブル名を変更するSQLはどれですか?

    ANSWER
    RENAME TABLE 旧名 TO 新名
    クリックして解説を表示
    EXPLANATION

    RENAME TABLEまたはALTER TABLE テーブル名 RENAME TO 新テーブル名で、テーブル名を変更できます。

  • Q40

    外部キー制約を追加する際に使用するキーワードはどれですか?

    ANSWER
    FOREIGN KEY ... REFERENCES ...
    クリックして解説を表示
    EXPLANATION

    FOREIGN KEY ... REFERENCES ... を使用して、テーブル間の参照整合性を定義する外部キー制約を追加します。

STAGE 5
4150問目 • 10
  • Q41

    次のSQLの外部キー制約は何を意味しますか?

    CREATE TABLE orders (
      id INT PRIMARY KEY,
      user_id INT,
      FOREIGN KEY (user_id) REFERENCES users(id)
    );
    ANSWER
    user_idにはusersテーブルに存在するidの値のみ許可される
    クリックして解説を表示
    EXPLANATION

    ordersテーブルのuser_id列は、usersテーブルのid列を参照します。user_idには、usersテーブルに存在するidの値のみが許可されます。

  • Q42

    ON DELETE CASCADEの意味として正しいものはどれですか?

    ANSWER
    親レコードが削除されると子レコードも自動的に削除される
    クリックして解説を表示
    EXPLANATION

    ON DELETE CASCADEは、親テーブルのレコードが削除されたとき、参照している子テーブルのレコードも自動的に削除されることを意味します。

  • Q43

    ON DELETE SET NULLの意味として正しいものはどれですか?

    ANSWER
    親レコードが削除されると子レコードの外部キーがNULLになる
    クリックして解説を表示
    EXPLANATION

    ON DELETE SET NULLは、親テーブルのレコードが削除されたとき、参照している子テーブルの外部キー列がNULLに設定されることを意味します。

  • Q44

    CHECK制約の役割として正しいものはどれですか?

    ANSWER
    列の値が特定の条件を満たすことを保証する
    クリックして解説を表示
    EXPLANATION

    CHECK制約は、列に格納できる値の範囲や条件を指定します。条件を満たさない値はINSERTまたはUPDATEで拒否されます。

  • Q45

    次のSQLのCHECK制約は何を意味しますか?

    CREATE TABLE products (
      id INT PRIMARY KEY,
      price DECIMAL(10, 2) CHECK (price >= 0)
    );
    ANSWER
    priceは0以上でなければならない
    クリックして解説を表示
    EXPLANATION

    CHECK制約により、price列には0以上の値のみが許可されます。負の価格は挿入または更新時に拒否されます。

  • Q46

    ビュー(VIEW)とは何ですか?

    ANSWER
    仮想的なテーブル(保存されたSELECT文)
    クリックして解説を表示
    EXPLANATION

    ビューは、SELECT文の結果を仮想的なテーブルとして保存したものです。実際のデータは持たず、参照時にクエリが実行されます。

  • Q47

    ビューを作成するSQLコマンドはどれですか?

    ANSWER
    CREATE VIEW ビュー名 AS SELECT文
    クリックして解説を表示
    EXPLANATION

    CREATE VIEW ビュー名 AS SELECT文で、SELECT文の結果を仮想テーブルとして保存するビューを作成します。

  • Q48

    ビューを使用するメリットとして正しいものはどれですか?

    ANSWER
    クエリの簡略化とセキュリティの向上
    クリックして解説を表示
    EXPLANATION

    ビューを使用すると、複雑なクエリを簡略化し、セキュリティ(特定の列のみ公開)を向上させ、データの抽象化を実現できます。

  • Q49

    スカラーサブクエリとは何ですか?

    ANSWER
    単一の値を返すサブクエリ
    クリックして解説を表示
    EXPLANATION

    スカラーサブクエリは、単一の値(1行1列)を返すサブクエリです。SELECT句やWHERE句の中で使用できます。

  • Q50

    次のSQLのサブクエリは何種類ですか?

    SELECT name,
      (SELECT AVG(total) FROM orders WHERE orders.user_id = users.id) AS avg_order
    FROM users;
    ANSWER
    スカラーサブクエリ(相関サブクエリ)
    クリックして解説を表示
    EXPLANATION

    SELECT句の中で単一の値(平均値)を返すため、これはスカラーサブクエリであり、各ユーザーの行に対して実行される相関サブクエリでもあります。

STAGE 6
5160問目 • 10
  • Q51

    FROM句で使用するサブクエリ(派生テーブル)の特徴として正しいものはどれですか?

    ANSWER
    エイリアスが必要で、一時的なテーブルとして扱われる
    クリックして解説を表示
    EXPLANATION

    FROM句のサブクエリ(派生テーブルまたはインラインビュー)は、一時的なテーブルのように扱われ、エイリアス(別名)が必要です。

  • Q52

    ANY演算子の役割として正しいものはどれですか?

    ANSWER
    サブクエリのいずれかの値と比較条件を満たす場合TRUE
    クリックして解説を表示
    EXPLANATION

    ANYは、サブクエリが返す値のいずれかと比較条件を満たす場合にTRUEを返します。= ANYはINと同等です。

  • Q53

    ALL演算子の役割として正しいものはどれですか?

    ANSWER
    サブクエリのすべての値と比較条件を満たす場合TRUE
    クリックして解説を表示
    EXPLANATION

    ALLは、サブクエリが返すすべての値と比較条件を満たす場合にTRUEを返します。

  • Q54

    次のSQLの意味として正しいものはどれですか?

    SELECT * FROM products
    WHERE price > ALL (SELECT price FROM products WHERE category = 'A');
    ANSWER
    カテゴリAのすべての商品の価格より高い商品を取得
    クリックして解説を表示
    EXPLANATION

    price > ALLは、カテゴリAのすべての商品の価格より高い価格を持つ商品を取得します。つまり、カテゴリAの最高価格より高い商品です。

  • Q55

    CASE式の役割として正しいものはどれですか?

    ANSWER
    条件に基づいて異なる値を返す
    クリックして解説を表示
    EXPLANATION

    CASE式は、条件に基づいて異なる値を返す条件分岐を実現します。プログラミング言語のif-else文に似ています。

  • Q56

    次のSQLの結果として、ageが30以上の場合に返される値は何ですか?

    SELECT name,
      CASE
        WHEN age < 20 THEN '未成年'
        WHEN age < 30 THEN '20代'
        ELSE '30歳以上'
      END AS age_group
    FROM users;
    ANSWER
    '30歳以上'
    クリックして解説を表示
    EXPLANATION

    CASE式は上から順に条件を評価し、age < 20とage < 30のどちらも満たさない場合(30以上)はELSEの'30歳以上'が返されます。

  • Q57

    単純CASE式と検索CASE式の違いとして正しいものはどれですか?

    ANSWER
    単純CASE式は値の比較、検索CASE式は条件式を使用
    クリックして解説を表示
    EXPLANATION

    単純CASE式は単一の式と複数の値を比較し、検索CASE式は各WHEN句で異なる条件を指定できます。

  • Q58

    NULLIF関数の役割として正しいものはどれですか?

    ANSWER
    2つの値が等しい場合にNULLを返す
    クリックして解説を表示
    EXPLANATION

    NULLIF(a, b)は、aとbが等しい場合にNULLを返し、異なる場合はaを返します。0除算を防ぐ場合などに使用されます。

  • Q59

    次のSQLの結果として、aが0の場合に返される値は何ですか?

    SELECT 100 / NULLIF(a, 0) FROM table1;
    ANSWER
    NULL
    クリックして解説を表示
    EXPLANATION

    aが0の場合、NULLIF(a, 0)はNULLを返します。100 / NULLはNULLになるため、0除算エラーを回避できます。

  • Q60

    GROUP_CONCAT(またはSTRING_AGG)関数の役割として正しいものはどれですか?

    ANSWER
    グループ内の値を連結して1つの文字列にする
    クリックして解説を表示
    EXPLANATION

    GROUP_CONCAT(PostgreSQLではSTRING_AGG)は、グループ内の値を連結して1つの文字列にする集計関数です。

STAGE 7
6170問目 • 10
  • Q61

    日付から年を抽出する関数として一般的なものはどれですか?

    ANSWER
    YEAR() または EXTRACT(YEAR FROM ...)
    クリックして解説を表示
    EXPLANATION

    YEAR関数(またはEXTRACT(YEAR FROM 日付))は、日付から年の部分を抽出します。

  • Q62

    2つの日付の差を計算する方法として一般的なものはどれですか?

    ANSWER
    DATEDIFF() または日付の減算
    クリックして解説を表示
    EXPLANATION

    DATEDIFF関数(または日付の減算)を使用して、2つの日付の差を計算できます。データベースにより構文が異なります。

  • Q63

    日付に日数を加算する方法として一般的なものはどれですか?

    ANSWER
    DATE_ADD() または INTERVAL構文
    クリックして解説を表示
    EXPLANATION

    DATE_ADD関数(またはINTERVAL構文)を使用して、日付に日数や月数などを加算できます。

  • Q64

    LIKE演算子で特殊文字(%や_)を文字として検索する方法はどれですか?

    ANSWER
    ESCAPE句でエスケープ文字を指定する
    クリックして解説を表示
    EXPLANATION

    ESCAPE句を使用して、エスケープ文字を指定します。例:LIKE '%100%%' ESCAPE '\'で、'100%'を含む文字列を検索できます。

  • Q65

    正規表現を使用したパターンマッチングに使用する演算子(PostgreSQL)はどれですか?

    ANSWER
    ~ または REGEXP
    クリックして解説を表示
    EXPLANATION

    PostgreSQLでは~(大文字小文字区別)や~*(大文字小文字無視)演算子で正規表現マッチングを行えます。MySQLではREGEXPを使用します。

  • Q66

    インデックスが使用されない可能性が高いクエリはどれですか?

    ANSWER
    WHERE name LIKE '%田'
    クリックして解説を表示
    EXPLANATION

    LIKEで前方に%がある場合('%abc')、インデックスは効果的に使用されません。関数を適用した列や否定条件もインデックスが使われにくいです。

  • Q67

    クラスタ化インデックスの特徴として正しいものはどれですか?

    ANSWER
    データを物理的にインデックス順に格納し、テーブルに1つのみ
    クリックして解説を表示
    EXPLANATION

    クラスタ化インデックスは、テーブルのデータを物理的にインデックスの順序で格納します。テーブルに1つしか作成できません。

  • Q68

    テーブルとビューの違いとして正しいものはどれですか?

    ANSWER
    テーブルはデータを格納、ビューはSELECT文の定義を保存
    クリックして解説を表示
    EXPLANATION

    テーブルは実際のデータを格納しますが、ビューはSELECT文の定義のみを保存し、参照時にクエリが実行されます。

  • Q69

    マテリアライズドビュー(MATERIALIZED VIEW)の特徴として正しいものはどれですか?

    ANSWER
    クエリ結果を実際に保存し、リフレッシュが必要
    クリックして解説を表示
    EXPLANATION

    マテリアライズドビューは、クエリの結果を実際にディスクに保存します。通常のビューより高速ですが、データの更新には手動または定期的なリフレッシュが必要です。

  • Q70

    更新可能なビューの条件として正しいものはどれですか?

    ANSWER
    単一テーブルを参照し、集計関数やGROUP BYを含まない
    クリックして解説を表示
    EXPLANATION

    更新可能なビューは、単一テーブルを参照し、集計関数、DISTINCT、GROUP BY、UNIONなどを含まないシンプルなビューである必要があります。

STAGE 8
7180問目 • 10
  • Q71

    WITH CHECK OPTIONの役割として正しいものはどれですか?

    ANSWER
    ビューの条件を満たさないデータの挿入・更新を禁止
    クリックして解説を表示
    EXPLANATION

    WITH CHECK OPTIONは、ビューを通じたINSERTやUPDATEで、ビューの条件を満たさないデータの挿入・更新を禁止します。

  • Q72

    テンポラリテーブル(一時テーブル)の特徴として正しいものはどれですか?

    ANSWER
    セッション終了時に自動的に削除される
    クリックして解説を表示
    EXPLANATION

    テンポラリテーブルは、セッション終了時(または明示的に削除するまで)に自動的に削除される一時的なテーブルです。

  • Q73

    テンポラリテーブルを作成するSQLはどれですか?

    ANSWER
    CREATE TEMPORARY TABLE テーブル名
    クリックして解説を表示
    EXPLANATION

    CREATE TEMPORARY TABLE(またはCREATE TEMP TABLE)で一時テーブルを作成します。データベースにより構文が若干異なります。

  • Q74

    複数列でGROUP BYする場合の結果はどうなりますか?

    ANSWER
    すべての指定した列の値の組み合わせでグループ化される
    クリックして解説を表示
    EXPLANATION

    複数列でGROUP BYすると、指定したすべての列の値の組み合わせでグループ化されます。

  • Q75

    次のSQLの結果はどのようにグループ化されますか?

    SELECT country, city, COUNT(*) 
    FROM users 
    GROUP BY country, city;
    ANSWER
    countryとcityの組み合わせでグループ化
    クリックして解説を表示
    EXPLANATION

    countryとcityの組み合わせでグループ化されます。例:(日本, 東京)、(日本, 大阪)、(アメリカ, ニューヨーク)などが別々のグループになります。

  • Q76

    HAVING句で使用できないものはどれですか?

    ANSWER
    GROUP BYで指定していない非集計列
    クリックして解説を表示
    EXPLANATION

    HAVING句はグループ化後のフィルタリングに使用するため、集計関数またはGROUP BY句で指定した列のみ使用できます。グループ化されていない列は使用できません。

  • Q77

    ROLLUP演算子の役割として正しいものはどれですか?

    ANSWER
    小計と総計の行を追加する
    クリックして解説を表示
    EXPLANATION

    ROLLUPは、GROUP BYの結果に小計と総計の行を追加します。階層的な集計レポートを作成する際に使用します。

  • Q78

    CUBE演算子の役割として正しいものはどれですか?

    ANSWER
    すべての可能な列の組み合わせの集計を生成する
    クリックして解説を表示
    EXPLANATION

    CUBEは、GROUP BYの列のすべての可能な組み合わせに対する集計を生成します。ROLLUPより多くの集計行が生成されます。

  • Q79

    GROUPING関数の役割として正しいものはどれですか?

    ANSWER
    集計行かどうかを判定する(1または0を返す)
    クリックして解説を表示
    EXPLANATION

    GROUPING関数は、ROLLUPやCUBEで生成された集計行かどうかを判定します。集計行の場合は1、通常の行の場合は0を返します。

  • Q80

    N+1問題とは何ですか?

    ANSWER
    1回のクエリ後にN回の追加クエリが発生する非効率な状態
    クリックして解説を表示
    EXPLANATION

    N+1問題は、1回のクエリでN件のデータを取得した後、各データに対して追加のクエリを発行してしまう非効率なパターンです。JOINやサブクエリで解決できます。

STAGE 9
8190問目 • 10
  • Q81

    サブクエリをJOINに書き換えるメリットとして正しいものはどれですか?

    ANSWER
    オプティマイザがより効率的な実行計画を選択しやすい
    クリックして解説を表示
    EXPLANATION

    多くの場合、サブクエリよりJOINの方がオプティマイザが効率的な実行計画を選択でき、パフォーマンスが向上します。ただし、ケースによります。

  • Q82

    LATERAL結合の特徴として正しいものはどれですか?

    ANSWER
    サブクエリが外側のクエリの列を参照できる
    クリックして解説を表示
    EXPLANATION

    LATERAL結合は、サブクエリが外側のクエリの列を参照できる特殊な結合です。各行に対してサブクエリが評価されます。

  • Q83

    INSERT ... SELECT文の役割として正しいものはどれですか?

    ANSWER
    SELECTの結果を別のテーブルに挿入する
    クリックして解説を表示
    EXPLANATION

    INSERT ... SELECTは、SELECTの結果を別のテーブルに挿入します。データの移行やバックアップに使用されます。

  • Q84

    次のSQLは何を行いますか?

    INSERT INTO archive_users
    SELECT * FROM users WHERE created_at < '2023-01-01';
    ANSWER
    古いユーザーをarchive_usersテーブルにコピーする
    クリックして解説を表示
    EXPLANATION

    usersテーブルから2023年1月1日より前に作成されたレコードを選択し、archive_usersテーブルに挿入します。

  • Q85

    MERGE文(またはUPSERT)の役割として正しいものはどれですか?

    ANSWER
    条件に基づいてINSERT/UPDATE/DELETEを1つの文で実行
    クリックして解説を表示
    EXPLANATION

    MERGE文は、条件に基づいてINSERT、UPDATE、DELETEを1つの文で実行します。レコードが存在すれば更新、なければ挿入といった処理に使用します。

  • Q86

    INSERT ... ON CONFLICT(PostgreSQL)またはON DUPLICATE KEY UPDATE(MySQL)の役割として正しいものはどれですか?

    ANSWER
    一意制約違反時に更新を行う(UPSERT)
    クリックして解説を表示
    EXPLANATION

    これらは、一意制約違反が発生した場合に更新を行う「UPSERT」操作を実現します。レコードがなければINSERT、あればUPDATEします。

  • Q87

    UPDATE文でJOINを使用する目的として正しいものはどれですか?

    ANSWER
    他のテーブルの値を参照して更新する
    クリックして解説を表示
    EXPLANATION

    UPDATE文でJOINを使用すると、他のテーブルの値を参照して更新したり、複数テーブルの条件に基づいて更新対象を絞り込んだりできます。

  • Q88

    DELETE文でJOINを使用する目的として正しいものはどれですか?

    ANSWER
    他のテーブルの条件に基づいて削除対象を絞り込む
    クリックして解説を表示
    EXPLANATION

    DELETE文でJOINを使用すると、他のテーブルの条件に基づいて削除対象を絞り込むことができます。

  • Q89

    文字列の空白を除去する関数として、先頭の空白のみを除去するものはどれですか?

    ANSWER
    LTRIM()
    クリックして解説を表示
    EXPLANATION

    LTRIM関数は、文字列の先頭(左側)の空白のみを除去します。末尾はRTRIM、両端はTRIMです。

  • Q90

    CAST関数の役割として正しいものはどれですか?

    ANSWER
    値を別のデータ型に変換する
    クリックして解説を表示
    EXPLANATION

    CAST関数は、値を別のデータ型に変換します。例:CAST('123' AS INTEGER)で文字列を整数に変換。

STAGE 10
91100問目 • 10
  • Q91

    次のSQLの結果として返される値のデータ型は何ですか?

    SELECT CAST('123.45' AS DECIMAL(10,2));
    ANSWER
    DECIMAL
    クリックして解説を表示
    EXPLANATION

    CAST関数により文字列'123.45'がDECIMAL(10,2)型に変換されます。小数点以下2桁の数値型になります。

  • Q92

    テーブルの構造を確認するSQLコマンドとして一般的なものはどれですか?

    ANSWER
    DESCRIBE テーブル名
    クリックして解説を表示
    EXPLANATION

    DESCRIBE(またはDESC)やSHOW COLUMNSを使用してテーブルの構造(列名、データ型、制約など)を確認できます。データベースにより構文が異なります。

  • Q93

    SELF JOINを使用する典型的なケースはどれですか?

    ANSWER
    従業員とその上司の関係を取得する場合
    クリックして解説を表示
    EXPLANATION

    自己結合は、従業員とその上司の関係など、同じテーブル内のレコード同士を関連付ける場合に使用します。

  • Q94

    次のSQLで、ordersテーブルに注文がないユーザーを取得するにはどうしますか?

    SELECT u.name FROM users u
    LEFT JOIN orders o ON u.id = o.user_id
    WHERE ____;
    ANSWER
    o.id IS NULL
    クリックして解説を表示
    EXPLANATION

    LEFT JOINで結合後、右テーブル(orders)の列がNULLのレコードを抽出することで、注文がないユーザーを取得できます。

  • Q95

    複数の列でインデックスを作成する場合、列の順序が重要な理由は何ですか?

    ANSWER
    左端の列から順にインデックスが使用されるため
    クリックして解説を表示
    EXPLANATION

    複合インデックスは左端の列から順に使用されます。(A, B, C)のインデックスはAの検索、A+Bの検索には効果的ですが、Bのみ、Cのみの検索には効果がありません。

  • Q96

    サブクエリとJOINの違いとして正しいものはどれですか?

    ANSWER
    サブクエリはネストしたSELECT、JOINはテーブルを横に結合
    クリックして解説を表示
    EXPLANATION

    サブクエリは別のクエリ内にネストされたSELECT文で、JOINはテーブルを横に結合します。多くの場合、同じ結果を得られますがパフォーマンスが異なることがあります。

  • Q97

    COALESCE関数とIFNULL関数の違いとして正しいものはどれですか?

    ANSWER
    COALESCEは標準SQLで複数引数可、IFNULLはMySQL固有で2引数
    クリックして解説を表示
    EXPLANATION

    COALESCEは標準SQLで複数の引数を取れますが、IFNULLはMySQLの関数で2つの引数のみです。COALESCEの方が移植性が高いです。

  • Q98

    次のSQLでGROUP BYを使用する際、SELECT句に含められないものはどれですか?

    SELECT department, ____ FROM employees GROUP BY department;
    ANSWER
    name
    クリックして解説を表示
    EXPLANATION

    GROUP BY句を使用する場合、SELECT句にはGROUP BYで指定した列か、集計関数(COUNT、SUM、AVGなど)を適用した列のみ含められます。個別のname列は不可です。

  • Q99

    データベースのNULLに関する説明として正しいものはどれですか?

    ANSWER
    NULLは値がないことを表し、IS NULLで比較する
    クリックして解説を表示
    EXPLANATION

    NULLは「値がない」または「不明」を表す特殊な値です。NULL = NULLはTRUEではなくNULL(不明)を返すため、IS NULLで比較する必要があります。

  • Q100

    インデックスを削除するSQLコマンドはどれですか?

    ANSWER
    DROP INDEX インデックス名
    クリックして解説を表示
    EXPLANATION

    DROP INDEX インデックス名でインデックスを削除できます。データベースによってはテーブル名の指定が必要な場合もあります。