Preguntas de la entrevista de SQL | Serie 1

Que-1: Diferencia entre bloqueo y punto muerto.

  • Bloqueo:
    se produce un bloqueo cuando una transacción intenta adquirir un bloqueo incompatible en un recurso que otra transacción ya ha bloqueado. La transacción bloqueada permanecerá bloqueada hasta que la transacción de bloqueo libere el bloqueo.
  • Interbloqueo:
    el interbloqueo ocurre cuando dos o más transacciones tienen un recurso bloqueado y cada transacción solicita un bloqueo en el recurso que otra transacción ya ha bloqueado. Ninguna de las transacciones aquí puede avanzar más, ya que cada una está esperando que la otra libere el bloqueo.

Que-2: elimine los datos duplicados de la tabla, solo los primeros datos permanecen constantes.

Gerentes –

Identificación Nombre Salario
1 Harpreet 20000
2 Ravi 30000
3 Vinay 10000
4 Ravi 30000
5 Harpreet 20000
6 Vinay 10000
7 Rajeev 40000
8 Vinay 10000
9 Ravi 30000
10 Sanjay 50000

Consulta –

DELETE M1 
From managers M1, managers M2 
Where M2.Name = M1.Name AND M1.Id>M2.Id; 

Producción –

Identificación Nombre Salario
1 Harpreet 20000
2 Ravi 30000
3 Vinay 10000
7 Rajeev 40000
10 Sanjay 50000

Que-3: Encuentra el Nombre de los Empleados.

Encontrar el nombre de los empleados donde el nombre, el segundo nombre y el apellido se dan en la tabla. Falta algún nombre, como el primer nombre, el segundo nombre y puede ser el apellido. Aquí usaremos la función COALESCE() que devolverá los primeros valores no nulos.

Empleados –

IDENTIFICACIÓN FNombre Nombre de LNombre Salario
1 Har presagio Singh 30000
2 Ashu NULO rana 50000
3 NULO Vinay Thakur 40000
4 NULO Vinay NULO 10000
5 NULO NULO Rajveer 60000
6 Manjeet Singh NULO 60000

Consulta –

SELECT ID, COALESCE(FName, SName, LName) as Name 
FROM employees; 

Producción –

Que-4: Encuentra los Empleados que contrataron en los Últimos n meses.

Encontrar los Empleados que han sido contratados en los últimos n meses. Aquí obtenemos la salida deseada usando la función mysql TIMESTAMPDIFF().

Empleados –

IDENTIFICACIÓN FNombre LNombre Género Salario Fecha de contratación
1 Rajveer Singh Masculino 30000 2017/11/05
2 maniobrar Singh Masculino 50000 2017/11/05
3 Ashutosh Kumar Masculino 40000 2017/12/12
4 Ankita Sharma Femenino 45000 2017/12/15
5 Vijay Kumar Masculino 50000 2018/01/12
6 Dilip Yadav Masculino 25000 2018/02/26
7 jayvijay Singh Masculino 30000 2018/02/18
8 reenu kumari Femenino 40000 2017/09/19
9 Ankit Verma Masculino 25000 2018/04/04
10 Harpreet Singh Masculino 50000 2017/10/10

Consulta –

Select *, TIMESTAMPDIFF (month, Hiredate, current_date()) as DiffMonth 
From employees
Where TIMESTAMPDIFF (month, Hiredate, current_date()) 
Between 1 and 5 Order by Hiredate desc; 

Nota: aquí, en la consulta 1 y 5, se indican de 1 a n meses, que muestran los empleados que se han contratado en los últimos 1 a 5 meses. En esta consulta, DiffMonth es una columna adicional para nuestra comprensión que muestra los N-ésimos meses.

Producción –

Que-5: Encuentra los Empleados que contrataron en los Últimos n días.

Encontrar los Empleados que han sido contratados en los últimos n días. Aquí obtenemos el resultado deseado usando la función mysql DATEDIFF().


Empleados –

