19 SQLインタビューの質問と回答を読む必要があります:初心者および2022年の経験者向け

公開: 2021-01-07

SQLインタビューの質問と回答

面接が心配ですか? SQLインタビューの質問に対応しました。 これらは、SQLインタビューで最もよくある質問のいくつかです。
ソフトウェアおよびIT業界でどの職務を選択する場合でも、SQLスキルは必須です。 今日でも、RDBMSは世界中で最も広く使用されているデータベースの1つであるため、SQLは開発ドメインの不可欠な部分です。 Uber、Netflix、Airbnbなどの有名企業、そしてもちろんMicrosoftは、主要なデータベース管理ツールとしてSQLを使用しています。

SQLが今日非常に人気がある理由は、SQLが企業のIT環境でのトランザクション処理、分析アプリケーション、およびビジネスインテリジェンス操作のホストをサポートしているためです。

この投稿では、SQLの基本を開始するのに役立ちます。 これが、 SQLインタビューで最もよく聞かれる質問のリストを作成した理由です。 SQL面接の質問が面接に役立つことを願っています。 これらのSQLインタビューの質問は、SQLの基本的な概念と、SQLをどのように進めるかについての比較的良いアイデアを提供します。

トップSQLインタビューの質問と回答

1.SQLを定義します。

SQLまたはStructuredQueryLanguageは、Microsoftによって作成されたリレーショナルデータベース管理システムです。 これは、データベースと通信するために明示的に設計されています。 ANSI(American National Standards Institute)は、SQLがリレーショナルデータベース管理システム(RDBMS)の標準クエリ言語であると主張しています。

これは、RDBMSを維持するためだけでなく、さまざまなタイプのデータに対して他のさまざまなデータ操作操作を実行するためにも使用されます。 たとえば、SQLは、データベースの作成、データベースでのテーブルの作成、データベースからのデータの取得、データベースでのテーブルの更新、クエリの実行などに使用されます。

続きを読む:データサイエンスのためのSQL:なぜSQLなのか

2.データベースを定義します。

データベースとは、データへのアクセス、保存、取得、および管理を容易にするために、コンピューターに整理された形式で保存される構造化された形式のデータを指します。 データベースは基本的に、スキーマ、テーブル、クエリ、ビューなどのコレクションです。

3. RDBMSはDBMSとどのように異なりますか?

RDBMSまたはリレーショナルデータベース管理システムは、RDBMSがデータをテーブルのコレクションとして格納し、テーブルの共通フィールド間の関係を定義できるという意味でDBMSとは異なりますが、DBMSでは定義できません。

データをテーブル形式で保存するRDBMSとは異なり、DBMSは、データをファイルシステムに保存するのではなく、データベース内に保存するファイルマネージャーのように機能します。

RDBMSは、MySQL、Microsoft SQL Server、Oracle、IBM DB2、AmazonRedshiftなどの多くの最新のデータベース管理システムの基盤です。

4.制約を定義します。

SQLでは、制約を使用して、テーブルのデータ型の制限を指定したり、データベース内のテーブルのデータに関するルールを宣言したりします。 制約は、テーブルの作成中またはテーブルの作成後にALTER TABLEコマンドを使用して、SQLテーブルの単一フィールドと複数フィールドの両方に指定できます。

SQLの制約のいくつかは次のとおりです。

  • NULLではありません
  • 小切手
  • ディフォルト
  • 個性的
  • 主キー
  • 外部キー

5.定義–主キー、一意キー、および外部キー。

主キーは、行を一意に指定するのに役立つフィールドの組み合わせです。 主キーには一意の値が必要です。また、暗黙のNOT NULL制約が含まれているため、主キーにNULL値を設定することはできません。

列のすべての値が異なることを保証するために、一意のキー制約が使用されます。 データベース内の各レコードを一意に識別するのに役立ちます。 主キー(テーブルごとに定義される主キーは1つだけ)とは異なり、テーブルごとに複数の一意の制約を定義できます。

外部キーは、別のテーブルの主キーを参照するために使用できる1つのテーブル内の単一またはコレクションのフィールドで構成されます。 このキーは、2つのテーブル間の関係で参照整合性を維持するのに役立ちます。 外部キー制約を含むテーブルは子テーブルと呼ばれますが、候補キーを含むテーブルは親テーブルとしてラベル付けされます。

6.結合を定義します。 参加の種類は何ですか?

結合は、2つ以上のテーブルのレコードまたは行を、それらの間の関連する列に基づいて結合するために設計されたSQL句です。 結合は、テーブルのフィールド間の関係に基づいて、より多くのテーブルからデータをクエリするために使用されるキーワードのように機能します。 これらは主にデータの取得に使用されます。 ただし、データの取得は、テーブル間の関係に大きく依存します。

