50 年の SQL インタビューの質問と回答 2025 件
新人向けの SQL 面接の質問
1. DBMSとは何ですか?
データベース管理システム (DBMS) は、データベースの作成、保守、使用を制御するプログラムです。 DBMS は、データをファイル システムに保存するのではなく、データベース内のデータを管理するファイル マネージャーと呼ぶことができます。
👉 無料 PDF ダウンロード: SQL インタビューの質問と回答 >>
2. RDBMSとは何ですか?
RDBMS はリレーショナル データベース管理システムの略です。RDBMS は、テーブルの列間の共通フィールドによって関連付けられたテーブルのコレクションにデータを格納します。また、テーブルに格納されたデータを操作するためのリレーショナル演算子も提供します。
例: SQL サーバー。
3. SQLとは何ですか?
SQL は Structured Query Language の略で、データベースとの通信に使用されます。 これは、データベースからのデータの取得、更新、挿入、削除などのタスクを実行するために使用される標準言語です。
スタンダード SQLコマンド は選択します。
4. データベースとは何ですか?
データベースは、データへのアクセス、保存、取得、管理を容易にするために組織化された形式のデータに他なりません。 これは、さまざまな方法でアクセスできるデータの構造化形式としても知られています。
例: 学校管理データベース、銀行管理データベース。
5. テーブルとフィールドとは何ですか?
テーブルは、列と行を含むモデル内に編成されたデータのセットです。 列は垂直方向、行は水平方向に分類できます。 テーブルにはフィールドと呼ばれる指定された数の列がありますが、レコードと呼ばれる行は任意の数を持つことができます。
例:。
表: 従業員。
フィールド: 従業員 ID、従業員名、生年月日。
データ: 201456、デイビッド、11 年 15 月 1960 日。
6.主キーとは何ですか?
A 主キー 行を一意に指定するフィールドの組み合わせです。 これは特別な種類の一意のキーであり、暗黙的な NOT NULL 制約があります。 つまり、主キーの値を NULL にすることはできません。
7. 一意のキーとは何ですか?
一意のキー制約により、データベース内の各レコードが一意に識別されます。 これにより、列または列のセットに一意性が与えられます。
主キー制約には、自動一意制約が定義されています。 ただし、一意のキーの場合はそうではありません。
テーブルごとに多数の一意制約を定義できますが、テーブルごとに定義される主キー制約は XNUMX つだけです。
8.外部キーとは何ですか?
外部キーは、別のテーブルの主キーに関連付けることができる XNUMX つのテーブルです。 外部キーを別のテーブルの主キーで参照することにより、XNUMX つのテーブル間にリレーションシップを作成する必要があります。
9. 結合とは何ですか?
これは、テーブルのフィールド間の関係に基づいて、より多くのテーブルからデータをクエリするために使用されるキーワードです。 JOIN を使用する場合、キーは重要な役割を果たします。
10. 結合の種類とそれぞれの説明は何ですか?
全 さまざまな種類の結合 これはデータの取得に使用でき、テーブル間の関係に応じて異なります。
- 内部結合。
内部結合は、テーブル間に一致する行が少なくとも XNUMX つある場合に行を返します。
- 右結合。
右結合は、テーブルと右側のテーブルのすべての行に共通する行を返します。 単純に、左側のテーブルに一致するものがない場合でも、右側のテーブルからすべての行を返します。
- 左結合。
左結合は、テーブルと左側のテーブルのすべての行に共通する行を返します。 単純に、右側のテーブルに一致するものがない場合でも、左側のテーブルからすべての行を返します。
- 完全参加。
完全結合は、テーブルのいずれかに一致する行がある場合に行を返します。 つまり、左側のテーブルのすべての行と右側のテーブルのすべての行が返されます。
3 年の経験に対する SQL 面接の質問
11.正規化とは何ですか?
正規化は、データベースのフィールドとテーブルを整理することにより、冗長性と依存性を最小限に抑えるプロセスです。 正規化の主な目的は、単一のテーブル内に作成できるフィールドを追加、削除、または変更することです。
12. 非正規化とは何ですか?
非正規化は、データベースの高位正規形から低位正規形へのデータにアクセスするために使用される手法です。 これは、関連するテーブルからデータを組み込むことによってテーブルに冗長性を導入するプロセスでもあります。
13. さまざまな正規化とは何ですか?
データベースの正規化 ケーススタディを使えば簡単に理解できます。 通常形態は6つの形態に分類でき、以下に説明します-。
- 第一正規形 (1NF):。
これにより、重複する列がすべてテーブルから削除されます。 関連データのテーブルの作成と一意の列の識別。
- 第 2 正規形 (XNUMXNF):。
第一正規形のすべての要件を満たします。 データのサブセットを別のテーブルに配置し、主キーを使用してテーブル間のリレーションシップを作成します。
- 第 3 正規形 (XNUMXNF):。
これは 2NF のすべての要件を満たす必要があります。 主キー制約に依存しない列を削除します。
- 第 4 正規形 (XNUMXNF):。
関連するエンティティを記述する 4 つ以上の独立した多値データがデータベース テーブル インスタンスに含まれていない場合、それは XNUMX になります。th ノーマルフォーム。
- 第 5 正規形 (XNUMXNF):。
テーブルが第 5 正規形になるのは、テーブルが 4NF である場合のみであり、データを損失せずに任意の数の小さなテーブルに分解することはできません。
- 第 6 正規形 (XNUMXNF):。
第 6 正規形はまだ標準化されていませんが、データベースの専門家によってしばらくの間議論されています。 近い将来、第 6 正規形の明確で標準化された定義が得られることを願っています…
14. ビューとは何ですか?
ビューは、テーブルに含まれるデータのサブセットで構成される仮想テーブルです。 ビューは事実上存在しないため、保存に必要なスペースが少なくなります。 ビューには XNUMX つ以上のテーブルのデータを結合できますが、それは関係に応じて異なります。
15. インデックスとは何ですか?
インデックスは、テーブルからレコードをより速く取得できるようにするパフォーマンス チューニング方法です。インデックスは各値のエントリを作成し、データの取得を高速化します。
16. インデックスにはどのような種類がありますか?
インデックスには XNUMX 種類あります。
- 単一のインデックス。
このインデックス付けでは、列が一意のインデックス付けされている場合、フィールドに重複した値を持つことができません。 主キーを定義すると、一意のインデックスが自動的に適用されます。
- Cluster編インデックス。
このタイプのインデックスは、キー値に基づいてテーブルと検索の物理的な順序を並べ替えます。各テーブルには、クラスター化インデックスを 1 つだけ設定できます。
- NonCluster編インデックス。
NonClustered インデックスはテーブルの物理的な順序を変更せず、データの論理的な順序を維持します。各テーブルには 999 個の非クラスター化インデックスを設定できます。
17. カーソルとは何ですか?
データベース カーソルは、テーブル内の行またはレコードの走査を可能にするコントロールです。 これは、行のセット内の XNUMX つの行へのポインタとして見ることができます。 カーソルは、データベース レコードの検索、追加、削除などの移動に非常に役立ちます。
18. 関係とは何ですか?
データベース関係は、データベース内のテーブル間の接続として定義されます。 さまざまなデータベース関係があり、次のとおりです。
- XNUMX 対 XNUMX の関係。
- XNUMX 対多の関係。
- 多対 XNUMX の関係。
- 自己参照関係。
19. クエリとは何ですか?
DB クエリは、データベースから情報を取得するために作成されたコードです。 クエリは、結果セットの期待と一致するように設計できます。 簡単に言えば、データベースへの質問です。
20. サブクエリとは何ですか?
サブクエリは、別のクエリ内のクエリです。 外側のクエリをメインクエリ、内側のクエリをサブクエリと呼びます。 サブクエリは常に最初に実行され、サブクエリの結果はメイン クエリに渡されます。
サブクエリ構文を見てみましょう –
MyFlix ビデオ ライブラリに対する一般的な顧客の不満は、映画タイトルの数が少ないことです。 管理者は、タイトル数が最も少ないカテゴリの映画を購入したいと考えています。
次のようなクエリを使用できます
SELECT category_name FROM categories WHERE category_id =( SELECT MIN(category_id) from movies);
5 年の経験に対する SQL 面接の質問
21. サブクエリにはどのような種類がありますか?
サブクエリには、相関クエリと非相関クエリの XNUMX 種類があります。
相関サブクエリは独立したクエリとみなされませんが、メイン クエリのリストの FROM にリストされているテーブル内の列を参照できます。
非相関サブクエリは独立したクエリとみなすことができ、サブクエリの出力はメイン クエリで置き換えられます。
22.ストアドプロシージャとは何ですか?
ストアド プロシージャは、データベース システムにアクセスするための多数の SQL ステートメントで構成される関数です。 複数の SQL ステートメントがストアド プロシージャに統合され、必要なときにいつでもどこでも実行されます。
23.トリガーとは何ですか?
DB トリガーは、データベース内のテーブルまたはビュー上の何らかのイベントに応答して自動的に実行されるコードまたはプログラムです。 主に、トリガーはデータベースの整合性を維持するのに役立ちます。
例: 新しい生徒が生徒データベースに追加されると、試験、スコア、出席テーブルなどの関連テーブルに新しいレコードが作成される必要があります。
24. DELETE コマンドと TRUNCATE コマンドの違いは何ですか?
DELETE コマンドはテーブルから行を削除するために使用され、WHERE 句はパラメータの条件セットに使用できます。 delete ステートメントの後にコミットとロールバックを実行できます。
TRUNCATE はテーブルからすべての行を削除します。切り捨て操作はロールバックできません。
25. ローカル変数とグローバル変数、およびそれらの違いとは何ですか?
ローカル変数は、関数内で使用または存在できる変数です。 これらの変数は他の関数には認識されず、参照したり使用したりすることはできません。 変数は、その関数が呼び出されるたびに作成できます。
グローバル変数は、プログラム全体で使用または存在できる変数です。 global で宣言された同じ変数を関数で使用することはできません。 グローバル変数は、その関数が呼び出されるたびに作成されるわけではありません。
26.制約とは何ですか?
制約を使用して、テーブルのデータ型の制限を指定できます。 制約は、テーブル ステートメントの作成または変更時に指定できます。 制約のサンプルは次のとおりです。
- NULL ではありません。
- 小切手。
- デフォルト。
- ユニークです。
- 主キー。
- 外部キー。
27. データとは何か Integrity?
Rescale データ Integrity データベースに保存されるデータの正確性と一貫性を定義します。また、アプリケーションまたはデータベースに入力されるデータに対してビジネス ルールを適用するための整合性制約を定義することもできます。
28. 自動インクリメントとは何ですか?
自動インクリメント キーワードを使用すると、新しいレコードがテーブルに挿入されるときに生成される一意の番号を作成できます。 AUTO INCREMENT キーワードは以下で使用できます。 Oracle および IDENTITY キーワードは SQL SERVER で使用できます。
ほとんどの場合、このキーワードは PRIMARY KEY が使用されるときはいつでも使用できます。
29. 違いは何ですか? Cluster と非Cluster 索引?
Clusterクラスター化インデックスは、レコードの保存方法を変更することで、データベースからデータを簡単に取得するために使用されます。データベースは、クラスター化インデックスに設定された列で行を並べ替えます。
非クラスター化インデックスは、格納方法を変更せず、テーブル内に完全に別のオブジェクトを作成します。検索後に元のテーブル行を参照します。
30. データウェアハウスとは何ですか?
Datawarehouse は、複数の情報ソースからのデータの中央リポジトリです。 これらのデータは統合、変換され、マイニングやオンライン処理に利用できるようになります。 ウェアハウス データには、データ マートと呼ばれるデータのサブセットがあります。
31. 自己結合とは何ですか?
Self-join は、それ自身との比較に使用されるクエリとして設定されます。 これは、ある列の値を、同じテーブル内の同じ列の他の値と比較するために使用されます。 ALIAS ES は、同じテーブルの比較に使用できます。
32. クロス結合とは何ですか?
クロス結合は、最初のテーブルの行数と XNUMX 番目のテーブルの行数を掛けたデカルト積として定義されます。 クロス結合で WHERE 句が使用されているとすると、クエリは INNER JOIN のように機能します。
33. ユーザー定義関数とは何ですか?
ユーザー定義関数は、必要なときにいつでもそのロジックを使用するために作成された関数です。 同じロジックを何度も記述する必要はありません。 代わりに、必要に応じていつでも関数を呼び出したり実行したりできます。
34. ユーザー定義関数の種類とは何ですか?
ユーザー定義関数は XNUMX 種類あります。
- スカラー関数。
- インラインテーブル値関数。
- 複数のステートメント値の関数。
スカラーはユニットを返します。バリアントは return 句を定義します。 他の XNUMX つのタイプはテーブルを戻り値として返します。
35. 照合とは何ですか?
照合順序は、文字データを並べ替えて比較する方法を決定する一連のルールとして定義されます。 これは、A と他の言語の文字を比較するために使用でき、文字の幅にも依存します。
ASCII 値を使用して、これらの文字データを比較できます。
36. さまざまなタイプの照合感度とは何ですか?
以下に、照合の感度のさまざまなタイプを示します。
- 大文字と小文字の区別 – A と a と B と b。
- アクセントの感度。
- かなの感度 – 日本語のかな文字。
- 幅の感度 - 1 バイト文字と 2 バイト文字。
37. ストアドプロシージャの長所と短所?
ストアド プロシージャはモジュラー プログラミングとして使用できます。つまり、一度作成し、必要なときに何度も保存して呼び出すことができます。 これにより、複数のクエリを実行する代わりに、より高速な実行がサポートされます。 これにより、ネットワーク トラフィックが軽減され、データのセキュリティが強化されます。
欠点は、データベース内でのみ実行可能であり、データベース サーバーでより多くのメモリを使用することです。
38. オンライン トランザクション処理 (OLTP) とは何ですか?
オンライン トランザクション処理 (OLTP) は、データ入力、データ取得、およびデータ処理に使用できるトランザクション ベースのアプリケーションを管理します。 OLTP により、データ管理がシンプルかつ効率的になります。 OLAP システムとは異なり、OLTP システムの目標はリアルタイム トランザクションを提供することです。
例 – 日常的な銀行取引。
39. 条項とは何ですか?
SQL 句は、クエリに条件を指定することで結果セットを制限するように定義されています。 これにより、通常、レコードのセット全体から一部の行がフィルターされます。
例 – WHERE 条件を含むクエリ
HAVING 条件を持つクエリ。
40. 再帰ストアド プロシージャとは何ですか?
何らかの境界条件に達するまで単独で呼び出すストアド プロシージャ。 この再帰的な関数またはプロシージャは、プログラマが同じコードのセットを何度でも使用するのに役立ちます。
10年以上の経験を持つSQL面接の質問
41. Union、minus、Interact コマンドとは何ですか?
UNION 演算子は 2 つのテーブルの結果を結合するために使用され、テーブルから重複する行を削除します。
MINUS 演算子は、最初のクエリからの行を返すが、2 番目のクエリからの行は返さない場合に使用します。最初のクエリと 2 番目のクエリの一致するレコードと、最初のクエリからのその他の行が結果セットとして表示されます。
INTERSECT 演算子は、両方のクエリによって返された行を返すために使用されます。
42. ALIASコマンドとは何ですか?
テーブルまたはカラムにエイリアス名を付けることができます。 このエイリアス名は以下で参照できます。 WHERE句 テーブルまたは列を識別します。
例-。
Select st.StudentID, Ex.Result from student st, Exam as Ex where st.studentID = Ex. StudentID
ここで、st は Student テーブルのエイリアス名を指し、Ex は Exam テーブルのエイリアス名を指します。
43. TRUNCATE ステートメントと DROP ステートメントの違いは何ですか?
TRUNCATE はテーブルからすべての行を削除するため、ロールバックできません。DROP コマンドはデータベースからテーブルを削除するため、操作をロールバックできません。
44. 集計関数とスカラー関数とは何ですか?
集計関数は、数学的計算を評価し、単一の値を返すために使用されます。 これはテーブル内の列から計算できます。 スカラー関数は、入力値に基づいて単一の値を返します。
例 -。
集計 – max()、count – 数値に関して計算されます。
スカラー – UCASE()、NOW() – 文字列に関して計算されます。
45. 既存のテーブルから空のテーブルを作成するにはどうすればよいですか?
例は - になります。
Select * into studentcopy from student where 1=2
ここでは、行をコピーせずに、student テーブルを同じ構造を持つ別のテーブルにコピーしています。
46. XNUMX つのテーブルから共通のレコードを取得するにはどうすればよいですか?
共通レコードの結果セットは、- によって取得できます。
Select studentID from student INTERSECT Select StudentID from Exam
47. テーブルから代替レコードをフェッチするにはどうすればよいですか?
奇数行番号と偶数行番号の両方のレコードを取得できます。
偶数を表示する場合。
Select studentId from (Select rowno, studentId from student) where mod(rowno,2)=0
奇数を表示します。
Select studentId from (Select rowno, studentId from student) where mod(rowno,2)=1
from (学生から rowno、studentId を選択) where mod(rowno,2)=1.[/sql]
48. テーブルから一意のレコードを選択するにはどうすればよいですか?
DISTINCT キーワードを使用して、テーブルから一意のレコードを選択します。
Select DISTINCT StudentID, StudentName from Student.
49. 文字列の最初の 5 文字を取得するために使用されるコマンドは何ですか?
文字列 - の最初の 5 文字を取得する方法はたくさんあります。
Select SUBSTRING(StudentName,1,5) as studentname from student
Select LEFT(Studentname,5) as studentname from student
50. パターンマッチングのクエリで使用される演算子はどれですか?
LIKE 演算子はパターン マッチングに使用され、- として使用できます。
- % – XNUMX 個以上の文字と一致します。
- _(アンダースコア) – 正確に XNUMX 文字と一致します。
例 -。
Select * from Student where studentname like 'a%'
Select * from Student where studentname like 'ami_'
これらの面接の質問は、あなたの活力(口頭)にも役立ちます