20 よくある SQL インタビューの質問と回答 [2022]

公開: 2022-08-18

構造化照会言語 (SQL) は、データベース管理者やデータ アナリストがデータベースの照会に使用する標準のプログラミング言語です。 ウェブサイト、アプリ、その他のプラットフォームのプログラミング言語で広く使用されています。

テーブルや列の作成と変更、SQL コマンドを使用したデータのクエリなど、データベース内のデータにアクセスして操作するために使用されます。

SQL 面接の準備中に使用する質問と回答を探している場合、この投稿は間違いなくいくつかの洞察を提供します。 データ エンジニア、データ アナリスト、データベース管理者などの就職面接では、次の質問が予想されます。

基本的な SQL コマンドは何ですか?

最も重要な SQL コマンドのいくつかは次のとおりです。

  • SELECT – データベースからデータを抽出します。
  • CREATE TABLE – 新しいテーブルを作成します。
  • DELETE – データベースからデータを削除します。
  • INSERT INTO – 新しいデータをデータベースに挿入します。
  • ALTER DATABASE – データベースを変更します。
  • CREATE DATABASE – 新しいデータベースを作成します。
  • UPDATE – データベース内のデータを更新します。

4 つの重要な SQL ステートメントは何ですか?

主な SQL ステートメントは、次のカテゴリに分類されます。

  • データ定義言語 (DDL) ステートメント
  • データ操作言語 (DML) ステートメント
  • データ制御言語 (DCL) ステートメント
  • トランザクション制御言語 (TCL) ステートメント

SQLの主キーの意味は何ですか?

主キーは、データベース内の各行を一意に識別できるようにする列 (または列のセット) です。 SQL データベースでは、主キーが非常に重要です。 これらは、データベース テーブルの各行に一意の ID を提供します。 主キーは 1 つ以上のフィールドで構成でき、テーブルごとに 1 つの主キーしか存在できません。

SQL データ型とは

データ型は、バイナリ文字列、数値データ、文字データ、財務データ、日付と時刻のデータなど、オブジェクトが格納できるデータの種類を記述する属性です。

SQL では、データ型は次のグループに分類されます。

  • 正確な数値
  • おおよその数値
  • 日時
  • 文字列
  • Unicode 文字列
  • バイナリ文字列

ユーザー名とパスワードは SQL Server のどこに保存されますか?

ユーザー名とパスワードは、SQL テーブルの sys.server プリンシパルと sys.sql ログインにそれぞれ格納されます。 パスワードは通常のテキストでは保存されません。

SQL インジェクションとは

SQL インジェクション攻撃は、今日のサイバー攻撃の最も一般的なタイプの 1 つです。 悪意のある攻撃者は、アプリケーションのデータベースを操作してデータにアクセスできます。 これにより、経済的損失から機密データの損失まで、さまざまな悪影響が生じる可能性があります。 SQL インジェクション攻撃から保護する最善の方法は、そもそも攻撃を防ぐことです。

SQL のトリガーとその種類は何ですか?

トリガーは、データベース サーバーでイベントが発生したときに自動的に実行される特別な種類のストアド プロシージャです。 トリガーは、DDL および DML ステートメントを使用したデータ変更の前後にデータを評価するために使用されます。

トリガーには、LOGON、DDL、DML の 3 種類があります。

  • LOGON トリガー:これらのトリガーは、ユーザーがログオン イベントを開始したときに起動されます。
  • DDL トリガーは、CREATE、ALTER、DROP などの DDL コマンドが発行されるたびにトリガーされます。
  • DML トリガー: DML コマンドがデータを変更するたびにトリガーされます。 INSERT、UPDATE、および DELETE と同等

単一行関数と複数行関数をどのように区別しますか?

テーブル内の単一の行は、一度に単一行関数の影響を受ける可能性があります。 行を実行し、結果を 1 つ返すだけです。 長さと大文字と小文字の変換が単一行関数であることはよく知られています。

テーブルの行は、多くの行関数によって同時に影響を受ける可能性があります。 グループ関数とも呼ばれ、単一の出力を返す前に複数の行を実行します。

