SQL開発者向けのインタビューの質問: 一般的なSQLインタビューのQ&A- パート3

SQL では、どのような種類の SQL joins を使用したことがありますか?また、それらがどのように機能するかを説明してください。

答え:

  • INNER JOIN: 両方のテーブルから一致するデータを含む行を返します。
  • LEFT JOIN: 左側のテーブルのすべての行と、右側のテーブルの一致する行を返します。
  • RIGHT JOIN: 右側のテーブルのすべての行と、左側のテーブルの一致する行を返します。
  • FULL JOIN: 一致しない行を含む、両方のテーブルのすべての行を返します。

 

SQL における ACID の概念とトランザクション管理における ACID の役割について説明する

回答: ACID は の略です Atomicity, Consistency, Isolation, Durability。 これらは SQL でのトランザクション管理に不可欠なプロパティです。

  • Atomicity トランザクションが完全に処理されるか、まったく処理されないかを保証します。
  • Consistency データが定義されたルール、制約、条件に従う必要があることを保証します。
  • Isolation 同時トランザクションが相互に干渉しないようにします。
  • Durability トランザクションが完了すると、データベース内の変更が安全かつ永続的に保存されます。

 

ROW_NUMBER(), RANK(), DENSE_RANK() SQL の関数 の違いは何ですか?

回答: ROW_NUMBER(), RANK(), DENSE_RANK() はすべてクエリ結果の行に番号を付けるために使用されますが、次のような違いがあります。

  • ROW_NUMBER(): 重複を考慮せずに、クエリ結果の行に連続した番号を割り当てます。
  • RANK(): クエリ結果の行に番号を割り当て、同点の場合は次の番号をスキップします。
  • DENSE_RANK(): クエリ結果の行に番号を割り当て、同点の場合は次の番号をスキップしません。

 

SQL での使用方法 window functions と例を示します。

回答: Window functions メイン クエリの結果を変更せずに、関連する行のセットに対して計算を実行できるようにします。 たとえば、ウィンドウ関数を使用して累計を計算したり、結果セット内の上位 N 行を取得したりできます。

SELECT ProductID, UnitPrice,   
       SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal  
FROM Products;  

 

SQL で正規表現を使用してパターン マッチングを行う方法

回答: SQL の正規表現は、複雑なテキスト パターンの検索に使用されます。 これらは、(Oracle の場合) や(PostgreSQL の場合) LIKE などの演算子または関数 とともによく使用されます 。 REGEXP_LIKE REGEXP_MATCHES

SELECT * FROM Employees WHERE LastName LIKE '%son%';

 

SQL で JSON 関数を使用して JSON データを操作する方法

回答: SQL の JSON 関数を使用すると、データベース内の JSON 形式のデータのクエリ、挿入、更新、削除が可能になります。

たとえば、JSON_VALUE、JSON_QUERY、JSON_MODIFY(SQL Server の場合) などの関数、または ->、->>、#>、#>> などの演算子(PostgreSQL の場合) を使用して、JSON プロパティを操作できます。

SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName  
FROM Customers;  

 

SQL クエリの最適化とデータベース パフォーマンスのチューニングのための高度なテクニック

回答: SQL クエリとデータベースのパフォーマンスを最適化するには、次のような手法を使用できます。

  • 頻繁にクエリされる列にインデックスを使用する。
  • 効率的なデータ取得のための句 JOIN の 最適化。 WHERE
  • 必要に応じてウィンドウ機能やページネーションを利用します。
  • *を避けて SELECT 必要な列のみを取得します。
  • 場合によってはクエリヒントを使用します。
  • データの正規化を確実にし、重複を削除します。
  • パフォーマンス監視ツールを使用してデータベースを追跡し、微調整します。

 

SQL での SET 演算の 使用方法を説明する (UNION, INTERSECT, EXCEPT)

回答: SET 操作は、 (UNION, INTERSECT, EXCEPT) さまざまなクエリの結果セットを結合および操作するために使用されます。

  • UNION: 2 つ以上のクエリの結果を 1 つのデータ セットに結合し、重複を削除します。
  • INTERSECT: 両方のクエリ結果セットに含まれる行を返します。
  • EXCEPT: 最初のクエリ結果セットには表示されるが、2 番目のクエリ結果セットには表示されない行を返します。

 

LEAD, LAG, FIRST_VALUE, LAST_VALUE SQLの ようなクエリ関数の使い方

回答: のようなクエリ関数は、 LEAD, LAG, FIRST_VALUE, LAST_VALUE 同じクエリ結果内の関連する行から値を取得するために使用されます。

  • LEAD: クエリ結果の次の行から列の値を取得します。
  • LAG: クエリ結果の前の行から列の値を取得します。
  • FIRST_VALUE: クエリ結果の列の最初の値を取得します。
  • LAST_VALUE: クエリ結果の列の最後の値を取得します。