結合には次の4つのタイプがあります。

  • 内部結合–これは、テーブル間で少なくとも1つの一致する値を含むレコードまたは行を返すために使用されます。
  • 右結合–これは、テーブルと右側のテーブルにある他のすべての行との間で一般的に一致する行を返します。 簡単に言うと、右側の結合は、左側のテーブルに使用可能な一致がないという事実に関係なく、右側のテーブルからすべての行を返します。
  • 左結合–右結合と同様に、左結合は、右側のテーブルに一致するものがない場合でも、テーブルと左側のテーブルにあるすべての行に共通の行を返します。
  • 完全結合–この結合は、単一のテーブルが一致する行で構成されている場合に行を返します。 つまり、右結合と左結合の両方の結果を含むセットを作成します。 したがって、結果セットには、左側のテーブルと右側のテーブルの両方のすべての行が含まれます。

7.インデックスとは何ですか? さまざまなタイプのインデックスに名前を付けます。

SQLでは、インデックスは、テーブルからレコードをより高速に取得できるようにするパフォーマンス調整方法です。 これらはデータベースでの検索プロセスを高速化します。インデックスは各値のエントリを作成し、それによってデータの取得を高速化します。

インデックスは、データのサブセットのみをスキミングして正しい一致を見つけることにより、一部の列と一致する行を見つけるために使用されます。

インデックスには次の3つのタイプがあります。

  • 一意のインデックス–このインデックスは、テーブル内の2行のデータが同一のキー値を持たないことを保証し、それによってデータの整合性を維持します。 主キーを定義するときに、一意のインデックスを自動的に適用できます。
  • クラスタ化されたインデックス–このインデックスは、テーブルの物理的な順序を並べ替えたり並べ替えたりして、キー値に基づいて検索するのに役立ちます。 このインデックスでは、データベースに含まれる行の順序は、インデックスの行の順序に対応しています。 これが、テーブルが1つのクラスター化インデックスのみを持つことができる理由です。
  • 非クラスター化インデックス–このインデックスは、データの論理的な順序を維持します。 これは、元のテーブルを参照する別のエンティティをテーブル内に作成するために使用されます。 テーブルには、複数の非クラスター化インデックスを含めることができます。

8. AUTO_INCREMENTとは何ですか?

AUTO_INCREMENTは、新しいレコードがテーブルに追加または入力されるたびに一意の番号を自動的に生成するために使用されます。 テーブルには主キーが1つしかないため、この主キーはAUTO_INCREMENTフィールドとして追加され、新しいレコードが追加されるたびにフィールドをインクリメントするのに役立ちます。

デフォルトでは、AUTO-INCREMENT値は1から始まり、新しいレコードが挿入されるたびに1ずつ増加します。

9.クエリとサブクエリを定義します。

クエリは、データベーステーブルまたは複数のテーブルからデータを要求または取得するために記述されたコードです。 クエリは、アクションクエリまたは選択クエリにすることができます。

一方、サブクエリは、別のクエリ内のクエリです。 内部クエリまたはネストされたクエリとも呼ばれます。 サブクエリは、メインクエリでクエリする必要のあるデータを制限または拡張するために使用されます。これにより、メインクエリの結果が制限または拡張されます。 通常、サブクエリが最初に実行され、結果がメインクエリに渡されます。

サブクエリには次の2つのタイプがあります。

  • 相関サブクエリ–このサブクエリは独立したクエリではありません。 ただし、メインクエリのFROMにリストされているテーブルの列を参照することはできます。
  • 非相関サブクエリ–これは独立したクエリであり、その出力はメインクエリに置き換えられます。

10.トリガーを定義します。

トリガーは、INSERT、DELETE、UPDATE(DML)ステートメントなどのイベントが発生したときに自動的に実行される保存されたコードまたはプログラムです。 これらは、データ定義ステートメント(DDL)への応答として実行することもでき、SERVER ERROR、LOGONなどのデータベース操作はデータベースの整合性を維持するのに役立ちます。

11.トランザクションにおけるACIDプロパティの役割を説明します。

トランザクションの前後の両方でデータベースの整合性を維持するために、ACIDプロパティに従います。

  • Atomicity –これはトランザクションを完了する必要があることを意味します。 途中で放置しないでください。 トランザクションが失敗した場合、トランザクション全体が失敗し、データベースは変更されません。
  • 一貫性–これは、データベースに入力されたデータを検証することにより、整合性制約を維持しようとします。
  • 分離–​​このプロパティは、同時実行性を制御することを目的としています。
  • 耐久性–このプロパティにより、トランザクションが実行されると、発生する可能性のある課題(たとえば、電力損失、内部エラーなど)が発生してもコミットされたままになります。

12.DELETEコマンドとTRUNCATEコマンドを区別します。

DELETEコマンドとTRUNCATEコマンドの主な違いは次のとおりです。

  • DELETEコマンドを使用して1つ以上の既存のテーブルを削除または削除する一方で、TRUNCATEコマンドはテーブル内からすべてのデータを削除します。
  • DELETEはDMLコマンドですが、TRUNCATEはDDLコマンドです。
  • DELETEを使用するとトリガーを実行できますが、TRUNCATEを実行してトリガーすることはできません。
  • 外部キー制約がテーブルを参照している場合、TRUNCATEコマンドは機能しません。 このような場合は、DELETEコマンドを使用する必要があります。

