20の最も一般的なSQLクエリインタビューの質問と回答[初心者および経験者向け]
公開: 2021-07-14SQLインタビューに参加し、あなたが経験するすべての質問と議論は何であるか疑問に思いますか? SQL面接に参加する前に、SQL面接の質問の種類について考えておくと、それらに対する回答を精神的に準備できるようになります。
あなたを助けるために、私はSQLインタビューの質問の深さと本当の意図を理解するためにトップのSQLインタビューの質問と回答のガイドを作成しました。 始めましょう。
構造化照会言語(SQL)は、リレーショナルデータベースのデータを管理、操作、および照会するために広く使用されているプログラミング言語です。 SQLは、リレーショナルデータベースと通信するための最速の言語ではありませんが、構造化データを処理するための最も効率的な手段であることは間違いありません。
ISAMやVSAMなどの従来の読み取り/書き込みAPIと比較すると、SQLには2つの主要な利点があります。
- 1つのコマンドを使用して複数のレコードにアクセスできます。
- これにより、データベースからレコードにアクセスする方法(インデックスを使用するかどうかに関係なく)を指定する必要がなくなります。
SQLクエリは、データベースに格納されているデータにアクセスするための質問または要求です。 データベースは、情報を表形式で保存します。 したがって、行と列が含まれます。 データベースフィールドは、データベースが格納できる情報に関してデータベースに指示する列を形成しますが、行にはデータが含まれます。 これは、物事を見通しに入れるための「tblAlbum」と呼ばれるサンプルデータセットです。
ソース
このサンプルデータを使用してSQLクエリを作成しましょう。 評価が9以上のアルバムのみを選択することに焦点を当てます。 したがって、基本的には、データベースから9以上の評価を持つアルバムタイトルのリストを作成するようにクエリを要求しています。関連するキーワードを使用して、目的の回答を取得します。
このシナリオのキーワードは、SELECT(データベースから情報をフェッチするように指示する)、FROM(上記のデータを含む特定のテーブル)、およびWHERE(情報にアクセスするための基準を指示する)です。 これらのキーワードを使用すると、SQLクエリは次のようになります。
tblAlbumsからalbumTitleを選択
WHERE評価>=9;
したがって、(FROM)テーブル「tblAlbums」からデータを(SELECT)選択します。ここで、(WHERE)アルバムの評価は9以上です。 WHEREステートメントは、ネストされたロジックが大量に含まれている場合、非常に単純な場合もあれば、過度に複雑な場合もあります。 クエリを実行すると、次の結果が得られます。
albumTitle
交響曲Dマイナー
詩人の心
SQLクエリとは何か、およびそれらがどのように機能するかについての基本的な理解ができたので、20のSQLクエリインタビューの質問をチェックしてみましょう。
SQLクエリのインタビューの質問を始める前に、これらの参照テーブルを確認してください。クエリはこれらのテーブルに基づいています。
EmployeeInfoテーブル:
EmpID | EmpFname | EmpLname | デパートメント | 計画 | 住所 | DOB | 性別 |
1 | Rohit | グプタ | 管理者 | P1 | デリー | 1979年2月12日 | 男 |
2 | ラフル | マハジャン | 管理者 | P2 | ムンバイ | 1986年10月10日 | 男 |
3 | ソニア | バネルジー | HR | P3 | プネ | 1983年5月6日 | 女性 |
4 | アンキタ | カプール | HR | P4 | チェンナイ | 1983年11月28日 | 女性 |
5 | スワティ | ガーグ | HR | P5 | デリー | 1991年6月4日 | 女性 |
EmployeePositionテーブル:
EmpID | EmpPosition | 入社の日 | 給料 |
1 | エグゼクティブ | 2020年1月4日 | 75000 |
2 | マネジャー | 2020年3月4日 | 500000 |
3 | マネジャー | 2020年2月4日 | 150000 |
2 | 役員 | 2020年2月4日 | 90000 |
1 | マネジャー | 2020年3月4日 | 300000 |
SQLクエリインタビューの質問と回答
- エイリアス名をEmpNameとして使用して、大文字でEmployeeInfoテーブルからEmpFnameを取得するクエリを記述します。
この条件のクエリは次のとおりです。
SELECT UPPER(EmpFname)AS EmpName FROM EmployeeInfo;
- 部門「HR」で働いている従業員の数を取得するためのクエリを記述します。
この需要のクエリは次のとおりです。
SELECT COUNT(*)FROM EmployeeInfo WHERE Department ='HR';
- 現在の日付を取得するためにどのクエリを作成しますか?
現在の日付を取得するには、SQLサーバーで次のクエリを記述します。
SELECT GETDATE();
現在の日付を取得するには、MySQLで次のクエリを記述できます。
SELECT SYSTDATE();
- EmployeeInfoテーブルのAddress列から場所の名前(括弧の前の文字列)のみをフェッチするクエリを記述します。
MySQLのMID関数を使用して、次のクエリを作成できます。
SELECT MID(Address、0、LOCATE('('、Address))FROM EmployeeInfo;
SUBSTRINGを使用して、次のクエリを作成できます。
SELECT SUBSTRING(Address、1、CHARINDEX('('、Address))FROM EmployeeInfo;
続きを読む:データサイエンスのためのSQL:なぜSQLなのか
- データと構造が別のテーブルからコピーされる新しいテーブルを作成するクエリを記述します。
SELECT INTOコマンドを使用して、次のクエリを作成できます。
SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;
MySQLでCREATEコマンドを使用して、次のクエリを作成できます。
CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;
- 'S'で始まる従業員の名前を表示するクエリを記述します。
これは、名前が「S」で始まる従業員の名前を取得するために記述する必要のあるクエリです。
SELECT * FROM EmployeeInfo WHERE EmpFname LIKE'S%';
- 上位Nレコードを取得するクエリを記述します。
SQLServerでTOPコマンドを使用してクエリを記述できます。
SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;
MySQLでLIMITコマンドを使用してクエリを作成することもできます。
SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;
- 昇順でDepartment、降順でEmpLnameの順に並べられたEmployeeInfoテーブルから関連レコードを取得するクエリを記述します。
この目的のために、SQLでORDERBYステートメントを使用する必要があります。
SELECT * FROM EmployeeInfo ORDER BY Department asc、EmpFname desc;
- EmpFnameが「A」で終わる従業員の詳細を取得するクエリを記述します。
SQLでLIKE演算子を使用して、この問題のクエリを作成できます。
SELECT * FROM EmployeeInfo WHERE EmpFname LIKE'____a';
10.「DELHI」を住所とする従業員の詳細を取得するクエリを作成します。
SELECT * FROM EmployeeInfo WHERE Address LIKE'DELHI%';
読む: 2020年のトップ9データサイエンスツール
- 管理職も兼務しているすべての従業員を取得するクエリを作成します。
SQLインタビューの質問と回答のガイドは、この質問なしでは完了しません。
管理職に就いている従業員を取得するためのクエリは次のとおりです。
E.EmpFname、E.EmpLname、P.EmpPositionを選択します
FROM EmployeeInfo E INNER JOIN EmployeePosition P ON
E.EmpID = P.EmpID AND P.EmpPosition IN('Manager');
- クエリを作成して、EmployeeInfoテーブルから最初と最後のレコードを生成します。
最も一般的なSQLインタビューの質問の1つ。
EmployeeInfoテーブルから最初のレコードをフェッチするためのクエリは次のとおりです。
SELECT * FROM EmployeeInfo WHERE EmpID =(SELECT MIN(EmpID)FROM EmployeeInfo);
EmployeeInfoテーブルから最後のレコードをフェッチするためのクエリは次のとおりです。
SELECT * FROM EmployeeInfo WHERE EmpID =(SELECT MAX(EmpID)FROM EmployeeInfo);
- クエリに渡された値がEmployeeInfoテーブルとEmployeePositionテーブルの日付形式に従っているかどうかを確認するクエリを作成します。
SQLのIsDate()関数を使用して、渡された値が指定された形式に従っているかどうかを確認できます。 それに応じて1(true)または0(false)を返します。 クエリは次のようになります。
SELECT ISDATE('01 / 04/2020')AS“ MM / DD / YY”;
渡された値が指定された形式と一致しないため、このクエリを実行すると0が返されます。
- 給与が150000以上のディスプレイ従業員を取得するクエリを作成します。
このリクエストのクエリは次のようになります。
SELECT EmpName FROM Employees WHERE Salary> = 150000;
- 日付を使用して年を取得するクエリを記述します。
次のクエリを実行することにより、SQLサーバーの日付から年を取得できます。
SELECT YEAR(GETDATE())as“ Year”;
- SQLクエリを作成して、EmpPostionと各従業員の役職に支払われる給与の合計を取得します。
このリクエストのクエリは次のとおりです。
EmployeePosition GROUP BY EmpPositionからEmpPosition、SUM(Salary)を選択します。
- テーブルから重複レコードを見つけるためのクエリを記述します。
SQLインタビューの質問と回答のガイドで最も一般的な質問の1つ。
SELECT EmpID、EmpFname、Department COUNT(*)
FROM EmployeeInfo GROUP BY EmpID、EmpFname、Department
HAVING COUNT(*)> 1;
- EmpPositionテーブルから3番目に高い給与を取得するクエリを作成します。
トップ1の給与を選択
から(
トップ3の給与を選択
FROM employee_table
給与DESCによる注文)AS emp
給与ASCによる注文;
- SQLクエリを記述して、EmployeeInfoテーブルの偶数レコードと奇数レコードを検索します。
テーブルから偶数レコードと奇数レコードをフェッチするには、MOD()関数を使用する必要があります。 偶数レコードの場合、クエリは次のようになります。
SELECT EmpID FROM(SELECT rowno、EmpID from EmployeeInfo)WHERE MOD(rowno、2)= 0;
奇数レコードの場合、クエリは次のようになります。
SELECT EmpID FROM(SELECT rowno、EmpID from EmployeeInfo)WHERE MOD(rowno、2)= 1;
- 同じ部門の従業員のリストを取得するためのクエリを作成します。
このリクエストのクエリは次のとおりです。
DISTINCT E.EmpID、E.EmpFname、E.DepartmentFROM EmployeeInfo E、EmployeeE1を選択します
WHERE E.Department = E1.Department AND E.EmpID!= E1.EmpID;
世界のトップ大学からオンラインでソフトウェアコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
結論
これで、SQLクエリのインタビューの質問リストは終わりです。 これらのクエリによって、標準のSQLクエリパターンとSQLクエリの作成方法が正しく理解できることを願っています。 練習すればするほど、データテーブル内のデータにアクセスして操作するためのSQLクエリをより適切に作成できるようになります。
SQLの知識を向上させたい場合、およびフルスタック開発について詳しく知りたい場合は、フルスタックソフトウェア開発におけるIIIT-BおよびupGradのPGディプロマを確認してください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的な実践を提供します。ワークショップ、業界の専門家とのメンターシップ、業界のメンターとの1対1、400時間以上の学習とトップ企業との仕事の支援。