Database
 sql >> Datenbank >  >> RDS >> Database

Die 30 wichtigsten Interviewfragen für SQL-Abfragen, die Sie im Jahr 2022 üben müssen

SQL oder Structured Query Language ist eine Standardsprache für den Umgang mit relationalen Datenbanken. Angesichts der enormen Menge an vorhandenen Daten ist es für uns sehr wichtig zu verstehen, wie Abfragen verwendet werden, um die erforderlichen Daten abzurufen. In diesem Artikel über Interviewfragen zu SQL-Abfragen werde ich einige Abfragen diskutieren, die Sie üben müssen, um Datenbankadministrator zu werden, und die Ihnen auch dabei helfen werden, Ihre Interviews zu meistern.

Die häufigsten Fragen zu SQL-Abfragen in Vorstellungsgesprächen

Für Ihr besseres Verständnis werde ich die folgenden Tabellen in Betracht ziehen, um Abfragen zu schreiben.

EmployeeInfo-Tabelle:

EmpID

EmpFname

Mitarbeitername

Abteilung

Projekt

Adresse

Geburtsdatum

Geschlecht

1

Sanjay

Mehra

HR

P1

Hyderabad(HYD)

12.01.1976

M

2

Ananya

Mishra

Admin

P2

Delhi(DEL)

05.02.1968

F

3

Rohan

Diwan

Konto

P3

Mumbai (BOM)

01.01.1980

M

4

Sonia

Kulkarni

HR

P1

Hyderabad(HYD)

05.02.1992

F

5

Ankit

Kapoor

Admin

P2

Delhi(DEL)

07.03.1994

M

Mitarbeiterpositionstabelle:

EmpID

EmpPosition

DateOfJoining

Gehalt

1

Manager

01/05/2022

500000

2

Executive

02/05/2022

75000

3

Manager

01/05/2022

90000

2

Lead

02/05/2022

85000

1

Executive

01/05/2022

300000

Lassen Sie uns zunächst einen Blick auf einige der am häufigsten gestellten Fragen zu SQL-Abfragen in Vorstellungsgesprächen werfen,

  • Schreiben Sie eine Abfrage, um den EmpFname aus der EmployeeInfo-Tabelle in Großbuchstaben abzurufen, und verwenden Sie den ALIAS-Namen als EmpName.
  • Schreiben Sie eine Abfrage, um die Anzahl der Mitarbeiter abzurufen, die in der Abteilung „HR“ arbeiten.
  • Schreiben Sie eine Abfrage, um das aktuelle Datum zu erhalten.
  • Schreiben Sie eine Abfrage, um die ersten vier Zeichen von EmpLname aus der EmployeeInfo-Tabelle abzurufen.
  • Schreiben Sie eine Abfrage, um nur den Ortsnamen (Zeichenfolge vor Klammern) aus der Adressspalte der EmployeeInfo-Tabelle abzurufen.
  • Schreiben Sie eine Abfrage, um eine neue Tabelle zu erstellen, die aus Daten und Strukturen besteht, die aus der anderen Tabelle kopiert wurden.
  • Schreiben Sie q query, um alle Mitarbeiter zu finden, deren Gehalt zwischen 50.000 und 100.000 liegt.
  • Schreiben Sie eine Abfrage, um die Namen von Mitarbeitern zu finden, die mit „S“ beginnen
  • Schreiben Sie eine Abfrage, um die Top-N-Datensätze abzurufen.
  • Schreiben Sie eine Abfrage, um EmpFname und EmpLname in einer einzelnen Spalte als „FullName“ abzurufen. Der Vorname und der Nachname müssen mit Leerzeichen getrennt werden.

Q1. Schreiben Sie eine Abfrage, um den EmpFname in Großbuchstaben aus der EmployeeInfo-Tabelle abzurufen, und verwenden Sie den ALIAS-Namen als EmpName.

SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;

Q2. Schreiben Sie eine Abfrage, um die Anzahl der Mitarbeiter abzurufen, die in der Abteilung „HR“ arbeiten.