13.SQLのさまざまなサブセットに名前を付けます。

SQLのサブセットは次のとおりです。

  • DDL(データ定義言語)–この言語を使用すると、CREATE、ALTER、DELETEオブジェクトなどのSQLコマンドを含む、データベースに対する多数の操作を実行できます。
  • DML(データ操作言語)–この言語を使用すると、INSERT、UPDATE、DELETEなどのコマンドを使用してデータベース内のデータにアクセスして操作できます。
  • DCL(データ制御言語)–この言語を使用すると、GRANTやREVOKEなどのコマンドを使用してデータベースへのアクセスを制御できます。

読む: 2020年のトップ9データサイエンスツール

14.データの整合性について説明します。

データの整合性は、データベースに格納されているデータの正確性、一貫性、および信頼性を定義します。 さらに、データがデータベースまたはアプリケーションに挿入されるときに、データにビジネスルールを適用するための整合性制約を定義するのに役立ちます。

データの整合性には次の4種類があります。

  • 行の整合性
  • カラムの完全性
  • 参照整合性
  • ユーザー定義の整合性

15.ユーザー定義関数とは何ですか? ユーザー定義関数のタイプに名前を付けます。

ユーザー定義関数は、必要に応じて特定のロジックを使用するように特別に作成された関数です。 これらの関数により、同じロジックを複数回記述する必要がなくなります。 代わりに、必要に応じていつでもユーザー定義関数を呼び出したり実行したりできます。

ユーザー定義関数には次の3つのタイプがあります。

  • スカラー関数。
  • インラインテーブル値関数。
  • マルチステートメント値関数。

16.照合を定義します。 さまざまなタイプの照合感度に名前を付けます。

照合とは、文字データの並べ替えと比較の方法を決定するルールのコレクションを指します。 文字データをソートするための正しい文字シーケンスを定義するほかに、大文字と小文字の区別、アクセント記号、かな文字タイプ、および文字幅を指定するオプションが組み込まれています。

さまざまなタイプの照合感度には、次のものがあります。

  • 大文字と小文字の区別–文字「A」と「a」の扱いは異なります。
  • アクセント感度–文字「a」と「 a」は異なる方法で処理されます。
  • かなの感度–これはひらがなやカタカナのような日本の仮名を異なる方法で扱います。
  • 幅の感度–これは、シングルバイト(半値幅)文字とダブルバイト(全角)文字を異なる方法で処理します。

17.ストアドプロシージャとはどういう意味ですか?

ストアドプロシージャは、RDBMSにアクセスするアプリケーションに使用されるサブルーチン(SQLコード)です。 モジュラープログラミングの概念をサポートしています。つまり、ストアドプロシージャを一度作成して保存し、必要に応じて複数回呼び出すことができます。

これらの手順は、データベースデータディクショナリに保存されます。 ストアドプロシージャの利点は、クエリの実行を高速化できることです。 これにより、ネットワークトラフィックが減少するだけでなく、データのセキュリティも向上します。

もう1つの利点は、データに直接アクセスできないユーザーがストアドプロシージャを使用してアクセスできるため、ストアドプロシージャに追加機能が付属していることです。

ただし、これにも欠点があります。ストアドプロシージャはデータベースでのみ実行でき、通常はデータベースサーバーでより多くのメモリを占有します。

18.ビューとテーブルを区別します。

ビューとテーブルの違いは次のとおりです。

  • ビューはデータベースから抽出された仮想テーブルを参照しますが、テーブルは限られた数の列と無限の数の行を含む構造化されたエンティティを参照します。
  • ビューはそれ自体ではデータを保持できませんが、テーブルにはデータが含まれ、データベースに格納されます。
  • ビューを使用すると、いくつかの個別のテーブルに含まれる特定の情報を照会できます。 ただし、テーブルには、特性化されたオブジェクトのケースとともに基本的なクライアント情報が保持されます。

19.一時テーブルを定義します。 どうすれば作成できますか?

一時テーブルは、中間結果を保存および処理できるようにするテーブルです。 これらのテーブルは、使用されなくなったときに自動的に削除できます。 一時テーブルは、一時データを保存する必要がある状況で役立ちます。

一時テーブルを作成するための構文は次のとおりです。

CREATE TABLE #table_name();

次のクエリは一時テーブルを作成します。

テーブル#book(b_id int、b_cost int)を作成します

次に、レコードを挿入します。

#bookに挿入values(1,100)

#bookに挿入values(2,232)

#bookから*を選択

世界のトップ大学からオンラインでソフトウェア開発コース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

まとめ

このSQLインタビューの質問と回答のガイドが、SQLナレッジベースの強化と拡張に役立つことを願っています。

SQLやフルスタック開発について詳しく知りたい場合は、フルスタックソフトウェア開発におけるIIIT-B&upGradのエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンを提供します。ワークショップ、業界の専門家とのメンターシップ、業界のメンターとの1対1、400時間以上の学習とトップ企業との仕事の支援。

フルスタックソフトウェア開発におけるPGディプロマ

フルスタック開発のエグゼクティブPGプログラムに今すぐ申し込む