データベースの正規化とは何ですか? SQL における主な 4 つのタイプは何ですか?

データベースの正規化は、アクセスを高速化し、データの冗長性を減らすためにデータを編成するプロセスです。 データベースの列とテーブルは正規化中に編成され、データベースの整合性制約によって依存関係が正しく維持されるようにします。

データベースの正規化プロセスには、次の 4 つのタイプがあります。

  • 第 1 正規形 (1 NF)
  • 第 2 正規形 (2 NF)
  • 第 3 正規形 (3 NF)
  • ボイス コッド正規形または第 4 正規形 (BCNF または 4 NF)

SQL のインデックスと制約とは何ですか?

インデックスは、SQL で最も重要な概念の 1 つです。 これにより、大規模なデータベースで特定のデータ行をすばやく見つけることができます。 また、特定の条件が満たされたときにデータベースにどのように動作するかを指示するルールである制約を適用するのにも役立ちます。

インデックスは、テーブル内のデータの検索を高速化することにより、クエリのパフォーマンスを向上させるために使用されます。 また、テーブル内のデータの読みやすさを向上させるためにも使用されます。

制約は、テーブルに入力できるデータの種類を制限するために使用されます。 これにより、テーブル内のデータの正確性と信頼性が保証されます。 制約とデータ アクションの間に違反がある場合、アクションは中止されます。

一般的に使用される SQL 制約は何ですか?

一般的に使用される SQL 制約は次のとおりです。

  • CREATE INDEX: このコマンドを使用すると、テーブルのインデックスが確実に作成されるため、データの取得が簡単になります。
  • FOREIGN KEY: テーブルの外部キーは、同様の属性を持つテーブルを接続する必要があります。
  • DEFAULT: 列のフィールドに値が指定されていない場合、それらのフィールドにデフォルト値が指定されます。
  • UNIQUE: これは、列の各値が異なる必要があることを指定します。
  • PRIMARY KEY: テーブルの主キーは、各行を識別する必要があります。
  • NOT NULL: この条件により、列で NULL 値が受け入れられなくなります。
  • チェック: すべての列フィールドが所定の要件に準拠していることを確認します。

NULL は SQL で 0 に等しいですか?

SQL の NULL 値は、使用できないか割り当てられていない値を示します。 スペース (' ') またはゼロ (0) は、値 NULL と同等ではありません。 「=」や「>」などの比較演算子を使用して、NULL 値を他の値と比較することはできません。

SQL インジェクション攻撃を防ぐには?

絶え間ないスキャンと侵入テストに加えて、入力の検証、サニタイズ、準備されたステートメント、パラメーター化された SQL クエリなどのセキュリティ メソッドは、SQL インジェクション攻撃を防ぐために重要です。 さらに、ファイアウォールのような迅速な防御は、SQL データベースを保護するのに役立ちます。

動的 SQL とは何ですか? また、いつ使用できますか?

動的 SQL は、現在の日付、現在の時刻、または選択したその他の基準を含む 1 つ以上の基準に基づいて、実行時にクエリを変更するために使用できる機能です。

動的 SQL を使用してクエリを意味のある方法で変更し、目標を達成したり、単にプログラミング スキルを向上させたりすることができます。 新しいアプリを作成する場合でも、データベースを改善する場合でも、実稼働システムにデータ ウェアハウス機能を追加する場合でも、動的 SQL を使用してすべてを行うことができます。

SQL のさまざまな種類のキーは何ですか?

主キー:データベース テーブルの各行またはレコードは、主キーと呼ばれるフィールドによって一意に識別されます。 一意の値が主キーに含まれている必要があります。 主キー フィールドに NULL 値を含めることはできません。 1 つ以上のフィールドで構成される、テーブルごとに 1 つの主キーのみが存在できます。

外部キー:別のテーブルの主キーに関連するテーブル内のフィールドまたはフィールドのグループは、外部キーと呼ばれます。 主キーを持つテーブルは親テーブルと呼ばれ、外部キーを持つテーブルは子テーブルと呼ばれます。