SELECT COUNT(*) FROM EmployeeInfo WHERE Department = 'HR';

Q3. Schreiben Sie eine Abfrage, um das aktuelle Datum zu erhalten.

Sie können eine Abfrage wie folgt in SQL Server schreiben:

SELECT GETDATE();

Sie können eine Abfrage wie folgt in MySQL schreiben:

SELECT SYSTDATE();

Q4. Schreiben Sie eine Abfrage, um die ersten vier Zeichen von EmpLname aus der EmployeeInfo-Tabelle abzurufen.

SELECT SUBSTRING(EmpLname, 1, 4) FROM EmployeeInfo;

F5. Schreiben Sie eine Abfrage, um nur den Ortsnamen (Zeichenfolge vor Klammern) aus der Adressspalte der EmployeeInfo-Tabelle abzurufen.

Verwendung der MID-Funktion in MySQL

SELECT MID(Address, 0, LOCATE('(',Address)) FROM EmployeeInfo;
Using SUBSTRING
SELECT SUBSTRING(Address, 1, CHARINDEX('(',Address)) FROM EmployeeInfo;

F6. Schreiben Sie eine Abfrage, um eine neue Tabelle zu erstellen, die aus Daten und Strukturen besteht, die aus der anderen Tabelle kopiert wurden.

Verwenden des SELECT INTO-Befehls:

SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;

Verwenden des CREATE-Befehls in MySQL:

CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;

F7. Schreiben Sie q query, um alle Angestellten zu finden, deren Gehalt zwischen 50000 und 100000 liegt.

SELECT * FROM EmployeePosition WHERE Salary BETWEEN '50000' AND '100000';

F8. Schreiben Sie eine Abfrage, um die Namen von Mitarbeitern zu finden, die mit „S“ beginnen

SELECT * FROM EmployeeInfo WHERE EmpFname LIKE 'S%';

F9. Schreiben Sie eine Abfrage, um die Top-N-Datensätze abzurufen.

Durch die Verwendung des TOP-Befehls in SQL Server:

SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;

Durch die Verwendung des LIMIT-Befehls in MySQL:

SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;

F10. Schreiben Sie eine Abfrage, um EmpFname und EmpLname in einer einzelnen Spalte als „FullName“ abzurufen. Der Vorname und der Nachname müssen durch Leerzeichen getrennt werden.

SELECT CONCAT(EmpFname, ' ', EmpLname) AS 'FullName' FROM EmployeeInfo;

F11. Schreiben Sie eine Abfrage, finden Sie die Anzahl der Mitarbeiter, deren Geburtsdatum zwischen dem 02.05.1970 und dem 31.12.1975 liegt und die nach Geschlecht gruppiert sind

SELECT COUNT(*), Gender FROM EmployeeInfo WHERE DOB BETWEEN '02/05/1970 ' AND '31/12/1975' GROUP BY Gender;

F12. Schreiben Sie eine Abfrage, um alle Datensätze aus der EmployeeInfo-Tabelle abzurufen, sortiert nach EmpLname in absteigender Reihenfolge und Department in aufsteigender Reihenfolge.

Um die Datensätze in aufsteigender und absteigender Reihenfolge zu ordnen, müssen Sie die Anweisung ORDER BY in SQL verwenden.

SELECT * FROM EmployeeInfo ORDER BY EmpFname desc, Department asc;

F13. Schreiben Sie eine Abfrage, um Details von Mitarbeitern abzurufen, deren EmpLname mit einem Buchstaben „A“ endet und fünf Buchstaben enthält.

Um Details zu einem bestimmten Wert abzurufen, müssen Sie den LIKE-Operator in SQL verwenden.

 
SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';

F14. Schreiben Sie eine Abfrage, um Details aller Mitarbeiter mit Ausnahme der Mitarbeiter mit Vornamen „Sanjay“ und „Sonia“ aus der EmployeeInfo-Tabelle abzurufen.

 
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN ('Sanjay','Sonia');
Möchten Sie sich weiterbilden, um in Ihrer Karriere voranzukommen? Schauen Sie sich dieses Video an

