Preguntas de entrevista para desarrolladores SQL

A continuación vamos a mencionar algunas preguntas e entrevista para desarrolladores SQL

Si deseas puedes también revisar este video donde ese explica cada pregunta:

¿Cuáles son las diferencias entre los comandos delete y truncate?

La principal diferencia es que el comando “Delete” elimina una fila de la tabla, mientras que “truncate” las elimina todas. Otra diferencia clave es que cuando usas “delete”, si algo sale mal o fuera del plan, puedes realizar un retroceso de datos (siempre que este en una transacción) – esto no puede hacerse después de que se ha enviado el comando “truncate”. Además, truncate es más rápido.

¿Cual es la diferencia entre un procedimiento almacenado y una función en SQL?

Los procedimientos almacenados y las funciones son componentes de código que podemos utilizar el SQL SERVER para crear rutinas, las diferencias que hay entre ellas son:

  • Las funciones siempre retornan un valor, mientras que un procedimiento almacenado puede que retorne un valor o puede que no lo haga. Es decir que puede comportarse como un método o como una función, haciendo una analogía con el desarrollo de software.
  • Los procedimientos almacenados pueden ser invocados desde el entorno de desarrollo, es decir desde .NET, pero las funciones no.  Así que al momento de desarrollar, siempre nos comunicaremos con procedimientos almacenados.
  • Las funciones de hecho no pueden ser invocadas por sí solas, mientras que los procedimientos almacenados sí. Para invocar una función, esta debe estar dentro de una instrucción.

Menciona 2 buenas prácticas al escribir queries en SQL

SELECT*

Al utilizar SELECT *, todas las columnas se devolverán en el mismo orden en que están definidas, por lo que los datos devueltos pueden cambiar cada vez que cambien las definiciones de la tabla.

SELECT d.DepartmentName
               ,d.Location 
FROM Departments AS d 

select distinct

SELECT DISTINCT es una forma práctica de eliminar duplicados de una consulta, sin embargo, su uso requiere un alto costo de procesamiento. En lugar de eso seleccionemos más campos para crear resultados únicos.

SELECT Name 
               , LastName 
               , Address 
               , State 
               , City 
               , Zip 
FROM    Employees; 

¿Qué son los desencadenantes o triggers?

En SQL son una especie de procedimientos almacenados que se utilizan para crear una respuesta a una acción específica realizada en la tabla, como INSERT, UPDATE o DELETE. Puede invocar desencadenadores explícitamente en la tabla de la base de datos.

¿Como se puede mejorar el rendimiento de un Query?

Algunas buenas prácticas para mejorar el rendimiento son:

  • SELECCIONAR campos en lugar de usar SELECT *
  • Cree índices correctamente
  • Utilice las tablas temporales con prudencia
  • Evitar el uso de COUNT ()
  • Evitar el uso de caracteres comodín al comienzo del patrón LIKE

¿Qué es auto-increment?

Auto Increment es una función que opera en tipos de datos numéricos. Genera automáticamente valores numéricos secuenciales cada vez que se inserta un registro en una tabla para un campo definido como incremento automático.

¿Cuáles son los comandos DDL y DML ?

  • Data Definition Language – Permite llevar a cabo operaciones tales como; Create, Delete, Alter.
  • Data Manipulation Language – Ayuda a insertar, actualizar, borrar y recuperar datos de una base de datos.
  • Data Control Language – Permite controlar el acceso a la base de datos. Puede conceder o revocar el acceso.

¿Cuáles son los tipos de uniones en SQL?

Las uniones en SQL se utilizan cuando se intenta utilizar datos de dos o más tablas al mismo tiempo. Para ello, hay que conectar de alguna manera las tablas, lo que se puede hacer utilizando los cinco tipos de join de SQL:

  • Inner join (unión interna)
  • Unión externa izquierda
  • Unión externa derecha
  • Full outer join (unión externa completa)

¿Qué son las inyecciones SQL y cómo se pueden evitar?

Una inyección SQL es un tipo de ciberataque que utilizan los hackers para insertar código SQL malicioso en la base de datos a fin de obtener acceso a información potencialmente valiosa o confidencial. Es muy común en aplicaciones o sitios web que utilizan bases de datos SQL. Para evitarlo, puedes crear varias cuentas de base de datos para limitar el acceso o usar un firewall de aplicaciones web de terceros, usar ORM o librerías para este propósito.

Recuerda siempre seguir aprendiendo con mis cursos en mteheran.dev/cursos