sql >> Base de Datos >  >> RDS >> Database

Las 30 preguntas principales de la entrevista de consulta SQL que debe practicar en 2022

SQL o lenguaje de consulta estructurado es un lenguaje estándar para trabajar con bases de datos relacionales. Con la enorme cantidad de datos presentes, es muy importante que comprendamos cómo utilizar las consultas para recuperar los datos necesarios. En este artículo sobre Preguntas de entrevista de consulta SQL, analizaré algunas consultas que debe practicar para convertirse en administrador de base de datos y también lo ayudarán a tener éxito en sus entrevistas.

Principales preguntas de entrevista de consulta SQL

Para su mejor comprensión, consideraré las siguientes tablas para escribir consultas.

Tabla de información de empleados:

EmpID

EmpFname

EmpLname

Departamento

Proyecto

Dirección

fecha de nacimiento

Género

1

Sanjay

Mehra

FC

P1

Hyderabad(HYD)

12/01/1976

M

2

Ananya

Mishra

Administrador

P2

Delhi(DEL)

05/02/1968

F

3

Rohan

Diwan

Cuenta

P3

Mumbai(BOM)

01/01/1980

M

4

Sonia

Kulkarni

FC

P1

Hyderabad(HYD)

05/02/1992

F

5

Ankit

Kapoor

Administrador

P2

Delhi(DEL)

07/03/1994

M

Tabla de puestos de empleados:

EmpID

PosiciónEmp

Fecha de incorporación

Salario

1

Administrador

05/01/2022

500000

2

Ejecutivo

05/02/2022

75000

3

Administrador

05/01/2022

90000

2

Prospecto

05/02/2022

85000

1

Ejecutivo

05/01/2022

300000

Comencemos por echar un vistazo a algunas de las preguntas más frecuentes de la entrevista SQL Query,

  • Escriba una consulta para obtener EmpFname de la tabla EmployeeInfo en mayúsculas y use el nombre ALIAS como EmpName.
  • Escriba una consulta para obtener el número de empleados que trabajan en el departamento 'HR'.
  • Escribe una consulta para obtener la fecha actual.
  • Escriba una consulta para recuperar los primeros cuatro caracteres de EmpLname de la tabla EmployeeInfo.
  • Escriba una consulta para obtener solo el nombre del lugar (cadena antes de los corchetes) de la columna Dirección de la tabla EmployeeInfo.
  • Escriba una consulta para crear una nueva tabla que consista en datos y estructura copiados de la otra tabla.
  • Escriba q consulta para encontrar todos los empleados cuyo salario se encuentra entre 50000 y 100000.
  • Escriba una consulta para encontrar los nombres de los empleados que comienzan con 'S'
  • Escriba una consulta para obtener los N registros principales.
  • Escriba una consulta para recuperar EmpFname y EmpLname en una sola columna como "FullName". El nombre y el apellido deben estar separados por espacios.

P1. Escriba una consulta para obtener EmpFname de la tabla EmployeeInfo en mayúsculas y use el nombre ALIAS como EmpName.

SELECT UPPER(EmpFname) AS EmpName FROM EmployeeInfo;

P2. Escriba una consulta para obtener la cantidad de empleados que trabajan en el departamento 'HR'.

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

P3. Escriba una consulta para obtener la fecha actual.

Puede escribir una consulta de la siguiente manera en SQL Server:

SELECT GETDATE();

Puede escribir una consulta de la siguiente manera en MySQL:

SELECT SYSTDATE();

P4. Escriba una consulta para recuperar los primeros cuatro caracteres de EmpLname de la tabla EmployeeInfo.

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

P5. Escriba una consulta para obtener solo el nombre del lugar (cadena antes de los corchetes) de la columna Dirección de la tabla EmployeeInfo.

Usando la función MID en MySQL

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

P6. Escriba una consulta para crear una nueva tabla que consta de datos y estructura copiados de la otra tabla.

Usando el comando SELECCIONAR EN:

SELECT * INTO NewTable FROM EmployeeInfo WHERE 1 = 0;

Usando el comando CREAR en MySQL:

CREATE TABLE NewTable AS SELECT * FROM EmployeeInfo;

P7. Escriba q consulta para encontrar todos los empleados cuyo salario está entre 50000 y 100000.

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

P8. Escriba una consulta para encontrar los nombres de los empleados que comienzan con 'S'

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

P9. Escriba una consulta para obtener los N registros principales.

Usando el comando TOP en SQL Server:

SELECT TOP N * FROM EmployeePosition ORDER BY Salary DESC;

Usando el comando LIMIT en MySQL:

SELECT * FROM EmpPosition ORDER BY Salary DESC LIMIT N;

P10. Escriba una consulta para recuperar EmpFname y EmpLname en una sola columna como "FullName". El nombre y el apellido deben estar separados por espacios.

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

P11. Escriba una consulta para encontrar el número de empleados cuyo fecha de nacimiento es entre el 05/02/1970 y el 31/12/1975 y se agrupan según el género

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

P12. Escriba una consulta para obtener todos los registros de la tabla EmployeeInfo ordenados por EmpLname en orden descendente y Departamento en orden ascendente.

Para ordenar los registros en orden ascendente y descendente, debe usar la instrucción ORDER BY en SQL.

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

P13. Escriba una consulta para obtener detalles de los empleados cuyo EmpLname termina con un alfabeto 'A' y contiene cinco letras.

Para obtener detalles que coincidan con un cierto valor, debe usar el operador LIKE en SQL.

 
SELECT * FROM EmployeeInfo WHERE EmpLname LIKE '____a';

P14. Escriba una consulta para obtener detalles de todos los empleados, excepto los empleados con nombres, "Sanjay" y "Sonia" de la tabla EmployeeInfo.

 
SELECT * FROM EmployeeInfo WHERE EmpFname NOT IN ('Sanjay','Sonia');
¿Quieres mejorar tus habilidades para salir adelante en tu carrera? Mira este video

Las 10 tecnologías principales para aprender en 2022 | Edureka

P15. Escriba una consulta para obtener detalles de los empleados con la dirección "DELHI(DEL)".

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

P16. Escriba una consulta para buscar a todos los empleados que también ocupan el puesto directivo.

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

P17. Escribir una consulta para buscar el departamento Conteo inteligente de empleados ordenados por conteo de departamento en orden ascendente.

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

P18. Escriba una consulta para calcular los registros pares e impares de una tabla.

Para recuperar los registros pares de una tabla, debe usar la función MOD() de la siguiente manera:

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

De manera similar, para recuperar los registros impares de una tabla, puede escribir una consulta de la siguiente manera:

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

P19. Escriba una consulta SQL para recuperar los detalles de los empleados de la tabla EmployeeInfo que tienen una fecha de incorporación en la tabla EmployeePosition.

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

P20. Escriba una consulta para recuperar dos salarios mínimos y máximos de la tabla EmployeePosition.

Para recuperar dos salarios mínimos, puede escribir una consulta de la siguiente manera:

 
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;

P21. Escriba una consulta para encontrar el enésimo salario más alto de la tabla sin usar la palabra clave TOP/limit.

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

P22. Escriba una consulta para recuperar registros duplicados de una tabla.

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

P23. Escriba una consulta para recuperar la lista de empleados que trabajan en el mismo departamento.

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

P24. Escriba una consulta para recuperar los últimos 3 registros de la tabla EmployeeInfo.

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

P25. Escriba una consulta para encontrar el tercer salario más alto de la tabla EmpPosition.

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

P26. Escriba una consulta para mostrar el primer y el último registro de la tabla EmployeeInfo.

Para mostrar el primer registro de la tabla EmployeeInfo, puede escribir una consulta de la siguiente manera:

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

Para mostrar el último registro de la tabla EmployeeInfo, puede escribir una consulta de la siguiente manera:

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

P27. Escriba una consulta para agregar la validación de correo electrónico a su base de datos

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

P28. Escriba una consulta para recuperar los departamentos que tienen menos de 2 empleados trabajando en ellos.

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

P29. Escriba una consulta para recuperar EmpPostion junto con los salarios totales pagados por cada uno de ellos.

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

P30. Escriba una consulta para obtener el 50 % de los registros de la tabla EmployeeInfo.

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

Así que esto nos lleva al final del artículo Preguntas de la entrevista de consulta SQL. Espero que este conjunto de preguntas de la entrevista de consulta SQL lo ayude a superar su entrevista de trabajo. ¡Todo lo mejor para tu entrevista!

Vea esta capacitación de certificación de DBA de MySQL de Edureka, una empresa de aprendizaje en línea confiable con una red de de más de 250.000 alumnos satisfechos repartidos por todo el mundo. Este curso lo capacita en los conceptos básicos y las herramientas y técnicas avanzadas para gestionar datos y administrar la base de datos MySQL. Incluye aprendizaje práctico sobre conceptos como MySQL Workbench, servidor MySQL, modelado de datos, conector MySQL, diseño de bases de datos, línea de comandos MySQL, funciones MySQL, etc. Al final de la capacitación, podrá crear y administrar su propia base de datos MySQL y administrar datos.

¿Tiene alguna pregunta para nosotros? Menciónelo en la sección de comentarios de esta "Consulta SQL Preguntas de la entrevista” y nos comunicaremos con usted lo antes posible.