Die 10 wichtigsten Technologien zum Lernen im Jahr 2022 | Edureka

F15. Schreiben Sie eine Abfrage, um Details von Mitarbeitern mit der Adresse „DELHI(DEL)“ abzurufen.

 
SELECT * FROM EmployeeInfo WHERE Address LIKE 'DELHI(DEL)%';

F16. Schreiben Sie eine Abfrage, um alle Mitarbeiter abzurufen, die auch die Führungsposition innehaben.

 
SELECT E.EmpFname, E.EmpLname, P.EmpPosition 
FROM EmployeeInfo E INNER JOIN EmployeePosition P ON 
E.EmpID = P.EmpID AND P.EmpPosition IN ('Manager');

F17. Schreiben Sie eine Abfrage, um die Abteilung abzurufen -weise Anzahl der Mitarbeiter sortiert nach Anzahl der Abteilungen in aufsteigender Reihenfolge.

 
SELECT Department, count(EmpID) AS EmpDeptCount 
FROM EmployeeInfo GROUP BY Department 
ORDER BY EmpDeptCount ASC;

F18. Schreiben Sie eine Abfrage, um die geraden und ungeraden Datensätze aus einer Tabelle zu berechnen.

Um die geraden Datensätze aus einer Tabelle abzurufen, müssen Sie die MOD()-Funktion wie folgt verwenden:

 
SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo) WHERE MOD(rowno,2)=0;

Um die ungeraden Datensätze aus einer Tabelle abzurufen, können Sie auf ähnliche Weise eine Abfrage wie folgt schreiben:

 
SELECT EmpID FROM (SELECT rowno, EmpID from EmployeeInfo) WHERE MOD(rowno,2)=1;

F19. Schreiben Sie eine SQL-Abfrage, um Mitarbeiterdetails aus der EmployeeInfo-Tabelle abzurufen, die ein Beitrittsdatum in der EmployeePosition-Tabelle haben.

 
SELECT * FROM EmployeeInfo E 
WHERE EXISTS 
(SELECT * FROM EmployeePosition P WHERE E.EmpId = P.EmpId);

F20. Schreiben Sie eine Abfrage, um zwei Mindest- und Höchstgehälter aus der EmployeePosition-Tabelle abzurufen.

Um zwei Mindestgehälter abzurufen, können Sie eine Abfrage wie folgt schreiben:

 
SELECT DISTINCT Salary FROM EmployeePosition E1 
 WHERE 2 >= (SELECTCOUNT(DISTINCT Salary)FROM EmployeePosition E2 
  WHERE E1.Salary >= E2.Salary) ORDER BY E1.Salary DESC;
To retrieve two maximum salaries, you can write a query as below: 
 
SELECT DISTINCT Salary FROM EmployeePosition E1 
 WHERE 2 >= (SELECTCOUNT(DISTINCT Salary) FROM EmployeePosition E2 
  WHERE E1.Salary <= E2.Salary) ORDER BY E1.Salary DESC;

F21. Schreiben Sie eine Abfrage, um das N-thöchste Gehalt aus der Tabelle zu finden, ohne das Schlüsselwort TOP/Limit zu verwenden.

 
SELECT Salary 
FROM EmployeePosition E1 
WHERE N-1 = ( 
      SELECT COUNT( DISTINCT ( E2.Salary ) ) 
	  FROM EmployeePosition E2 
	  WHERE E2.Salary >  E1.Salary );

F22. Schreiben Sie eine Abfrage, um doppelte Datensätze aus einer Tabelle abzurufen.

 
SELECT EmpID, EmpFname, Department COUNT(*) 
FROM EmployeeInfo GROUP BY EmpID, EmpFname, Department 
HAVING COUNT(*) > 1;

