Preguntas de la entrevista de SQL | conjunto 2

  1. Diferencia entre bloqueo, bloqueo y interbloqueo
    • Bloqueo: el bloqueo se produce cuando una conexión necesita acceder a un dato en una base de datos y lo bloquea para un uso determinado, de modo que ninguna otra transacción pueda acceder a él.
    • Bloqueo: el bloqueo ocurre cuando una transacción intenta adquirir un bloqueo incompatible en un recurso que otra transacción ya ha bloqueado. La transacción bloqueada permanece bloqueada hasta que la transacción de bloqueo libera 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, ya que cada una está esperando que la otra libere el bloqueo.
  2. Elimine los datos duplicados de la tabla para que solo los primeros datos permanezcan 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
  3. Encuentre el nombre de los empleados donde se proporciona el nombre, el segundo nombre y el apellido en la tabla. Falta algún nombre, como nombre, segundo nombre y tal vez 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:

  4. Encuentre los empleados que fueron contratados en los últimos n meses
    Encuentre los empleados que fueron contratados en los últimos n meses. Aquí obtenemos el resultado deseado 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 meses N.

    Producción:

  5. Encuentre los Empleados que contrataron en los Últimos n días
    Encuentre 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 indica de 1 a n días que muestran los Empleados que han contratado 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:

  6. Encontrar los Empleados que fueron contratados en los últimos n años
    Encontrar los Empleados que han sido contratados en los últimos n años. Aquí obtenemos el resultado deseado 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 indica de 1 a n años lo que muestra los Empleados que han contratado 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:

  7. Seleccione todos los nombres que comiencen con una letra determinada
    . 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.

Artículos relacionados :

  1. Preguntas de la entrevista de SQL | Serie 1
  2. Conjunto de preguntas DBMS más frecuentes 1
  3. Conjunto de preguntas DBMS más frecuentes 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 *