top 90 sql interview questions
90の最も人気のあるSQLインタビューの質問と回答:
これらは、経験豊富な候補者だけでなく、初心者にとっても最も一般的で役立つSQL面接の質問です。この記事では、SQLの高度な概念の基本について説明します。
インタビューに参加する前に、SQLの主要な概念の簡単な改訂について、これらの質問を参照してください。
最高のSQLインタビューの質問
はじめましょう。
Q#1)SQLとは何ですか?
回答: 構造化照会言語SQLは、ソフトウェアアプリケーションをサポートするためにデータベースを作成してアクセスするために使用されるデータベースツールです。
Q#2)SQLのテーブルとは何ですか?
回答: このテーブルは、単一のビューでのレコードとその情報のコレクションです。
Q#3)SQLでサポートされているさまざまなタイプのステートメントは何ですか?
回答:
SQLステートメントには次の3つのタイプがあります。
a)DDL(データ定義言語): これは、テーブルなどのデータベース構造を定義するために使用されます。これには、CREATE、ALTER、DROPなどの3つのステートメントが含まれます。
= >>もお読みください MySQLテーブル作成チュートリアル
DDLコマンドの一部を以下に示します。
CREATE :テーブルの作成に使用されます。
CREATE TABLE table_name column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size),
年齢: ALTERテーブルは、データベース内の既存のテーブルオブジェクトを変更するために使用されます。
ALTER TABLE table_name ADD column_name datatype
または
ALTER TABLE table_name DROP COLUMN column_name
b)DML(データ操作言語): これらのステートメントは、レコード内のデータを操作するために使用されます。一般的に使用されるDMLステートメントは、INSERT、UPDATE、およびDELETEです。
SELECTステートメントは部分的なDMLステートメントとして使用され、テーブル内のすべてまたは関連するレコードを選択するために使用されます。
c)DCL(データ制御言語): これらのステートメントは、GRANTやREVOKEデータベースアクセス許可などの特権を特定のユーザーに設定するために使用されます 。
Q#4)DISTINCTステートメントをどのように使用しますか?その用途は何ですか?
回答: DISTINCTステートメントはSELECTステートメントとともに使用されます。レコードに重複する値が含まれている場合は、DISTINCTステートメントを使用して、重複するレコードから異なる値を選択します。
構文:
SELECT DISTINCT column_name(s) FROM table_name;
Q#5)SQLで使用されるさまざまな句は何ですか?
回答:
WHERE句: この句は、条件を定義し、指定された条件を満たすレコードのみを抽出して表示するために使用されます。
構文:
SELECT column_name(s) FROM table_name WHERE condition;
GROUP BY句: SELECTステートメントとともに使用され、指定された値を使用して実行されたクエリの結果をグループ化します。値をテーブルの列名と照合し、それに応じて最終結果をグループ化します。
さらに読む=> MySQL GroupByチュートリアル
構文:
SELECT column_name(s) FROM table_name GROUP BY column_name;
HAVING句: この句は、GROUPBY句と組み合わせて使用されます。結果の各グループまたは結果全体に単一のグループとして適用されます。 WHERE句とよく似ていますが、唯一の違いはGROUPBY句なしでは使用できないことです。
構文:
SELECT column_name(s) FROM table_name GROUP BY column_name HAVING condition;
ORDER BY句: この句は、昇順(ASC)または降順(DESC)のいずれかでクエリ出力の順序を定義するために使用されます。昇順(ASC)がデフォルトとして設定されていますが、降順(DESC)は明示的に設定されています。
構文:
SELECT column_name(s) FROM table_name WHERE condition ORDER BY column_name ASC|DESC;
USING句: USING句は、SQLJOINの操作中に使用されます。これは、テーブルが結合されるときに列に基づいて同等性をチェックするために使用されます。 JOINのON句の代わりに使用できます。
構文:
SELECT column_name(s) FROM table_name JOIN table_name USING (column_name);
Q#6)なぜSQL制約を使用するのですか? SQLでデータベースを作成するときに使用できる制約はどれですか?
回答: 制約は、テーブル内のすべてのレコードのルールを設定するために使用されます。制約に違反した場合、それを引き起こしたアクションを中止できます。
制約は、CREATE TABLEステートメントを使用してデータベース自体を作成するとき、またはALTERTABLEステートメントを使用してテーブルを1回作成した後に定義されます。
SQLで使用される主な制約は5つあります。
- NULL以外: これは、列に何らかの値が必要であり、NULLのままにできないことを示しています。
- ユニーク: この制約は、各行と列に一意の値があり、他の行または列で値が繰り返されないようにするために使用されます。
- 主キー: この制約は、一意のIDで特定のレコードを識別するために、1つまたは複数の列の組み合わせなどのNOTNULLおよびUNIQUE制約に関連して使用されます。
- 外部キー: これは、テーブル内のデータの参照整合性を保証するために使用されます。 PRIMARY KEYを使用して、あるテーブルの値を別のテーブルの値と照合します。
- 小切手: 列の値が指定された条件を満たすかどうかを確認します。
Q#7)SQLで使用されるさまざまなJOINSは何ですか?
回答:
キュウリはどのような種類のテストをカバーするのに役立ちますか?
SQLデータベースの複数のテーブルで作業する場合、4つの主要なタイプの結合が使用されます。
内部結合: SIMPLE JOINとも呼ばれ、一致する列が少なくとも1つある場合に、両方のテーブルからすべての行を返します。
構文:
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON column_name1=column_name2;
例えば、
この例では、テーブルがあります 社員 次のデータを使用します。
2番目のテーブルの名前は 接合。
次のSQLステートメントを入力します。
SELECT Employee.Emp_id, Joining.Joining_Date FROM Employee INNER JOIN Joining ON Employee.Emp_id = Joining.Emp_id ORDER BY Employee.Emp_id;
4つのレコードが選択されます。 結果は次のとおりです。
社員 そして 注文 テーブルには一致するものがあります 顧客ID 値。
LEFT JOIN(LEFT OUTER JOIN): この結合は、LEFTテーブルからすべての行を返し、RIGHTテーブルから一致する行を返します。 。
構文:
SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON column_name1=column_name2;
例えば、
この例では、テーブルがあります 社員 次のデータを使用します。
2番目のテーブルの名前は 接合。
次のSQLステートメントを入力します。
SELECT Employee.Emp_id, Joining.Joining_Date FROM Employee LEFT OUTER JOIN Joining ON Employee.Emp_id = Joining.Emp_id ORDER BY Employee.Emp_id;
4つのレコードが選択されます。 次の結果が表示されます。
右結合(右外部結合): この結合により、RIGHTテーブルからすべての行が返され、LEFTテーブルから一致する行が返されます。 。
構文:
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON column_name1=column_name2;
例えば、
この例では、テーブルがあります 社員 次のデータを使用します。
2番目のテーブルの名前は 接合。
次のSQLステートメントを入力します。
SELECT Employee.Emp_id, Joining.Joining_Date FROM Employee RIGHT JOIN Joining ON Employee.Emp_id = Joining.Emp_id ORDER BY Employee.Emp_id;
出力:
Emp_id | Joining_Date |
---|---|
E0012 | 2016/04/18 |
E0013 | 2016/04/19 |
E0014 | 2016/05/01 |
FULL JOIN(FULL OUTER JOIN): この結合は、RIGHTテーブルまたはLEFTテーブルのいずれかに一致する場合にすべての結果を返します 。
構文:
SELECT column_name(s) FROM table_name1 FULL OUTER JOIN table_name2 ON column_name1=column_name2;
例えば、
この例では、テーブルがあります 社員 次のデータを使用します。
2番目のテーブルの名前は 接合。
次のSQLステートメントを入力します。
SELECT Employee.Emp_id, Joining.Joining_Date FROM Employee FULL OUTER JOIN Joining ON Employee.Emp_id = Joining.Emp_id ORDER BY Employee.Emp_id;
8つのレコードが選択されます。 これらはあなたが見るべき結果です。
に lso読み取り=> MySQL参加チュートリアル
Q#8)トランザクションとその制御とは何ですか?
回答: トランザクションは、特定の結果を得るために論理的な方法でデータベースに対して実行されるシーケンスタスクとして定義できます。データベースで実行されるレコードの作成、更新、削除などの操作は、トランザクションから行われます。
簡単に言うと、トランザクションとは、データベースレコードに対して実行されるSQLクエリのグループを意味します。
次のような4つのトランザクション制御があります
- コミット :トランザクションを通じて行われたすべての変更を保存するために使用されます。
- ロールバック :トランザクションをロールバックするために使用されます。トランザクションによって行われたすべての変更は元に戻され、データベースは以前と同じままになります。
- トランザクションの設定 :トランザクションの名前を設定します。
- セーブポイント: トランザクションがロールバックされるポイントを設定するために使用されます。
Q#9)トランザクションのプロパティは何ですか?
回答: トランザクションのプロパティは、ACIDプロパティと呼ばれます。これらは:
- アトミシティ :実行されるすべてのトランザクションの完全性を保証します。すべてのトランザクションが正常に完了したかどうかを確認します。そうでない場合、トランザクションは障害点で中止され、変更が取り消されると、前のトランザクションが初期状態にロールバックされます。
- 一貫性 :トランザクションの成功を通じて行われたすべての変更がデータベースに適切に反映されるようにします。
- 隔離 :すべてのトランザクションが独立して実行され、1つのトランザクションによって行われた変更が他のトランザクションに反映されないようにします。
- 耐久性 :コミットされたトランザクションを使用してデータベースに加えられた変更が、システム障害後もそのまま維持されるようにします。
Q#10)SQLで使用できる集計関数はいくつですか?
回答: SQL集計関数は、テーブル内の複数の列から値を決定および計算し、単一の値を返します。
SQLには7つの集計関数があります。
- AVG(): 指定された列の平均値を返します。
- カウント(): テーブルの行数を返します。
- MAX(): レコードの中で最大の値を返します。
- MIN(): レコードの中で最小の値を返します。
- 和(): 指定された列値の合計を返します。
- 最初(): 最初の値を返します。
- 最終(): 最後の値を返します。
Q#11)SQLのスカラー関数とは何ですか?
回答: スカラー関数は、入力値に基づいて単一の値を返すために使用されます。
スカラー関数は次のとおりです。
- UCASE(): 指定されたフィールドを大文字に変換します。
- LCASE(): 指定されたフィールドを小文字に変換します。
- MID(): テキストフィールドから文字を抽出して返します。
- フォーマット(): 表示形式を指定します。
- レン(): テキストフィールドの長さを指定します。
- 円形(): 10進数のフィールド値を数値に切り上げます。
Q#12)トリガーとは何ですか ?
回答: SQLのトリガーは、INSERT、UPDATE、DELETEなどのテーブルで実行される特定のアクションへの応答を作成するために使用される一種のストアドプロシージャです。データベース内のテーブルで明示的にトリガーを呼び出すことができます。
アクションとイベントは、SQLトリガーの2つの主要なコンポーネントです。特定のアクションが実行されると、そのアクションに応答してイベントが発生します。
構文:
CREATE TRIGGER name BEFORE (event (OR..)} ON table_name (FOR (EACH) ROW) EXECUTE PROCEDURE functionname {arguments}
Q#13)SQLのビューとは何ですか?
回答: ビューは、1つ以上のテーブルのフィールドを持つ行と列を含む仮想テーブルとして定義できます。
S 構文:
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
Q#14)ビューを更新するにはどうすればよいですか?
回答: SQL CREATEおよびREPLACEは、ビューの更新に使用できます。
以下のクエリを実行して、作成したビューを更新します。
構文:
CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
Q#15)SQL特権の動作について説明してください。
回答: SQL GRANTおよびREVOKEコマンドは、SQLマルチユーザー環境で特権を実装するために使用されます。データベースの管理者は、SELECT、INSERT、UPDATE、DELETE、ALLなどのコマンドを使用して、データベースオブジェクトのユーザーに特権を付与またはユーザーから特権を取り消すことができます。
GRANTコマンド :このコマンドは、管理者以外のユーザーにデータベースアクセスを提供するために使用されます。
構文:
GRANT privilege_name ON object_name TO PUBLIC (WITH GRANT OPTION);
上記の構文で、GRANTオプションは、ユーザーが別のユーザーにもアクセスを許可できることを示します。
REVOKEコマンド :このコマンドは、データベースの拒否またはデータベースオブジェクトへのアクセスの削除を提供するために使用されます。
構文:
REVOKE privilege_name ON object_name FROM PUBLIC;
Q#16)SQLで使用できる特権の種類はいくつですか?
回答: SQLで使用される特権には、次の2種類があります。
- システム権限: システム特権は、特定のタイプのオブジェクトを処理し、ユーザーにそのオブジェクトに対して1つ以上のアクションを実行する権利を提供します。これらのアクションには、管理タスク、ALTER ANY INDEX、ALTER ANY CACHE GROUP CREATE / ALTER / DELETE TABLE、CREATE / ALTER / DELETEVIEWなどの実行が含まれます。
- オブジェクト特権: これにより、1つまたは別のユーザーのオブジェクトに対してアクションを実行できます。テーブル、ビュー、インデックスなど。オブジェクト権限には、EXECUTE、INSERT、UPDATE、DELETE、SELECT、FLUSH、LOAD、INDEX、REFERENCESなどがあります。
Q#17)SQLインジェクションとは何ですか?
回答: SQLインジェクションは、悪意のあるSQLステートメントがデータベースの入力フィールドに挿入され、実行されるとデータベースが攻撃者にさらされるタイプのデータベース攻撃手法です。この手法は通常、データ駆動型アプリケーションを攻撃して機密データにアクセスし、データベースの管理タスクを実行するために使用されます。
例えば、
SELECT column_name(s) FROM table_name WHERE condition;
Q#18)SQL ServerのSQLサンドボックスとは何ですか?
回答: SQL Sandboxは、信頼できないスクリプトが実行されるSQLサーバー環境の安全な場所です。 SQLサンドボックスには次の3つのタイプがあります。
- セーフアクセスサンドボックス: ここで、ユーザーはストアドプロシージャ、トリガーなどの作成などのSQL操作を実行できますが、メモリにアクセスしたり、ファイルを作成したりすることはできません。
- 外部アクセスサンドボックス: ユーザーは、メモリ割り当てを操作する権利がなくてもファイルにアクセスできます。
- 安全でないアクセスサンドボックス: これには、ユーザーがメモリにアクセスできる信頼できないコードが含まれています。
Q#19)SQLとPL / SQLの違いは何ですか?
回答: SQLはデータベースを作成してアクセスするための構造化照会言語ですが、PL / SQLにはプログラミング言語の手続き型の概念が付属しています。
Q#20)SQLとMySQLの違いは何ですか?
回答: SQLは、リレーショナルデータベースの操作とアクセスに使用される構造化照会言語です。一方、MySQL自体は、SQLを標準のデータベース言語として使用するリレーショナルデータベースです。
Q#21)NVL機能の用途は何ですか?
回答: NVL関数は、null値を実際の値に変換するために使用されます。
Q#22)テーブルのデカルト積は何ですか?
回答: クロス結合の出力は、デカルト積と呼ばれます。最初のテーブルの各行と2番目のテーブルの各行を組み合わせた行を返します。 例えば、 15列と20列の2つのテーブルを結合すると、2つのテーブルのデカルト積は15×20 = 300行になります。
Q#23)サブクエリとはどういう意味ですか?
回答: 別のクエリ内のクエリは、サブクエリと呼ばれます。サブクエリは内部クエリと呼ばれ、別のクエリで使用される出力を返します。
Q#24)サブクエリの操作中に使用される行比較演算子はいくつですか?
回答: IN、ANY、ALLなどのサブクエリで使用される3行の比較演算子があります。
Q#25)クラスター化インデックスと非クラスター化インデックスの違いは何ですか?
回答:2つの違いは次のとおりです。
- 1つのテーブルに含めることができるクラスター化インデックスは1つだけですが、非クラスター化インデックスは複数あります。
- クラスター化インデックスは、非クラスター化インデックスではなく、迅速に読み取ることができます。
- クラスター化インデックスはデータをテーブルまたはビューに物理的に格納しますが、非クラスター化インデックスはデータ行とは別の構造を持っているため、テーブルにデータを格納しません。
Q#26)DELETEとTRUNCATEの違いは何ですか?
回答:違いは次のとおりです。
- 両方の基本的な違いは、DELETEコマンドがDMLコマンドであり、TRUNCATEコマンドがDDLであるということです。
- DELETEコマンドは、テーブルから特定の行を削除するために使用されますが、TRUNCATEコマンドは、テーブルからすべての行を削除するために使用されます。
- WHERE句を指定してDELETEコマンドを使用することはできますが、TRUNCATEコマンドを使用することはできません。
Q#27)DROPとTRUNCATEの違いは何ですか?
デスクインタビューの質問と回答に役立ちます
回答: TRUNCATEは、元に戻すことができないテーブルからすべての行を削除し、DROPは、データベースからテーブル全体を削除し、また、元に戻すこともできません。
Q#28)Studentsテーブルから学生の詳細を表示するクエリを作成する方法
名前はKで始まりますか?
回答:クエリ:
SELECT * FROM Student WHERE Student_Name like ‘K%’;
ここでは、「like」演算子を使用してパターンマッチングを実行します。
Q#29)ネストされたサブクエリと相関サブクエリの違いは何ですか?
回答: 別のサブクエリ内のサブクエリは、ネストされたサブクエリと呼ばれます。サブクエリの出力が親クエリテーブルの列値に依存する場合、そのクエリは相関サブクエリと呼ばれます。
SELECT adminid(SELEC Firstname+' '+Lastname FROM Employee WHERE empid=emp. adminid)AS EmpAdminId FROM Employee;
クエリの結果は、Employeeテーブルの従業員の詳細です。
Q#30)正規化とは何ですか?正規化フォームはいくつありますか?
回答: 正規化は、データベースでデータの冗長性が発生しないようにデータを整理し、挿入、更新、および削除の異常を回避するために使用されます。
正規化には5つの形式があります。
- 第一正規形(1NF): テーブルから重複するすべての列を削除します。関連データのテーブルを作成し、一意の列値を識別します。
- 第一正規形(2NF): 1NFに従い、データサブセットを作成して個々のテーブルに配置し、主キーを使用してテーブル間の関係を定義します。
- 第3正規形(3NF): 2NFに従い、主キーを介して関連付けられていない列を削除します。
- 第4正規形(4NF): 3NFに従い、多値従属性を定義しません。 4NFはBCNFとしても知られています。
Q#31)関係とは何ですか?関係には何種類ありますか?
回答: 関係は、データベース内の複数のテーブル間の接続として定義できます。
関係には4つのタイプがあります。
- 1対1の関係
- 多対1の関係
- 多対多の関係
- 1対多の関係
Q#32)ストアドプロシージャとはどういう意味ですか?どのように使用しますか?
回答: ストアドプロシージャは、データベースにアクセスするための関数として使用できるSQLステートメントのコレクションです。これらのストアドプロシージャは、使用する前に早期に作成でき、条件付きロジックを適用することで、必要に応じて実行できます。ストアドプロシージャは、ネットワークトラフィックを削減し、パフォーマンスを向上させるためにも使用されます。
構文:
CREATE Procedure Procedure_Name ( //Parameters ) AS BEGIN SQL statements in stored procedures to update/retrieve records END
Q#33)リレーショナルデータベースのいくつかのプロパティを述べますか?
回答:プロパティは次のとおりです。
- リレーショナルデータベースでは、各列に一意の名前を付ける必要があります。
- リレーショナルデータベースの行と列の順序は重要ではありません。
- すべての値はアトミックであり、各行は一意です。
Q#34)ネストされたトリガーとは何ですか?
回答: トリガーは、INSERT、UPDATE、およびDELETEステートメントを使用してデータ変更ロジックを実装できます。データ変更ロジックを含み、データ変更の他のトリガーを見つけるこれらのトリガーは、ネストされたトリガーと呼ばれます。
Q#35)カーソルとは何ですか?
回答: カーソルは、行ごとにデータを操作するために使用されるデータベースオブジェクトです。
カーソルは以下の手順に従います。
- カーソルを宣言する
- カーソルを開く
- カーソルから行を取得する
- 行を処理します
- カーソルを閉じる
- カーソルの割り当て解除
Q#36)照合とは何ですか?
回答: 照合順序は、データを比較することによってデータがどのようにソートされるかをチェックする一連のルールです。文字データなどは、大文字と小文字の区別、タイプ、アクセントとともに正しい文字シーケンスを使用して保存されます。
Q#37)データベーステストで何をチェックする必要がありますか?
回答: データベーステストでは、次のことをテストする必要があります。
- データベース接続
- 制約チェック
- 必要なアプリケーションフィールドとそのサイズ
- DML操作によるデータの取得と処理
- ストアドプロシージャ
- 機能フロー
Q#38)データベースホワイトボックステストとは何ですか?
回答: データベースホワイトボックステストには以下が含まれます。
- データベースの整合性とACIDプロパティ
- データベーストリガーと論理ビュー
- 決定カバレッジ、条件カバレッジ、およびステートメントカバレッジ
- データベーステーブル、データモデル、およびデータベーススキーマ
- 参照整合性ルール
Q#39)データベースブラックボックステストとは何ですか?
回答: データベースブラックボックステストには以下が含まれます。
- データマッピング
- 保存および取得されたデータ
- 等価分割や境界値分析(BVA)などのブラックボックステスト手法の使用
Q#40)SQLのインデックスとは何ですか?
回答: インデックスは、データをより迅速に取得する方法として定義できます。 CREATEステートメントを使用してインデックスを定義できます。
構文:
CREATE INDEX index_name ON table_name (column_name)
さらに、次の構文を使用して一意のインデックスを作成することもできます。
CREATE UNIQUE INDEX index_name ON table_name (column_name)
更新: 練習用の短い質問をいくつか追加しました。
Q#41)SQLは何の略ですか?
回答: SQLは 構造化照会言語 。
Q#42)テーブルからすべてのレコードを選択するにはどうすればよいですか?
回答: テーブルからすべてのレコードを選択するには、次の構文を使用する必要があります。
Select * from table_name;
Q#43)結合を定義し、さまざまなタイプの結合に名前を付けますか?
回答: Joinキーワードは、2つ以上の関連テーブルからデータをフェッチするために使用されます。結合に含まれる両方のテーブルに少なくとも1つの一致がある行を返します。 詳細はこちら 。
結合のタイプは次のとおりです。
- 右結合
- 外部結合
- 完全結合
- クロス結合
- 自己結合。
Q#44)テーブルにレコードを追加するための構文は何ですか?
回答: テーブルにレコードを追加するには、INSERT構文を使用します。
例えば、
INSERT into table_name VALUES (value1, value2..);
Q#45)テーブルに列を追加するにはどうすればよいですか?
回答: テーブルに別の列を追加するには、次のコマンドを使用します。
ALTER TABLE table_name ADD (column_name);
推奨読書= >>方法 テーブルに列を追加する MySQLで
Q#46)SQLDELETEステートメントを定義します。
回答: DELETEは、指定された条件に基づいて1つまたは複数の行をテーブルから削除するために使用されます。
基本的な構文は次のとおりです。
DELETE FROM table_name WHERE
Q#47)COMMITを定義しますか?
回答: COMMITは、DMLステートメントによって行われたすべての変更を保存します。
Q#48)主キーとは何ですか?
回答: 主キーは、その値がテーブル内のすべての行を一意に識別する列です。主キーの値を再利用することはできません。
Q#49)外部キーとは何ですか?
回答: 2つのテーブルを関連付ける共通フィールドを作成するために、テーブルの主キーフィールドが関連テーブルに追加されると、他のテーブルでは外部キーと呼ばれます。外部キー制約は、参照整合性を強制します。
Q#50)チェック制約とは何ですか?
回答: CHECK制約は、列に格納できるデータの値またはタイプを制限するために使用されます。これらは、ドメインの整合性を強化するために使用されます。
Q#51)テーブルに複数の外部キーを含めることは可能ですか?
回答: はい、テーブルには多くの外部キーを含めることができますが、主キーは1つだけです。
Q#52)BOOLEANデータフィールドに可能な値は何ですか?
回答: BOOLEANデータフィールドの場合、-1(true)と0(false)の2つの値が可能です。
Q#53)ストアドプロシージャとは何ですか?
回答: ストアドプロシージャは、入力を受け取り、出力を送り返すことができるSQLクエリのセットです。
Q#54)SQLのIDとは何ですか?
回答: SQLが自動的に数値を生成するID列。 ID列の開始値と増分値を定義できます。
Q#55)正規化とは何ですか?
回答: データの冗長性を最小限に抑えるためのテーブル設計のプロセスは、正規化と呼ばれます。データベースを2つ以上のテーブルに分割し、それらの間の関係を定義する必要があります。
Q#56)トリガーとは何ですか?
回答: トリガーを使用すると、テーブルイベントが発生したときにSQLコードのバッチを実行できます(特定のテーブルに対してINSERT、UPDATE、またはDELETEコマンドが実行されます)。
Q#57)テーブルからランダムな行を選択するにはどうすればよいですか?
回答: SAMPLE句を使用して、ランダムな行を選択できます。
例えば、
SELECT * FROM table_name SAMPLE(10);
Q#58)SQLServerはどのTCP / IPポートを実行しますか?
回答: デフォルトでは、SQLServerはポート1433で実行されます。
Q#59)テーブルから各名前を1回だけ返すSQL SELECTクエリを記述しますか?
回答: それぞれの名前として結果を1回だけ取得するには、DISTINCTキーワードを使用する必要があります。
SELECT DISTINCT name FROM table_name;
Q#60)DMLとDDLについて説明してください。
回答: DMLはデータ操作言語の略です。 INSERT、UPDATE、およびDELETEはDMLステートメントです。
DDLはデータ定義言語の略です。 CREATE、ALTER、DROP、RENAMEはDDLステートメントです。
Q#61)SQLクエリの出力の列の名前を変更できますか?
回答: はい、次の構文を使用してこれを行うことができます。
SELECT column_name AS new_name FROM table_name;
Q#62)SQL SELECTの順序を教えてください。
回答: SQL SELECT句の順序は、SELECT、FROM、WHERE、GROUP BY、HAVING、ORDERBYです。 SELECT句とFROM句のみが必須です。
Q#63)Student列にNameとMarksの2つの列があるとします。上位3人の生徒の名前とマークを取得する方法。
回答: SELECT名、Marks FROM Student s1 where 3<= (SELECT COUNT(*) FROM Students s2 WHERE s1.marks = s2.marks)
Q#64)SQLコメントとは何ですか?
回答: SQLコメントは、2つの連続するハイフン(–)を追加することで挿入できます。
Q#65)TRUNCATE、DELETE、DROPコマンドの違いは?
回答:
- 削除 条件に基づいて、テーブルから一部またはすべての行を削除します。ロールバックできます。
- 切り捨てる メモリページの割り当てを解除することにより、テーブルからすべての行を削除します。操作をロールバックすることはできません
- 落とす コマンドは、データベースからテーブルを完全に削除します。
Q#66)トランザクションのプロパティは何ですか?
回答: 一般に、これらのプロパティはACIDプロパティと呼ばれます。彼らです:
- アトミシティ
- 一貫性
- 隔離
- 耐久性。
Q#67)ROWIDとはどういう意味ですか?
回答: これは、テーブルの各行に添付された18文字の長さの疑似列です。
Q#68)UNION、MINUS、UNION ALL、INTERSECTを定義しますか?
回答:
- マイナス –最初のクエリで選択されたが、2番目のクエリでは選択されなかったすべての個別の行を返します。
- 連合 –いずれかのクエリで選択されたすべての個別の行を返します
- UNION ALL –すべての重複を含め、いずれかのクエリで選択されたすべての行を返します。
- 交差する –両方のクエリで選択されたすべての個別の行を返します。
Q#69)トランザクションとは何ですか?
回答: トランザクションは、データベースに対して実行される一連のコードです。データベースをある一貫した状態から別の状態に移行します。
Q#70)UNIQUE制約とPRIMARY KEY制約の違いは何ですか?
企業で尋ねられるセレンインタビューの質問
回答:違いは次のとおりです。
- テーブルにはPRIMARYKEYを1つだけ含めることができますが、UNIQUEキーはいくつでも持つことができます。
- 主キーにNull値を含めることはできませんが、一意キーにNull値を含めることはできます。
Q#71)複合主キーとは何ですか?
回答: 複数の列で作成された主キーは、複合主キーと呼ばれます。
Q#72)インデックスとは何ですか?
回答: インデックスは、クエリのパフォーマンスを高速化するためにテーブルに関連付けられた特別な構造です。インデックスは、テーブルの1つ以上の列に作成できます。
Q#73)サブクエリとは何ですか?
回答: サブクエリはselectステートメントのサブセットであり、その戻り値はメインクエリのフィルタリング条件で使用されます。
Q#74)クエリ最適化とはどういう意味ですか?
回答: クエリの最適化は、データベースシステムがさまざまなクエリ戦略を比較し、最小のコストでクエリを選択するプロセスです。
Q#75)照合とは何ですか?
回答: データの保存方法、大文字と小文字の区別、かな文字の処理方法などを定義する一連のルール。
Q#76)参照整合性とは何ですか?
回答: 参照されるテーブルの主キーまたは一意キーの値に基づいて、テーブルの1つ以上の列の値を制限する一連のルール。
Q#77)ケース機能とは何ですか?
回答: Caseは、SQLのif-then-elseタイプのロジックを容易にします。条件のリストを評価し、複数の可能な結果式の1つを返します。
Q#78)一時テーブルを定義しますか?
回答: 一時テーブルは、データを一時的に保存するための一時的なストレージ構造です。
Q#79)クエリでレコードが重複しないようにするにはどうすればよいですか?
回答: DISTINCTキーワードを使用することにより、クエリ内のレコードの重複を回避できます。
Q#80)名前の変更とエイリアスの違いを説明してください。
回答: 名前の変更はテーブルまたは列に付けられた永続的な名前ですが、エイリアスはテーブルまたは列に付けられた一時的な名前です。
Q#81)ビューとは何ですか?
回答: ビューは、1つ以上のテーブルからのデータを含む仮想テーブルです。ビューは、必要な値のみを選択することでテーブルのデータアクセスを制限し、複雑なクエリを簡単にします。
Q#82)ビューの利点は何ですか?
回答:ビューの利点は次のとおりです。
- ビューはテーブルから選択した列を表示できるため、ビューはデータへのアクセスを制限します。
- ビューを使用して単純なクエリを作成し、複雑なクエリの結果を取得できます。 例えば、 ビューは、ユーザーが知らないうちに複数のテーブルから情報を照会するために使用できます。
Q#83)ユーザーが別のユーザーに付与できるさまざまな特権をリストしますか?
回答: 選択、接続、リソース。
Q#84)スキーマとは何ですか?
回答: スキーマは、ユーザーのデータベースオブジェクトのコレクションです。
Q#85)テーブルとは何ですか?
回答: テーブルは、データベース管理システムのデータストレージの基本単位です。テーブルデータは行と列に格納されます。
Q#86)ビューにはデータが含まれていますか?
回答: いいえ、ビューは仮想構造です。
Q#87)別のビューに基づくビューはできますか?
回答: はい、ビューは別のビューに基づいています。
Q#88)HAVING句とWHERE句の違いは何ですか?
回答: どちらも検索条件を指定しますが、Having句はSELECTステートメントでのみ使用され、通常はGROUPBY句で使用されます。
GROUP BY句が使用されていない場合は、WHERE句のように動作します。
Q#89)ローカル一時テーブルとグローバル一時テーブルの違いは何ですか?
回答: 複合ステートメント内で定義されている場合、ローカル一時テーブルはそのステートメントの期間中のみ存在しますが、グローバル一時テーブルはDBに永続的に存在しますが、接続が閉じられるとその行は消えます。
Q#90)CTEとは何ですか?
回答: CTEまたは共通テーブル式は、SQLステートメントで定義された一時的な結果セットを含む式です。
結論
SQLはデータベースシステムの重要なコンポーネントです。 SQLの概念とともにデータベースに関する十分な知識を持っていることは、関係するプロファイルのインタビューをクラックするのに間違いなく有益です。
いくつかの主要な概念とは別に、目に見えないままで、インタビューでのパフォーマンスに影響を与えるいくつかの隠された事実があります。このチュートリアルでは、小さく見えるが無視してはならない概念のいくつかを思い出そうとしました。
この記事で、SQLインタビューで最もよく聞かれる質問への回答が見つかることを願っています。 SQLの知識はすべてのテスターにとって必須であり、この記事はインタビューの準備に役立ちます。
さらに読む=> データベーステストのすべて