F23. Schreiben Sie eine Abfrage, um die Liste der Mitarbeiter abzurufen, die in derselben Abteilung arbeiten.

 
Select DISTINCT E.EmpID, E.EmpFname, E.Department 
FROM EmployeeInfo E, Employee E1 
WHERE E.Department = E1.Department AND E.EmpID != E1.EmpID;

F24. Schreiben Sie eine Abfrage, um die letzten 3 Datensätze aus der EmployeeInfo-Tabelle abzurufen.

SELECT * FROM EmployeeInfo WHERE 
EmpID <=3 UNION SELECT * FROM 
(SELECT * FROM EmployeeInfo E ORDER BY E.EmpID DESC) 
AS E1 WHERE E1.EmpID <=3;

F25. Schreiben Sie eine Abfrage, um das dritthöchste Gehalt aus der EmpPosition-Tabelle zu finden.

SELECT TOP 1 salary
FROM(
SELECT TOP 3 salary
FROM employee_table
ORDER BY salary DESC) AS emp
ORDER BY salary ASC;

F26. Schreiben Sie eine Abfrage, um den ersten und den letzten Datensatz aus der EmployeeInfo-Tabelle anzuzeigen.

Um den ersten Datensatz aus der EmployeeInfo-Tabelle anzuzeigen, können Sie eine Abfrage wie folgt schreiben:

SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MIN(EmpID) FROM EmployeeInfo);

Um den letzten Datensatz aus der EmployeeInfo-Tabelle anzuzeigen, können Sie eine Abfrage wie folgt schreiben:

SELECT * FROM EmployeeInfo WHERE EmpID = (SELECT MAX(EmpID) FROM EmployeeInfo);

F27. Schreiben Sie eine Abfrage, um Ihrer Datenbank eine E-Mail-Validierung hinzuzufügen

SELECT Email FROM EmployeeInfo WHERE NOT REGEXP_LIKE(Email, ‘[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}’, ‘i’);

F28. Schreiben Sie eine Abfrage, um Abteilungen abzurufen, in denen weniger als 2 Mitarbeiter arbeiten.

SELECT DEPARTMENT, COUNT(EmpID) as 'EmpNo' FROM EmployeeInfo GROUP BY DEPARTMENT HAVING COUNT(EmpD) < 2;

F29. Schreiben Sie eine Abfrage, um EmpPostion zusammen mit den für jeden von ihnen gezahlten Gesamtgehältern abzurufen.

SELECT EmpPosition, SUM(Salary) from EmployeePosition GROUP BY EmpPosition;

F30. Schreiben Sie eine Abfrage, um 50 % der Datensätze aus der EmployeeInfo-Tabelle abzurufen.

SELECT * 
FROM EmployeeInfo WHERE 
EmpID <= (SELECT COUNT(EmpID)/2 from EmployeeInfo);

Das bringt uns also zum Ende des Artikels Fragen zu SQL-Abfragen in Vorstellungsgesprächen. Ich hoffe, diese Reihe von Interviewfragen zu SQL-Abfragen wird Ihnen dabei helfen, Ihr Vorstellungsgespräch zu meistern. Alles Gute für Ihr Vorstellungsgespräch!

Sehen Sie sich diese MySQL-DBA-Zertifizierungsschulung von Edureka an, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Dieser Kurs schult Sie in den Kernkonzepten und fortgeschrittenen Tools und Techniken zur Verwaltung von Daten und zur Verwaltung der MySQL-Datenbank. Es umfasst praktisches Lernen zu Konzepten wie MySQL Workbench, MySQL Server, Datenmodellierung, MySQL Connector, Datenbankdesign, MySQL-Befehlszeile, MySQL-Funktionen usw. Am Ende des Trainings sind Sie in der Lage, Ihre eigene MySQL-Datenbank zu erstellen und zu verwalten Daten verwalten.

Haben Sie eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieser „SQL-Abfrage“ Fragen zum Vorstellungsgespräch“ und wir werden uns so schnell wie möglich bei Ihnen melden.