スーパー キー:スーパー キーは、テーブル内のエントリを識別するのに役立つキーまたはキーのセットです。 レコードを識別するためにすべての属性が必要なわけではありませんが、スーパー キーには 1 つ以上の属性を含めることができます。

候補キー:候補キーは、1 つ以上の属性に基づいてデータベース内のレコードを識別するために使用できるスーパー キーのサブセットです。 Superkey とは異なり、候補キーのすべての機能がレコードの識別に役立つ必要があります。

複合キー:複合キーは、テーブル内の行を識別するために使用される、テーブル内の 2 つ以上の列の組み合わせです。 複合キーは、他の属性または列を持つ主キーです。

SQL のインデックスの種類は何ですか?

以下は、SQL のインデックスの種類です。

  • ハッシュインデックス
  • メモリ最適化非クラスタ化
  • クラスタ化されたインデックス
  • 非クラスター化インデックス
  • 一意のインデックス
  • 列ストア インデックス
  • 列を含むインデックス
  • 計算列のインデックス
  • フィルタリングされたインデックス
  • 空間インデックス
  • XML インデックス
  • 全文索引

バッファプールとは何を意味し、その利点について言及していますか?

SQL では、バッファー プールはバッファー キャッシュとも呼ばれます。 バッファー プールは、キャッシュされたデータ ページを格納するためにすべてのリソースで使用できます。 SQL Server インスタンスをセットアップするときに、バッファー プールのサイズを指定できます。 バッファー プールのサイズによって、保持できるページ数が決まります。

バッファー プールの利点は次のとおりです。

  • I/O パフォーマンスの向上
  • トランザクション スループットの増加
  • I/O レイテンシの削減
  • 読解力の向上

依存関係とはどういう意味で、さまざまな依存関係について言及していますか?

1 つのオブジェクトが別のオブジェクトに保持されている SQL ステートメントで名前によって参照されると、2 つのオブジェクト間の依存関係が確立されます。 「参照エンティティ」という用語は SQL 式に現れるオブジェクトを指し、「参照エンティティ」という用語は SQL 式を含むオブジェクトを指します。

以下は、SQL のさまざまな種類の依存関係です。

  • 機能依存
  • 完全に機能する依存関係
  • 多値依存関係
  • 推移的な依存関係
  • 部分依存

SQL 結合とは何ですか? 最も一般的な SQL 結合は何ですか?

結合は、SQL でのデータ管理の基本的な部分です。 2 つ以上のテーブルを結合して、データの分析に使用できる単一のテーブルを作成できます。 また、単一のテーブルの条件に基づいて結果をフィルター処理する方法も提供します。これは、大きなテーブルで特定の行または列を見つけようとするときに役立ちます。

SQL の JOIN には、INNER JOIN、OUTER JOIN、CROSS JOIN、および SELF JOIN の 4 つの主なタイプがあります。

SQL の集合演算子とは何ですか?

セット演算子を使用して、同じタイプの 1 つ以上のテーブルからのデータを組み合わせることができます。 SQL セット演算子と SQL 結合演算子は似ていますが、重要な違いがいくつかあります。 SQL セット演算子はさまざまなクエリからレコードを収集しますが、SQL 結合はさまざまなテーブルの列を結合します。 コンパウンド SQL クエリは、セット操作を含むクエリです。

結論

これらの SQL 面接の質問が、面接の観点から何を期待するかについての良いイメージを提供してくれることを願っています。 SQL 面接をクラックするには、SQL 環境にさらに触れる必要があります。 これは、SQL を深く研究することで達成できます。 主要な SQL 原則を評価するには、SQL クエリの面接の質問を練習し、読み続ける必要があります。

SQL クエリの説明を探している場合は、SQL チート シートにアクセスして、SQL ステートメントに関する詳細な情報を入手してください。

SQL クエリを実行して実践的な経験を積むには、これらの SQL プラクティス プラットフォームを確認してください。