IDENTIFICACIÓN FNombre LNombre Género Salario Fecha de contratación
1 Rajveer Singh Masculino 30000 2017/11/05
2 maniobrar Singh Masculino 50000 2017/11/05
3 Ashutosh Kumar Masculino 40000 2017/12/12
4 Ankita Sharma Femenino 45000 2017/12/15
5 Vijay Kumar Masculino 50000 2018/01/12
6 Dilip Yadav Masculino 25000 2018/02/26
7 jayvijay Singh Masculino 30000 2018/02/18
8 reenu kumari Femenino 40000 2017/09/19
9 Ankit Verma Masculino 25000 2018/04/04
10 Harpreet Singh Masculino 50000 2017/10/10

Consulta –

Select *, DATEDIFF (current_date(), Hiredate) as DiffDay 
From employees
Where DATEDIFF (current_date(), Hiredate) between 1 and 100 order by Hiredate desc; 

Nota: aquí en la consulta 1 y 100 se indican de 1 a n días, que muestran los empleados que se han contratado en los últimos 1 a 100 días. En esta consulta, DiffDay es una columna adicional para nuestra comprensión que muestra los N-ésimos días.

Producción –

Que-6: Encuentra los Empleados que contrataron en los Últimos n años.

Encontrar los Empleados que han sido contratados en los últimos n años. Aquí obtenemos la salida deseada usando la función mysql TIMESTAMPDIFF().

Empleados –

IDENTIFICACIÓN FNombre LNombre Género Salario Fecha de contratación
1 Rajveer Singh Masculino 30000 2010/11/05
2 maniobrar Singh Masculino 50000 2017/11/05
3 Ashutosh Kumar Masculino 40000 2015/12/12
4 Ankita Sharma Femenino 45000 2016/12/15
5 Vijay Kumar Masculino 50000 2017/01/12
6 Dilip Yadav Masculino 25000 2011/02/26
7 jayvijay Singh Masculino 30000 2012/02/18
8 reenu kumari Femenino 40000 2013/09/19
9 Ankit Verma Masculino 25000 2017/04/04
10 Harpreet Singh Masculino 50000 2017/10/10

Consulta –

Select *, TIMESTAMPDIFF (year, Hiredate, current_date()) as DiffYear 
From employees
Where TIMESTAMPDIFF (year, Hiredate, current_date()) between 1 and 4 order by Hiredate desc; 

Nota: aquí en la consulta 1 y 4 se indican de 1 a n años, que muestran los Empleados que se han contratado durante los últimos 1 a 4 años. En esta consulta, DiffYear es una columna adicional para nuestra comprensión que muestra los años N.

Producción –

Que-7: Selecciona todos los nombres que comienzan con una letra dada.

Aquí obtenemos el resultado deseado mediante el uso de tres consultas diferentes.

Empleados –

IDENTIFICACIÓN FNombre LNombre Género Salario Fecha de contratación
1 Rajveer Singh Masculino 30000 2010/11/05
2 maniobrar Singh Masculino 50000 2017/11/05
3 Ashutosh Kumar Masculino 40000 2015/12/12
4 Ankita Sharma Femenino 45000 2016/12/15
5 Vijay Kumar Masculino 50000 2017/01/12
6 Dilip Yadav Masculino 25000 2011/02/26
7 jayvijay Singh Masculino 30000 2012/02/18
8 reenu kumari Femenino 40000 2013/09/19
9 Ankit Verma Masculino 25000 2017/04/04
10 Harpreet Singh Masculino 50000 2017/10/10

Consulta –

Select *
From employees 
Where Fname like 'A%';

Select *
From employees 
Where left(FName, 1)='A';

Select *
From employees 
Where substring(FName, 1, 1)='A'; 

Nota: aquí, todas las consultas darán el mismo resultado y la lista de empleados cuyo FName comienza con la letra A.

Consulte para – Preguntas de la entrevista de SQL | conjunto 2

Publicación traducida automáticamente

Artículo escrito por Delta_Ranger y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *