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.