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