El lenguaje de consulta estructurado (SQL) es el lenguaje de programación estándar que utilizan los administradores de bases de datos y los analistas de datos para consultar las bases de datos. Se utiliza ampliamente en los lenguajes de programación de sitios web, aplicaciones y otras plataformas.
Se utiliza para acceder a los datos de una base de datos y manipularlos, lo que incluye la creación y modificación de tablas y columnas y la consulta de los datos mediante comandos SQL.
Sin duda, este post le dará algunas ideas si está buscando preguntas y respuestas que pueda utilizar mientras se prepara para una entrevista sobre SQL. En una entrevista de trabajo para un ingeniero de datos, analista de datos, administrador de bases de datos, etc., cabe esperar las siguientes preguntas.
¿Cuáles son los comandos SQL básicos?
Algunos de los comandos SQL más importantes son:
- SELECT – extrae datos de una base de datos.
- CREATE TABLE – crea una nueva tabla.
- DELETE – borra datos de una base de datos.
- INSERT INTO – inserta nuevos datos en una base de datos.
- ALTER DATABASE – modifica una base de datos.
- CREATE DATABASE – crea una nueva base de datos.
- UPDATE – actualiza los datos de una base de datos.
¿Cuáles son las cuatro sentencias SQL importantes?
Las principales sentencias SQL se dividen en estas categorías:
- Sentencias del Lenguaje de Definición de Datos (DDL)
- Sentencias del Lenguaje de Manipulación de Datos (DML)
- Sentencias del Lenguaje de Control de Datos (DCL)
- Sentencias del Lenguaje de Control de Transacciones (TCL)
¿Qué significa clave primaria en SQL?
Una clave primaria es una columna (o conjunto de columnas) que permite identificar de forma única cada fila de una base de datos. Las bases de datos SQL dan mucha importancia a las claves primarias. Proporcionan a cada fila de una tabla de base de datos un identificador único. Una clave primaria puede constar de uno o más campos, y sólo puede haber una clave primaria por tabla.
¿Qué son los tipos de datos SQL?
Un tipo de datos es un atributo que describe el tipo de datos que puede almacenar un objeto, como cadenas binarias, datos numéricos, datos de caracteres, datos financieros, datos de fecha y hora, etc.
En SQL, los tipos de datos se clasifican en los siguientes grupos:
- Numéricos exactos
- Numéricos aproximados
- Fecha y hora
- Cadenas de caracteres
- Cadenas de caracteres Unicode
- Cadenas binarias
¿Dónde se almacenan los nombres de usuario y las contraseñas en SQL Server?
Los nombres de usuario y las contraseñas se almacenan en los registros sys.server principals y sys.sql de la tabla SQL, respectivamente. Las contraseñas no se almacenan en texto normal.
¿Qué es la inyección SQL?
Los ataques de inyección SQL son uno de los tipos de ciberataques más comunes en la actualidad. Permiten a los atacantes malintencionados acceder a los datos manipulando la base de datos de una aplicación. Esto puede acarrear una amplia gama de consecuencias negativas, desde pérdidas financieras hasta la pérdida de datos sensibles. La mejor forma de protegerse contra los ataques de inyección SQL es evitar que se produzcan en primer lugar.
¿Qué es un disparador en SQL y sus tipos?
Un disparador es un tipo especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. Los disparadores se utilizan para evaluar los datos antes o después de modificarlos mediante sentencias DDL y DML.
Existen tres tipos de disparadores: LOGON, DDL y DML.
- Disparadores LOGON: Estos trig gers se disparan cuando un usuario inicia un evento de Logon.
- Disparadores DDL: Se disparan siempre que se emite un comando DDL como CREATE, ALTER o DROP.
- Disparadores DML: Se disparan siempre que un comando DML modifica datos. Comparables a INSERT, UPDATE y DELETE
¿Cómo distinguiría entre funciones de una sola fila y de varias filas?
Una sola fila de una tabla puede verse afectada por funciones de una sola fila a la vez. Ejecutan una fila y luego sólo devuelven un resultado. Es bien sabido que las conversiones de longitud y de mayúsculas y minúsculas son funciones de una sola fila.
Las filas de una tabla pueden verse afectadas por muchas funciones de fila simultáneamente. También se conocen como funciones de grupo, ya que ejecutan varias filas antes de devolver un único resultado.
¿Qué es la normalización de bases de datos y cuáles son sus cuatro tipos principales en SQL?
La normalización de bases de datos es un proceso mediante el cual se organizan los datos para facilitar su accesibilidad y reducir la redundancia de los mismos. Las columnas y tablas de una base de datos se organizan durante la normalización para asegurarse de que cualquier dependencia se mantiene correctamente mediante las restricciones de integridad de la base de datos.
Los cuatro tipos de procesos de normalización de bases de datos son los siguientes:
- Primera forma normal (1 NF)
- Segunda forma normal (2 NF)
- Tercera Forma Normal (3 NF)
- Forma Normal Boyce Codd o Cuarta Forma Normal (BCNF o 4 NF)
¿Qué son los índices y las restricciones en SQL?
Los índices son uno de los conceptos más importantes en SQL. Nos permiten encontrar rápidamente filas específicas de datos en grandes bases de datos. También nos ayudan a aplicar restricciones, que son reglas que indican a la base de datos cómo comportarse cuando se cumplen determinadas condiciones.
Los índices se utilizan para mejorar el rendimiento de las consultas acelerando la búsqueda de datos en las tablas. También se utilizan para mejorar la legibilidad de los datos de las tablas.
Las restricciones se utilizan para limitar el tipo de datos que pueden entrar en una tabla. Esto garantiza la exactitud y fiabilidad de los datos de la tabla. Si hay alguna violación entre la restricción y la acción de los datos, la acción se aborta.
¿Cuáles son las restricciones SQL más utilizadas?
Las restricciones SQL más utilizadas son:
- CREAR ÍNDICE: Este comando garantiza la creación de índices para las tablas, de forma que se simplifica la recuperación de datos.
- FOREIGN KEY: La clave ajena de una tabla debe conectar tablas con atributos similares.
- DEFAULT: Si no se suministra ningún valor para los campos de una columna, suministra un valor por defecto para dichos campos.
- ÚNICO: Especifica que cada valor de una columna debe ser distinto.
- CLAVE PRIMARIA: La clave primaria de una tabla debe identificar cada fila.
- NOT NULL: Esta condición garantiza que las columnas no acepten valores NULL.
- CHECK: Garantiza que cada campo de columna cumpla un requisito predeterminado.
¿Es NULL igual a 0 en SQL?
Un valor NULL en SQL denota un valor no disponible o asignado. Un espacio (‘ ‘) o un cero (0) no son equivalentes al valor NULL. No puede comparar el valor NULL con ningún otro valor utilizando operadores de comparación como «=» o»>» ya que no puede ser igual o desigual a ningún otro valor.
¿Cómo prevenir los ataques de inyección SQL?
Junto con el escaneado constante y las pruebas de penetración, los métodos de seguridad como la validación de entradas, la higienización, las sentencias preparadas y las consultas SQL parametrizadas son cruciales para prevenir los ataques de inyección SQL. Además, defensas rápidas como un cortafuegos ayudarían a salvaguardar la base de datos SQL.
¿Qué es el SQL dinámico y cuándo puede utilizarlo?
El SQL dinámico es una función que puede utilizar para modificar sus consultas en tiempo de ejecución basándose en uno o varios criterios, como la fecha actual, la hora actual o cualquier otro criterio que elija.
Puede utilizar el SQL dinámico para modificar sus consultas de forma significativa y puede ayudarle a alcanzar sus objetivos o simplemente a mejorar sus habilidades de programación. Tanto si está creando una nueva aplicación, mejorando una base de datos o añadiendo funciones de almacén de datos a su sistema de producción, puede utilizar el SQL dinámico para hacerlo todo.
¿Cuáles son los distintos tipos de claves en SQL?
Clave primaria: Cada fila o registro de una tabla de base de datos se identifica de forma única mediante un campo denominado clave primaria. El valor único debe estar en la clave primaria. Los campos de clave primaria no pueden contener valores NULL. Sólo puede haber una clave primaria por tabla, formada por uno o más campos.
Clave ajena: El campo o grupo de campos de una tabla que se relaciona con la clave primaria de otra tabla se denomina clave ajena. Las tablas con claves primarias se denominan tablas padre, mientras que las tablas con claves ajenas se denominan tablas hijo.
Superclave: Una superclave es una clave o conjunto de claves que ayudan a identificar las entradas de una tabla. Aunque no todos los atributos son necesarios para identificar un registro, una superclave puede tener uno o varios de ellos.
Clave candidata: Una clave candidata es un subconjunto de superclaves que puede utilizarse para identificar registros en una base de datos basándose en uno o varios atributos. A diferencia de la superclave, todas las características de una clave candidata deben ser útiles para identificar registros.
Clave compuesta: Una clave compuesta es una combinación de dos o más columnas de una tabla que se utiliza para identificar filas de una tabla. Una clave compuesta es una clave primaria con algún otro atributo o columna.
¿Cuáles son los tipos de índices en SQL?
Los siguientes son tipos de índices en SQL
- Índice hash
- optimizado para memoria No agrupado
- Índice agrupado
- Índice no agrupado
- Índice único
- Índice de almacén de columnas
- Índice con columnas incluidas
- Índice sobre columnas computadas
- Índice filtrado
- Índice espacial
- Índice XML
- Índice de texto completo
¿Qué se entiende por buffer pool y mencione sus ventajas?
En SQL, una reserva de búferes también se denomina caché de búferes. Todos los recursos pueden utilizar una reserva de búferes para almacenar sus páginas de datos en caché. Al configurar una instancia de SQL Server, se puede especificar el tamaño de la reserva de búferes. El tamaño de una reserva de búferes determina cuántas páginas puede almacenar.
A continuación se enumeran las ventajas de un grupo de búferes:
- Mejoras en el rendimiento de E/S
- Aumento del rendimiento de las transacciones
- Reducción de la latencia de E/S
- Mejora del rendimiento de lectura
¿Qué se entiende por dependencia y mencione las diferentes dependencias?
Cuando se hace referencia a un objeto por su nombre en una expresión SQL mantenida en otro objeto, se establece una dependencia entre los dos objetos. El término «entidad referenciada» se refiere a un objeto que aparece en una expresión SQL, mientras que el término «entidad referenciadora» se refiere a un objeto que contiene una expresión SQL.
A continuación se describen los distintos tipos de dependencias en SQL.
- Dependencia funcional
- Dependencia totalmente funcional
- Dependencia multivaluada
- Dependencia transitiva
- Dependencia parcial
¿Qué son las uniones SQL y cuáles son las uniones SQL más populares?
Las uniones son una parte fundamental de la gestión de datos en SQL. Permiten unir dos o más tablas para crear una única tabla que puede utilizarse para analizar datos. También proporcionan una forma de filtrar los resultados basándose en criterios en una única tabla, lo que puede ser útil cuando se intenta encontrar filas o columnas específicas en una tabla de gran tamaño.
Existen cuatro tipos principales de JOIN en SQL: INNER JOIN, OUTER JOIN, CROSS JOIN y SELF JOIN.
¿Qué son los operadores de conjunto en SQL?
Los datos de una o más tablas del mismo tipo pueden combinarse utilizando el operador de conjunto. Los operadores set y join de SQL son similares, pero existen algunas diferencias clave. Los operadores de conjunto SQL reúnen registros de diferentes consultas, mientras que las uniones SQL combinan columnas de diferentes tablas. Las consultas SQL compuestas son aquellas que incluyen operaciones de conjunto.
¿Qué es un SGBD?
En términos sencillos, un SGBD es un sistema de software que facilita la comunicación entre los usuarios finales y una base de datos. Como resultado, nos permite almacenar, recuperar, definir y gestionar datos dentro de una base de datos.
¿Qué es un RDBMS?
Para entender los RDBMS, primero debe comprender el concepto de base de datos relacional. Una base de datos relacional es un método estructurado para almacenar y gestionar datos mediante tablas, en las que los datos se organizan en filas y columnas para facilitar su recuperación y análisis.
Ahora que la funcionalidad es precisa, definamos RDBMS. Un RDBMS se considera un programa de software que permite a los usuarios gestionar, actualizar y crear bases de datos relacionales. Algunos RDBMS populares en el mercado actual incluyen MySQL, Microsoft SQL Server, Oracle Database, etc.
¿Qué es PostgreSQL?
PostgreSQL es un robusto sistema de bases de datos de código abierto que mejora SQL con características avanzadas para una gestión de datos segura y escalable.
Hable de la diferencia entre SQL y MySQL.
A diferencia de MySQL, PostgreSQL es una base de datos objeto-relacional que soporta tipos de datos avanzados como objetos, matrices y XML. Esto la hace más intuitiva y versátil para los desarrolladores. A continuación se muestra la forma tabular para que quede más claro.
S.No | MySQL | PostgreSQL |
1 | Popular | Avanzado |
2 | Relacional | Objeto-Relacional |
3 | Banco de trabajo MySQL | pgAdmin |
4 | Tipos de índice limitados | Soporta varios índices |
5 | MVCC limitado | Soporte completo de MVCC |
6 | Operaciones simples | Operación compleja |
7 | Hilos del SO | Procesos del SO |
8 | Fiable y rápido | Lento y complejo |
9 | Tipos de datos básicos | Tipos de datos avanzados |
Discuta la diferencia entre NoSQL y SQL.
Existen varias diferencias entre NoSQL y SQL en términos de tipo, lenguaje, estructura, soporte, etc. Los casos de uso también difieren, ya que SQL es una buena opción siempre que necesite trabajar con datos relacionados, mientras que NoSQL destaca cuando se trata de conjuntos de datos grandes o cambiantes. A continuación encontrará una representación tabular de sus diferencias que podría ayudarle a obtener claridad respecto a SQL y NoSQL.
S. No | SQL | NoSQL |
1 | Utiliza estructuras Lenguaje SQL | Emplea esquemas dinámicos para datos no estructurados |
2 | Sigue las propiedades ACID | Sigue el teorema CAP |
3 | Escalable verticalmente | Escalable horizontalmente |
4 | Bueno para datos relacionados, consultas de estructuras | Ideal para conjuntos de datos grandes o cambiantes, modelos de datos flexibles |
5 | Bases de datos relacionales (RDBMS) | Bases de datos no relacionales/distribuidas |
6 | Basadas en tablas | Estructuras diversas (por ejemplo, pares clave-valor, documentos, gráficos) |
7 | Fuerte apoyo de proveedores y consultores | Apoyo de expertos limitado, a menudo depende de la comunidad |
Hable de la diferencia entre SQL y PL/SQL.
SQL y PL/SQL difieren en sus enfoques de manipulación de bases de datos. SQL es un lenguaje declarativo para bases de datos relacionales, mientras que PL/SQL es un lenguaje procedimental que utiliza SQL para las operaciones con bases de datos.
PL/SQL incluye variables y estructuras de control y puede ejecutar varias operaciones a la vez, lo que reduce el tráfico de red. SQL se limita a operaciones únicas. PL/SQL ofrece un procesamiento de datos de alta velocidad, del que carece SQL.
Discuta las diferencias entre OLTP y OLAP.
OLAP está diseñado para tareas analíticas, para obtener datos históricos de múltiples bases de datos y para utilizar un almacén de datos. Es más lento con grandes volúmenes de datos pero no requiere actualizaciones frecuentes. En cambio, OLTP es para las tareas empresariales diarias, gestionando los datos operativos actuales con un SGBD estándar. Es más rápido para operaciones esenciales y actualizaciones rápidas de datos iniciadas por los usuarios.
OLAP está orientado a la materia, mientras que OLTP está orientado a la aplicación. OLAP se dirige a ejecutivos de alto nivel, centrándose en los clientes, mientras que OLTP atiende a oficinistas, trabajadores de oficina y gerentes con un enfoque centrado en el mercado.
¿Qué es la sentencia select?
La sentencia SELECT de SQL recupera datos de una base de datos, permitiéndonos especificar qué columnas recuperar y aplicar criterios para la selección de datos. El resultado se almacena en un conjunto de resultados, y podemos definir los encabezados de las columnas para mayor claridad. Esta sentencia es una de las primeras y últimas cláusulas evaluadas por el servidor de la base de datos para determinar las posibles columnas del conjunto de resultados final.
Por ejemplo, consideremos una tabla «Productos». Si queremos recuperar los nombres y precios de los productos con un precio superior a 50 dólares, podemos utilizar la siguiente consulta SQL:
SELECT NombreProducto, Precio
FROM Productos
WHERE Precio > 50;
En este ejemplo, especificamos las columnas «ProductName» y «Price» en la cláusula SELECT. La cláusula WHERE establece los criterios para seleccionar sólo aquellos registros en los que el precio sea superior a 50 dólares. El conjunto de resultados incluirá los nombres y precios de los productos que cumplan esta condición.
¿Cómo utilizar una sentencia DISTINCT?
SQL DISTINCT es una potente herramienta para eliminar duplicados en los resultados de una consulta. Se empareja con SELECT para extraer valores únicos de columnas o tablas específicas. Los puntos clave incluyen:
- Elimina duplicados.
- Puede trabajar con funciones agregadas.
- Opera sobre una sola columna.
- Sintaxis:
SELECT DISTINCT expresiones FROM tablas [WHERE condiciones]
; - Los valores NULL se tratan como distintos.
¿Qué es una CLÁUSULA en SQL?
En SQL, encontrará una serie de cláusulas diseñadas para manejar grandes volúmenes de datos de forma eficaz. Estas cláusulas actúan como funciones incorporadas, recibiendo expresiones condicionales que implican nombres de columnas o términos relacionados.
Estas expresiones guían a las cláusulas para calcular los resultados, permitiéndole filtrar y analizar extensos datos almacenados en las bases de datos. Así pues, en el ámbito de SQL, estas cláusulas son sus fieles compañeras, que le ayudarán a cribar y dar sentido a sus datos sin esfuerzo.
Mencione algunas cláusulas utilizadas con select.
A continuación se mencionan algunas cláusulas comunes utilizadas con la sentencia SELECT en SQL:
- WHERE: Filtra las filas en función de un criterio determinado.
- ORDER BY: Ordena el conjunto de resultados.
- GROUP BY: Agrupa las filas con valores similares.
- HAVING: Filtra las filas agrupadas.
- LIMITAR (o TOP): Limita el número de filas devueltas.
- DISTINCT: Recupera valores únicos.
- JOIN: Combina filas de varias tablas.
- UNION (y UNION ALL): Combina los resultados de varias consultas.
- CASE: Permite la lógica condicional dentro de una consulta.
¿Cuál es el orden por defecto de los datos utilizando la cláusula ORDER BY?
La ordenación por defecto de los datos mediante la cláusula ORDER BY es como ordenar las cosas de menor a mayor por defecto. Imagine que tiene una lista de números 1, 4, 2, 7, 3. Cuando utilice ORDER BY sin especificar ninguna dirección, los ordenará así:
1, 2, 3, 4, 7
Por lo tanto, va de los valores más pequeños (1) a los más grandes (7). Si desea invertir esto y empezar primero por el más grande, puede utilizar la palabra clave DESC de la siguiente manera:
SELECT * FROM Tabla
ORDER BY ColumnName DESC;
Entonces la lista sería
7, 4, 3, 2, 1
Usted tiene el control sobre cómo se ordenan los datos con la cláusula ORDER BY, lo que facilita ordenar sus datos de diferentes maneras.
Mencione los distintos tipos de relaciones en SQL
Imagine que tiene un modelo de datos con tablas, y que estas tablas están conectadas o relacionadas entre sí. A menudo verá líneas que las conectan. Estas líneas representan los tipos de relaciones entre las tablas.
Existen tres tipos principales de relaciones:
🔷 Uno-a-Muchos: Este es el tipo más común. Imagine que tiene una lista de clientes y que cada cliente está asociado a una ciudad. Una ciudad puede tener muchos clientes, pero cada cliente pertenece a una sola ciudad.
🔷 Muchos-a-Muchos: Este tipo se utiliza cuando ambas tablas pueden tener varias entradas en ambos lados. Por ejemplo, piense en los empleados que hacen llamadas a los clientes. Un empleado puede llamar a muchos clientes, y un cliente puede recibir llamadas de muchos empleados. Cuando hay «muchos» en ambos lados, se trata de una relación de muchos a muchos. Para manejar esto, a menudo se necesita una nueva tabla intermedia.
🔷 Uno a uno: Se utiliza poco, pero tiene su lugar. Imagine que desea almacenar los datos de los empleados y sus documentos de identidad válidos. Cada empleado sólo tiene un documento de identidad válido, y cada documento de identidad pertenece a un solo empleado. Es una relación de uno a uno. Puede almacenar los datos del documento de identidad en una tabla aparte y relacionarlos mediante una clave foránea.
Por tanto, cuando diseñe una base de datos, comprender estos tipos de relación le ayudará a decidir cómo estructurar sus tablas y sus conexiones de forma eficaz. Es como averiguar cómo encajan las piezas de un puzzle para representar con precisión sus datos del mundo real.
¿Qué son Unión e Intersección?
UNION: Piense en UNION como una forma de apilar resultados unos sobre otros. Combina los datos de varias consultas en una sola lista. Si tiene dos listas de elementos y quiere juntarlos eliminando los duplicados, puede utilizar UNION.
Ejemplo: Imagine que tiene una lista de frutas favoritas de un amigo y otra lista de un amigo diferente. UNION le ayuda a crear una única lista de frutas únicas combinando ambas listas
SELECT fruta FROM amigo1_frutas
UNION
SELECT fruta FROM amigo2_frutas;
INTERSECT: INTERSECT es como una herramienta detectivesca para encontrar elementos comunes. Compara dos listas y le muestra sólo los elementos que aparecen en ambas listas. Si tiene dos conjuntos de datos y quiere ver qué tienen en común, puede utilizar INTERSECT.
Ejemplo: Imagine que tiene una lista de libros que leyó su amigo y una lista de libros que leyó usted. INTERSECT le ayuda a encontrar los libros que leen ambos.
SELECT libro FROM sus_libros
INTERSECT
SELECT book FROM amigo_libros;
Estas operaciones son como piezas de puzzle, que le ayudan a combinar o encontrar elementos comunes en sus datos.
Discuta la diferencia entre cross join y natural join.
Una unión natural es como combinar dos tablas que tienen algo en común, como los nombres de los alumnos en una lista de clase y sus calificaciones en otra tabla. Ambas tablas deben tener el mismo tipo de información (como los nombres en ambas tablas) para utilizar un Natural Join.
Suponga que tiene dos tablas «Students» y «TestScores», y quiere realizar un Natural Join basado en el atributo común «student_id»
Tabla: Estudiantes
ID del alumno | Nombre del estudiante | Edad del estudiante |
1 | Alice | 18 |
2 | Bob | 19 |
3 | Charlie | 18 |
Tabla: TestScores
ID del alumno | Nombre del alumno | Puntuación |
1 | Matemáticas | 95 |
2 | Ciencias | 88 |
3 | Matemáticas | 91 |
Ahora, realicemos un Join Natural en SQL:
SELECT * FROM Estudiantes
NATURAL JOIN PuntuacionesPrueba;
Salida:
ID del estudiante | Nombre | Edad | Asignatura | Puntuación |
1 | Alice | 18 | Matemáticas | 95 |
2 | Bob | 19 | Ciencias | 88 |
3 | Charlie | 18 | Matemáticas | 91 |
En este ejemplo, el Natural Join combina las tablas «Students» y «TestScores» basándose en el atributo común «student_id» La tabla resultante incluye todos los atributos de ambas tablas pero sólo una copia de la columna «student_id», ya que es el atributo común.
Mientras que en Una unión cruzada, también conocida como unión cartesiana, es como combinar cada fila de una tabla con cada fila de otra tabla. No se basa en ninguna condición específica o atributo común; simplemente empareja cada fila de la primera tabla con cada fila de la segunda tabla.
Tabla: Colores
Color |
Rojo |
Verde |
Azul |
Tabla Tamaños
Talla |
Pequeño |
Mediana |
Grande |
Ahora, vamos a realizar un Cross Join en SQL:
SELECT * FROM Colores
CROSS JOIN Tallas;
Salida:
Color | Talla |
Rojo | Pequeño |
Rojo | Mediana |
Rojo | Grande |
Verde | Pequeño |
Verde | Mediano |
Verde | Grande |
Azul | Pequeño |
Azul | Mediano |
Azul | Grande |
En este ejemplo, la unión cruzada combina cada color de la tabla «Colores» con cada talla de la tabla «Tallas», dando como resultado todas las combinaciones posibles de colores y tallas. No tiene en cuenta ninguna relación o condición específica entre las dos tablas, lo que la diferencia de otros tipos de uniones que se basan en criterios coincidentes.
¿Cómo se eliminan las filas duplicadas en SQL?
Cuando trabaje con bases de datos SQL, es posible que encuentre filas duplicadas en sus tablas. Esto puede ocurrir incluso si sigue las mejores prácticas como el uso de claves primarias e índices. Este artículo tratará diferentes métodos para eliminar filas duplicadas de una tabla SQL.
- Uso de las cláusulas GROUP BY y HAVING
- Identifique las filas duplicadas utilizando la cláusula GROUP BY.
- Utilice COUNT para comprobar las apariciones de duplicados.
- Elimine los duplicados manteniendo sólo una instancia de cada uno.
- Utilización de expresiones comunes de tabla (CTE)
- Utilice la función ROW_NUMBER() en una CTE.
- Particione los datos basándose en columnas específicas.
- Elimine los duplicados cuyo número de fila sea superior a 1.
- Utilización de la función RANK
- Utilice RANK() con la cláusula PARTITION BY.
- Asigne IDs únicos a las filas sin tener en cuenta los duplicados.
- Elimine filas con rangos superiores a 1.
- Uso del paquete SSIS
- SQL Server Integration Services (SSIS) puede automatizar la eliminación de duplicados.
- Ordene los datos utilizando un operador de ordenación en SSIS.
- Active la opción «Eliminar filas con valores de ordenación duplicados».
- Almacene los datos depurados en una tabla de destino.
Es importante tener cuidado al aplicar estos métodos a los datos de producción. Pruébelos siempre en un entorno seguro antes de utilizarlos con datos reales.
¿Cuáles son algunas de las funciones de SQL que se utilizan para manipular los casos de letras?
SQL proporciona varias funciones que le permiten manipular los casos de letras en las cadenas. Algunas funciones SQL comunes para manipular casos de letras incluyen:
UPPER(): Esta función convierte todos los caracteres de una cadena a mayúsculas.
SELECT UPPER('Hola Mundo') AS UppercaseResultado;
Salida: "HOLA MUNDO"
LOWER(): Esta función convierte todos los caracteres de una cadena a minúsculas.
SELECT LOWER('Hola Mundo') AS LowercaseResultado;
Salida: "hola mundo"
INITCAP(): Esta función pone en mayúsculas la primera letra de cada palabra de una cadena.
SELECT INITCAP('hola mundo') AS InitCapResultado;
Salida: "Hola mundo"
Estas funciones son útiles para dar formato y presentar datos de texto de forma coherente y legible en consultas e informes SQL.
¿Qué es una clave ÚNICA?
La clave única de SQL garantiza que la columna de una tabla sólo tenga valores diferentes y no se repita. Es un poco como una Clave Primaria pero permite un valor «en blanco» (como un espacio vacío). Esto puede ser útil cuando se desea que las cosas sean en su mayoría únicas pero no súper estrictas. También puede utilizar Claves Únicas para conectar con otras tablas. ¿Y adivine qué? Puede tener más de una Clave Única en diferentes columnas de una tabla al mismo tiempo.
¿Qué es una clave foránea?
Una CLAVE EXTRANJERA conecta una tabla con otra haciendo referencia a la CLAVE PRIMARIA de la segunda tabla. La primera tabla se denomina tabla hija y la segunda es la tabla padre. Es como si la tabla hija tomara prestada información de la tabla padre.
¿Qué son los tokens?
En SQL, los tokens son las unidades fundamentales que componen las sentencias SQL. Incluyen palabras clave (por ejemplo, SELECT), identificadores (por ejemplo, nombres de tablas), literales (por ejemplo, números), operadores (por ejemplo, ), signos de puntuación (por ejemplo, comas) y comentarios. Los tokens se utilizan para estructurar y definir consultas y comandos SQL.
¿Qué es un BLOB en MYSQL?
En MySQL, un BLOB (Binary Large Object) es un tipo de datos para almacenar datos binarios como imágenes o archivos. Por ejemplo, puede crear una tabla para almacenar imágenes con columnas para los nombres de las imágenes y sus datos binarios. Esto le permite insertar, recuperar y gestionar datos binarios en su base de datos.
He aquí un código de ejemplo simplificado para crear una tabla MySQL para almacenar imágenes utilizando el tipo de datos BLOB e insertando una imagen en ella:
-- Crear una tabla para almacenar imágenes
CREAR TABLA Imágenes (
image_id INT AUTO_INCREMENT PRIMARY KEY,
nombre_imagen VARCHAR(255),
datos_imagen BLOB
);
-- Inserte una imagen en la tabla
INSERT INTO Imágenes (nombre_imagen, datos_imagen) VALUES ('ejemplo.jpg', 'datos_binarios_aquí');
En este código
- Creamos una tabla llamada «Imágenes» con columnas para el ID único de la imagen (image_id), el nombre de la imagen (image_name) y los datos binarios de la imagen (image_data) almacenados como un BLOB.
- Insertamos una imagen llamada ‘ejemplo.jpg’ en la tabla «Imágenes». Sin embargo, en la práctica, sustituiría ‘datos_de_imagen’ por los datos binarios reales de la imagen, que pueden cargarse desde un archivo utilizando la función LOAD_FILE() o proporcionarse mediante programación.
Este código demuestra la estructura básica para crear una columna BLOB en una tabla MySQL e insertar una imagen en ella.
Discuta la diferencia entre CHAR y VARCHAR.
Char y Varchar son tipos de datos en SQL utilizados para almacenar cadenas de caracteres, pero tienen características distintas:
Tipo de datos Char(n):
- Almacena cadenas de caracteres de longitud fija.
- Requiere una longitud especificada (n) para cada valor almacenado.
- Utiliza una ubicación de memoria estática.
- Cada carácter ocupa 1 byte de almacenamiento.
- Adecuado cuando la longitud de la cadena es conocida y coherente.
Tipo de datos Varchar(n):
- Almacena cadenas de caracteres de longitud variable.
- Permite diferentes longitudes de cadena hasta una longitud máxima especificada (n).
- Utiliza asignación dinámica de memoria.
- Requiere bytes adicionales (normalmente 2) para almacenar la información de longitud.
- Apropiado cuando las longitudes de las cadenas varían.
Diferencias:
- Char es para cadenas de longitud fija, mientras que Varchar es para cadenas de longitud variable.
- Char utiliza memoria estática, mientras que Varchar utiliza memoria dinámica.
- Char requiere 1 byte por carácter, mientras que Varchar utiliza 1 byte por carácter más bytes adicionales para la longitud.
- Char se adapta a situaciones con longitudes de cadena consistentes, mientras que Varchar es flexible para longitudes variables.
En resumen, Char es como una caja rígida para sus cadenas, siempre del mismo tamaño, mientras que Varchar es como una banda elástica, que se acomoda a diferentes longitudes según sea necesario.
Discuta la diferencia entre los operadores de condición ‘BETWEEN’ e ‘IN’.
En SQL, tenemos dos operadores muy útiles: BETWEEN e IN. Nos ayudan a comparar valores de formas distintas. El operador BETWEEN resulta útil cuando queremos comprobar si un valor se encuentra dentro de un rango específico. Es como decir: «¿Está este número entre 5 y 10?»
Por otro lado, el operador IN es como tener una lista de comprobación. Lo utilizamos para ver si un valor está en nuestra lista de valores aceptados. Por ejemplo, podemos preguntar: «¿Está este nombre en nuestra lista de nombres aprobados?» Estos operadores son como nuestras herramientas para seleccionar datos en una base de datos, asegurándonos de que obtenemos la información correcta que entra dentro de los rangos que especificamos o coincide con los valores que hemos enumerado.
Hable de la diferencia entre IN y EXISTS.
En SQL, el operador IN compara un valor con una lista o subconsulta, que suele utilizarse en la cláusula WHERE para conjuntos de valores conocidos. Por ejemplo, ayuda a filtrar productos por CategoryID dentro de una lista predefinida.
Por otro lado, el operador EXISTS comprueba la existencia de filas devueltas por una subconsulta. Devuelve verdadero si la subconsulta produce alguna fila, lo que lo hace útil para verificar datos específicos o relaciones de tablas en escenarios complejos, a menudo con subconsultas correlacionadas.
En resumen, IN compara valores con conjuntos fijos, mientras que EXISTS comprueba la existencia de filas, especialmente en casos intrincados de subconsultas y relaciones entre tablas.
Discuta la diferencia entre los comandos DROP y TRUNCATE.
En este caso, DROP elimina la tabla por completo, mientras que TRUNCATE mantiene la estructura de la tabla pero elimina sus datos. He aquí una representación tabular de las diferencias entre los comandos DROP y TRUNCATE en SQL:
Aspecto | Comando DROP | Comando TRUNCATE |
Propósito | Elimina toda la tabla | Elimina todos los datos de la tabla |
Impacto en la estructura | Elimina tanto los datos como el esquema de la tabla | Conserva la estructura de la tabla |
Deshacer | No se puede revertir | Se puede revertir dentro de una transacción |
Velocidad | Más lenta debido a las operaciones sobre la estructura de la tabla | Más rápido ya que sólo se ocupa de los datos |
Escenario de uso | Cuando desea deshacerse completamente de una tabla | Cuando desea eliminar datos pero conservar la tabla para un uso futuro |
Ejemplo | DROP TABLA NombreTabla; | TRUNCATE TABLA NombreTabla; |
Discuta la diferencia entre las sentencias DELETE y TRUNCATE.
DELETE se utiliza para eliminar selectivamente filas específicas teniendo en cuenta las condiciones, mientras que TRUNCATE elimina rápidamente todas las filas pero conserva la estructura de la tabla. Ambas pueden revertirse dentro de una transacción, pero TRUNCATE restablece las columnas de identidad, y DELETE no las restablece por defecto. A continuación encontrará una comparación concisa entre las sentencias DELETE y TRUNCATE en SQL:
Aspecto | Sentencia DELETE | Sentencia TRUNCATE |
Propósito | Elimina filas específicas de una tabla basándose en una condición. | Puede revertirse dentro de una transacción. |
Deshacer | Puede revertirse dentro de una transacción. | Elimina todas las filas de una tabla pero conserva la estructura de la misma. |
Velocidad | Es más lenta, especialmente para conjuntos de datos grandes, ya que registra las eliminaciones de filas individuales y activa los disparadores asociados. | Más rápido, ya que desasigna las páginas de datos sin registrar cada eliminación de filas. |
Restablecer identidad | Las columnas de identidad (autoincremento) no se restablecen por defecto; es necesario restablecerlas manualmente. | Restablece las columnas de identidad (autoincremento) al valor inicial. |
Condiciones | Permite especificar condiciones para eliminar filas de forma selectiva. | No permite condiciones; elimina todas las filas de una sola vez. |
Ejemplo | DELETE FROM NombreTabla WHERE Condición; | TRUNCATE TABLE NombreTabla; |
Discuta la diferencia entre NOW() y CURRENT_DATE().
La función NOW() sirve para recuperar la fecha y hora actuales, presentándolas en el formato ‘AAAA-MM_DD HH:MM:SS’. En cambio, la función CURRENT_DATE() recupera específicamente la fecha del día actual, formateada como ‘AAAA-MM_DD’. Ambas funciones se emplean para proporcionar detalles precisos de la fecha y hora actuales, sirviendo como valiosas herramientas para los datos relacionados con el tiempo en SQL.
Discuta la diferencia entre las funciones RANK() y DENSE_RANK().
En SQL, las funciones RANK() y DENSE_RANK() se utilizan para clasificar filas dentro de conjuntos de resultados, pero difieren en cómo tratan los valores empatados o idénticos. La función RANK() asigna un rango único a cada fila, pero cuando varias filas tienen los mismos valores y comparten el mismo rango, deja huecos en los valores de rango.
Por ejemplo, si dos filas tienen un rango de 2, a la fila siguiente se le asignaría un rango de 4. Por otro lado, la función DENSE_RANK() también asigna un rango único a cada fila, pero, lo que es crucial, cuando varias filas comparten los mismos valores y rango, no deja huecos. Esto significa que si dos filas tienen un rango de 2, la fila siguiente se clasifica consecutivamente como 3.
Por lo tanto, la elección entre RANK() y DENSE_RANK() depende de si desea o no huecos en los valores de rango al tratar con filas empatadas en sus conjuntos de resultados SQL.
Discuta la diferencia entre COALESCE() & ISNULL().
COALESCE() es una función más versátil y ampliamente soportada para manejar valores nulos en SQL, mientras que ISNULL() es específica de SQL Server y sirve para un propósito similar pero con una portabilidad limitada.
Diferencias clave:
- COALESCE() es SQL estándar ANSI y puede manejar múltiples expresiones, mientras que ISNULL() es específica de SQL Server y sólo funciona con dos argumentos.
- COALESCE() devuelve el primer valor no nulo de una lista de expresiones, mientras que ISNULL() sustituye un valor nulo por un valor de reemplazo especificado.
- COALESCE() es más portable entre distintos sistemas de bases de datos, mientras que ISNULL() se limita a SQL Server.
Hable de la diferencia entre las funciones NVL y NVL2.
En SQL, la función NVL() ayuda a convertir un valor nulo en un valor real. Esto puede ser útil para varios tipos de datos como fechas, caracteres y números, pero es esencial que los tipos de datos de expr1 y expr2 coincidan. La sintaxis es sencilla: NVL(expr1, expr2), donde expr1 es el valor de origen que podría ser nulo, y expr2 es el valor que queremos utilizar para sustituir al nulo.
Por ejemplo, en una consulta que calcula salarios anuales, podemos utilizar NVL() para manejar los porcentajes de comisión. Si commission_pct es nulo, lo sustituimos por 0.
SELECT salario, NVL(comisión_pct, 0),
(salario*12) (salario*12*NVL(comisión_pct, 0)) COMO salario_anual FROM empleados;
Otra función útil es NVL2(), que evalúa la primera expresión. Si no es nula, devuelve la segunda expresión; en caso contrario, devuelve la tercera expresión. El argumento expr1 puede tener cualquier tipo de dato.
Por ejemplo, en una consulta que calcule los ingresos, podemos utilizar NVL2() para determinar si se incluyen las comisiones en el cálculo.
SELECT apellido, salario, comisión_pct,
NVL2(commission_pct, 'SAL COMM', 'SAL') AS income FROM empleados;
Estas funciones son útiles para tratar valores nulos y personalizar el tratamiento de los datos en las consultas SQL.
Discuta la diferencia entre las cláusulas WHERE y HAVING.
WHERE filtra filas individuales basándose en los valores de las columnas, mientras que HAVING filtra resultados agrupados basándose en funciones agregadas. Tienen propósitos diferentes en las consultas SQL, utilizándose WHERE para el filtrado a nivel de fila y HAVING para el filtrado a nivel de grupo.
Diferencias clave:
- WHERE se utiliza para filtrar filas individuales antes de agruparlas, mientras que HAVING se utiliza para filtrar grupos de filas después de agruparlas.
- WHERE se aplica a los datos de origen, mientras que HAVING se aplica a los resultados de las funciones de agregación.
- WHERE se suele utilizar con sentencias SELECT, UPDATE y DELETE, mientras que HAVING se suele utilizar con sentencias SELECT que implican GROUP BY.
- Las condiciones WHERE se basan en valores de columnas individuales, mientras que las condiciones HAVING implican funciones agregadas.
¿Cómo se crean tablas vacías?
Para crear una tabla vacía en SQL, puede utilizar el comando «CREATE TABLE». Usted especifica el nombre de la tabla y define sus columnas junto con sus tipos de datos. Sin embargo, no inserta ningún dato real en la tabla al crearla. Es como crear una estructura vacía para albergar datos en el futuro. De este modo, tiene una tabla lista para funcionar, pero comienza sin información en ella.
¿Puede explicar los pasos para crear una tabla temporal?
Crear una tabla temporal en SQL es bastante sencillo:
- Paso 1 – Conectarse: En primer lugar, asegúrese de que está conectado a su base de datos.
- Paso 2 –Defina la estructura: Utilice el comando CREATE TABLE para definir la estructura de su tabla temporal. Especifique su nombre, columnas y tipos de datos.
- Paso 3 – Datosopcionales: Si es necesario, inserte datos utilizando INSERT INTO. Este paso sirve para añadir información específica.
- Paso 4 –Utilice la tabla: Ahora puede utilizar su tabla temporal en consultas SQL durante la sesión actual de la base de datos.
- Paso 5 –Limpieza (Opcional): Si lo desea, puede eliminar la tabla temporal cuando haya terminado de utilizarla. Emplee DROP TEMPORARY TABLE para hacerlo.
Las tablas temporales son útiles para mantener datos temporalmente dentro de su sesión de base de datos.
¿Qué tipos de tablas se utilizan comúnmente en MySQL, y cómo sirven a diferentes propósitos?
En MySQL, hay varios tipos de tablas que se utilizan comúnmente para servir a diferentes propósitos:
- TablasInnoDB: Soporta transacciones, claves foráneas y bloqueo a nivel de fila. Esto la hace adecuada para aplicaciones que requieren integridad de los datos, como las plataformas de comercio electrónico y los sistemas de gestión de contenidos.
- TablasMyISAM: MyISAM es un motor de almacenamiento más antiguo que todavía se utiliza en algunos escenarios. Es conocido por su sencillez y velocidad, lo que lo hace adecuado para aplicaciones de lectura intensiva como blogs o foros. Sin embargo, no admite transacciones ni claves foráneas.
- Tablas de MEMORIA: Es ideal para fines de almacenamiento en caché o para mantener datos temporales que no necesitan persistir. Sin embargo, los datos se pierden cuando se reinicia el servidor.
- TablasARCHIVE: Las tablas ARCHIVE se utilizan para almacenar grandes cantidades de datos de forma eficiente. Son muy adecuadas para aplicaciones que requieren datos históricos o archivados, ya que utilizan un espacio mínimo en disco. Sin embargo, tienen una funcionalidad limitada en comparación con otros motores de almacenamiento.
- Tablas CSV: Es útil para importar y exportar datos en formato CSV y puede utilizarse para el intercambio de datos entre MySQL y otras aplicaciones.
- Tablasfederadas: Las tablas federadas le permiten acceder a los datos desde un servidor MySQL remoto. Son útiles para distribuir escenarios de bases de datos o cuando necesita combinar datos de múltiples fuentes en una sola consulta.
¿Cómo puede seleccionar registros únicos de una tabla?
Para obtener registros únicos de una tabla en SQL, puede utilizar la palabra clave DISTINCT con una sentencia SELECT. Esta palabra clave garantiza que sólo se muestren valores distintos para las columnas elegidas. Por ejemplo, si desea ver una lista de nombres únicos de una tabla «Clientes», escribiría
SELECT DISTINCT Nombre, Apellido
FROM Clientes;
Esta consulta recupera combinaciones distintas de nombres y apellidos de la tabla «Clientes», excluyendo los duplicados.
¿Qué son las tablas particionadas?
Las tablas particionadas en SQL son como dividir una tabla grande en trozos más pequeños basándose en valores específicos de una columna elegida, conocida como clave de partición. Esto ayuda a gestionar grandes conjuntos de datos y acelera las consultas. Cada trozo se denomina partición y funciona como su propia minitabla, lo que facilita el manejo y la búsqueda de datos.
La gente suele hacer esto para organizar los datos por tiempo, números o ubicaciones. Las distintas bases de datos admiten la partición, pero los detalles pueden variar. Por ejemplo, podría dividir una tabla «Ventas» por «FechaPedido» en secciones mensuales, lo que simplificaría el manejo de muchos datos de ventas.
¿Cómo copiar tablas en SQL?
Para duplicar o «clonar» el contenido de una tabla en SQL, puede utilizar varios métodos:
- CREAR TABLA … AS SELECT:
Cree una tabla nueva y copie los datos de una existente:
CREAR TABLA nueva_tabla COMO SELECT * FROM tabla_original;
Tenga cuidado con las tablas grandes; puede resultar lento y consumir muchos recursos. La nueva tabla hereda algunos datos básicos, pero no los índices ni la configuración de autoincremento.
- CREAR TABLA… LIKE:
Para replicar la estructura de una tabla existente, utilice:
CREAR TABLA nueva_tabla LIKE tabla_original;
Esto crea una nueva tabla con la misma estructura pero sin datos.
- INSERTAR … SELECCIONAR:
Para copiar datos entre tablas, puede hacer lo siguiente:
INSERT INTO nueva_tabla SELECT * FROM tabla_original;
Estos métodos le dan el control sobre la duplicación de tablas en SQL, permitiéndole elegir qué copiar y cómo.
¿Cómo borrar una tabla en SQL?
Para eliminar una tabla en SQL, puede utilizar la sentencia DROP TABLE seguida del nombre de la tabla que desea eliminar. He aquí la sintaxis básica:
DROP TABLE nombre_tabla;
Sustituya nombre_tabla por el nombre de la tabla que desea eliminar.
He aquí un ejemplo:
DROP TABLE Clientes;
En este ejemplo, se eliminaría la tabla «Clientes» y se perderían todos los datos que contiene.
¿Cómo se puede borrar una base de datos en PostgreSQL?
Para eliminar una base de datos en PostgreSQL, puede utilizar el comando DROP DATABASE. Sin embargo, debe tener cuidado al ejecutar este comando porque elimina permanentemente toda la base de datos y todos sus objetos asociados, incluyendo tablas, vistas, funciones y datos.
¿Cómo puedo modificar el tipo de datos de una columna existente en SQL y qué pasos hay que seguir?
Para modificar el tipo de datos de una columna existente en SQL, puede seguir una serie de pasos. En primer lugar, conéctese a su base de datos utilizando su herramienta de gestión de bases de datos preferida. Una vez conectado, examine el tipo de datos actual de la columna objetivo utilizando comandos como DESCRIBE o SHOW COLUMNS.
A continuación, emplee la sentencia ALTER TABLE, especificando el nombre de la tabla, el nombre de la columna y el nuevo tipo de datos deseado. Tras realizar la alteración, reconfirme el éxito del cambio comprobando una vez más el tipo de datos de la columna. Dependiendo del nuevo tipo de datos, puede que tenga que actualizar los datos de la columna en consecuencia para que coincidan con el nuevo tipo.
Por último, es crucial probar a fondo cualquier consulta o aplicación que utilice esta columna modificada para asegurarse de que funcionan correctamente con el tipo de datos ajustado. Este proceso debe abordarse con cuidado y realizando pruebas exhaustivas para evitar pérdidas de datos o problemas imprevistos, especialmente en entornos de producción.
¿Qué son los comentarios SQL?
Los comentarios SQL son como notas que puede añadir dentro de su código SQL para explicar cosas o proporcionar información. Estos comentarios no se ejecutan cuando ejecuta sus consultas SQL, sino que están ahí para ayudarle a usted y a los demás a entender mejor el código.
Existen dos tipos: los comentarios de una sola línea, que comienzan con dos guiones (–), y los comentarios de varias líneas, encerrados entre /* y */. Los comentarios de una sola línea son ideales para explicaciones breves, mientras que los comentarios de varias líneas le permiten escribir notas más largas.
Los comentarios SQL son útiles para documentar el código, aclarar consultas complejas y hacer que su código sea más comprensible para usted mismo y para sus compañeros desarrolladores, especialmente en proyectos de mayor envergadura.
¿Qué son los desencadenadores anidados?
Los disparadores anidados en bases de datos SQL son como disparadores dentro de disparadores. Cuando un desencadenante es activado por una acción, y ese desencadenante, a su vez, provoca la activación de otro desencadenante, se denomina desencadenante anidado.
Por ejemplo, el desencadenante A puede ser activado por una acción, y si ésta hace algo que hace que se active el desencadenante B, se tiene una situación de desencadenante anidado. Estos disparadores anidados pueden hacer que las acciones de su base de datos sean complejas y más difíciles de gestionar. Es esencial ser cauteloso al utilizarlos y comprender cómo interactúan, ya que pueden dar lugar a resultados inesperados o problemas de rendimiento si no se manejan con cuidado.
¿Qué es la desnormalización?
La desnormalización en SQL simplifica las tablas de la base de datos introduciendo redundancia. A diferencia de la normalización, que minimiza la duplicación, la desnormalización añade redundancia intencionadamente. Se hace para acelerar la recuperación de datos reduciendo la necesidad de complejas uniones. Aunque puede mejorar el rendimiento de las consultas, puede provocar incoherencias en los datos y aumentar las necesidades de almacenamiento. Por lo tanto, utilice la desnormalización con criterio para equilibrar el rendimiento y la integridad de los datos.
¿Qué es una vista?
En SQL, una vista es como una tabla virtual creada por una consulta. No es una tabla real con datos, pero actúa como tal cuando se consulta la base de datos. Las vistas tienen algunos trucos útiles bajo la manga:
- Consultassimplificadas: Puede utilizar las vistas para que las consultas complejas sean más fáciles de leer y utilizar.
- Seguridad de los datos: Le ayudan a mantener sus datos seguros permitiéndole controlar quién ve qué. Puede limitar las columnas y filas visibles para diferentes usuarios.
- Flexibilidad de los datos: Aunque cambie las tablas reales, las vistas no cambian mientras mantenga los mismos nombres de columna.
- Aumento del rendimiento: En algunos casos, las vistas pueden hacer que sus consultas se ejecuten más rápidamente realizando algunos cálculos por adelantado.
En pocas palabras, las vistas son como la forma que tiene SQL de facilitarle la vida cuando trata con bases de datos.
¿Qué es un procedimiento almacenado?
Un procedimiento almacenado es como un conjunto preguardado de comandos SQL que puede utilizar una y otra vez. En lugar de reescribir el mismo código SQL, lo guarda como un procedimiento almacenado y lo ejecuta siempre que lo necesite.
Lo bueno es que puede darle algunos valores (parámetros), y el procedimiento almacenado puede hacer cosas diferentes en función de esos valores. ¡Es como tener una práctica caja de herramientas SQL!
¿Qué es un cursor?
En SQL, un cursor es como una mano virtual para manejar los datos fila a fila. Le ayuda a trabajar a través de una lista de datos, realizando acciones sobre cada elemento individualmente. Los cursores son útiles cuando necesita un control preciso sobre las operaciones con datos.
Existen dos tipos: implícitos, creados automáticamente, y explícitos, que usted mismo gestiona para tareas más complejas. Los cursores ofrecen una manipulación de datos de grano fino.
¿Qué es una función definida por el usuario?
En SQL, una función definida por el usuario (UDF) es una herramienta personalizada que usted crea para tareas específicas. Es como su propio miniprograma en SQL. Las UDF toman datos de entrada, hacen algo con ellos y le dan resultados. Existen dos tipos: Funciones escalares (para resultados individuales) y Funciones con valores de tabla (para tablas de datos). Las UDF mantienen su código SQL ordenado y reutilizable.
¿Qué son las funciones de grupo?
En SQL, las funciones de grupo (también conocidas como funciones agregadas) son funciones especiales que se utilizan para realizar operaciones en grupos de filas y devolver un único resultado para cada grupo. En lugar de trabajar sobre filas individuales, estas funciones operan sobre conjuntos de filas y proporcionan un resumen o agregación de los datos dentro de cada grupo.
¿Qué son las funciones escalares?
Las funciones escalares en SQL son como miniprogramas que trabajan sobre fragmentos individuales de datos. Toman un valor, hacen algo con él y le dan un resultado. Por ejemplo, pueden cambiar un texto a mayúsculas, hallar la longitud de una palabra o redondear un número. Estas funciones son útiles para tareas como la limpieza de datos, en las que necesita retocar datos dentro de una única fila de una tabla.
¿Qué son las funciones de manipulación de caracteres?
Las funciones de manipulación de caracteres en SQL son un grupo de funciones utilizadas para realizar diversas operaciones con datos de caracteres o texto. Estas funciones le permiten manipular y transformar valores de texto dentro de sus consultas SQL.
¿Cuántas funciones agregadas hay disponibles en SQL?
Las funciones agregadas en SQL proporcionan información sobre los datos dentro de una base de datos. Por ejemplo, AVG calcula el valor medio de una columna de una base de datos. Existen cinco funciones agregadas principales: MIN (encuentra el mínimo), MAX (encuentra el máximo), COUNT (cuenta el número de filas), SUM (suma los valores) y AVG (calcula la media). Estas funciones ofrecen valiosos resúmenes y perspectivas de los datos cuando se consultan las bases de datos.
¿Qué es una restricción única?
Una restricción única en SQL garantiza que una columna específica o un grupo de columnas no tenga valores duplicados. Es como una regla que dice: «Cada valor debe ser único» Esto se utiliza comúnmente para cosas como los ID de los empleados o las direcciones de correo electrónico para evitar duplicados y mantener la integridad de los datos.
¿Qué es una subconsulta?
Una subconsulta en SQL es como una consulta dentro de otra consulta. Le ayuda a formular preguntas específicas dentro de una pregunta más amplia. Esta consulta anidada se utiliza para filtrar o calcular datos de forma estructurada.
¿Qué es un servidor SQL?
Un servidor SQL es una aplicación de software que gestiona y almacena bases de datos. Es como un potente bibliotecario de datos. Los servidores SQL están diseñados para gestionar tareas como el almacenamiento, la recuperación y la organización de la información de forma eficaz.
Utilizan el lenguaje SQL para comunicarse con las bases de datos, facilitando a los usuarios y a las aplicaciones la interacción con los datos almacenados. Los servidores SQL se utilizan ampliamente en diversos sectores para gestionar y asegurar información valiosa.
¿Cómo se inicia un servidor SQL?
El inicio de SQL Server depende de su sistema operativo y de sus preferencias. En Windows, basta con hacer clic en el botón Inicio, buscar «SQL Server» y abrirlo. Como alternativa, pulse «Windows R», escriba «services.msc», localice SQL Server en la lista, haga clic con el botón derecho y seleccione «Iniciar»
Si prefiere un enfoque más organizado, puede utilizar el Administrador de configuración de SQL Server para gestionar e iniciar las instancias de SQL Server. En el caso de SQL Server Express, una versión ligera, puede abrir Command Prompt, navegar hasta su carpeta de instalación y ejecutar «sqlservr.exe» para iniciarlo.
¿Cómo restaurar la base de datos en SQL Server?
Restaurar una base de datos consiste en tomar los datos de una copia de seguridad y aplicarles las transacciones registradas. Esencialmente, es el proceso de volver a convertir un archivo de copia de seguridad en una base de datos utilizable.
Puede realizar la restauración de la base de datos mediante dos métodos:
Método 1 – T-SQL: Se trata de utilizar comandos SQL para restaurar una base de datos. He aquí un ejemplo:
Restaurar la base de datos TestDB del disco = 'D:\TestDB_Full.bak' con replace
En este comando, «TestDB» es el nombre de la base de datos que desea restaurar y ‘D:\TestDB_Full.bak’ es la ubicación del archivo de copia de seguridad. Si va a crear una nueva base de datos o necesita especificar nuevas rutas para los archivos de datos y de registro, puede utilizar la opción «MOVE» de la siguiente manera:
RESTORE DATABASE TestDB FROM DISK = 'D:\TestDB_Full.bak'
CON MOVE 'TestDB' A 'D:\Data\TestDB.mdf',
MOVER 'TestDB_Log' A 'D:\Data\TestDB_Log.ldf'
Método 2 – SSMS (SQL Server Management Studio): En este método, usted utiliza SQL Server Management Studio (SSMS) para el proceso de restauración:
- Conéctese a su instancia de base de datos en SSMS.
- Haga clic con el botón derecho del ratón en la carpeta «Bases de datos».
- Seleccione «Restaurar base de datos»
- Elija el archivo de copia de seguridad y configure las opciones.
- Haga clic en «Aceptar» para iniciar el proceso de restauración.
Estos métodos le permiten recuperar una base de datos a partir de una copia de seguridad de forma eficaz.
¿Qué es un esquema en SQL Server?
En SQL Server, un esquema es como una carpeta virtual que contiene distintos tipos de información, como tablas y funciones. Ayuda a mantener las cosas organizadas, gestionar quién puede acceder a qué y evitar conflictos de nombres. Por ejemplo, puede tener una carpeta «Ventas» para todas las cosas relacionadas con ventas y una carpeta «RRHH» para las cosas relacionadas con RRHH. Es una forma de ordenar y controlar su mundo de bases de datos.
¿Qué es la prueba de caja negra de bases de datos?
Las pruebas de caja negra de bases de datos son como probar una máquina expendedora sin saber cómo está construida por dentro. Los probadores interactúan con la base de datos sin asomarse a su funcionamiento interno. Se centran en comprobar si la base de datos hace lo que se supone que debe hacer, como proporcionar las respuestas correctas cuando se le hacen preguntas.
Los probadores no necesitan saber cómo está diseñada la base de datos; sólo se aseguran de que funciona correctamente, mantiene los datos a salvo y gestiona diferentes situaciones, como errores o comprobaciones de seguridad. Es una forma de asegurarse de que la base de datos funciona bien desde fuera, como esperaría un usuario.
¿Qué es la integridad de los datos?
La integridad de los datos en las bases de datos significa mantener los datos exactos, completos y seguros. Garantiza que la información sea correcta, que no falte y que sea coherente en toda la base de datos. Los datos fiables están libres de errores y a salvo de cambios no autorizados. Sigue las normas y se mantiene protegido. Mantener las relaciones entre los datos también es importante.
Hacer un seguimiento de los cambios en los datos forma parte de la integridad de los datos. Es crucial para tomar buenas decisiones y generar confianza. Los problemas con la integridad de los datos pueden provocar errores y problemas de seguridad para las organizaciones.
¿Qué es un comando grant?
En SQL, el comando GRANT se utiliza para otorgar privilegios o permisos específicos a usuarios o roles de la base de datos. Estos privilegios pueden incluir la capacidad de realizar diversas acciones en objetos de la base de datos como tablas, vistas o procedimientos. El comando GRANT permite a los administradores controlar quién puede acceder, modificar o gestionar partes específicas de una base de datos.
Por ejemplo, puede utilizar el comando GRANT para dar permiso a un usuario para seleccionar datos de una tabla, actualizar registros o incluso crear tablas nuevas. Es una forma de definir el nivel de acceso y control que tienen los distintos usuarios o roles dentro de un sistema de base de datos.
En esencia, el comando GRANT ayuda a garantizar que los usuarios puedan realizar únicamente las acciones para las que están autorizados, lo que constituye un aspecto fundamental de la seguridad de las bases de datos y del control de acceso.
¿Qué es COMMIT?
En SQL, COMMIT es como guardar los cambios en una base de datos. Los hace permanentes, a diferencia de ROLLBACK, que deshace los cambios.
Discuta las diferencias entre commit y checkpoint.
Un COMMIT finaliza la transacción actual en la sesión actual, asegurando la consistencia de los datos modificados durante esa transacción. Mientras tanto, un punto de control escribe en el disco todos los cambios comprometidos hasta un SCN (Número de Cambio del Sistema) específico almacenado en el archivo de control y en las cabeceras del archivo de datos, asegurando la consistencia global de la base de datos.
Conclusión
Espero que estas preguntas de entrevista sobre SQL le ofrezcan una buena idea de lo que puede esperar desde la perspectiva de una entrevista. Para superar con éxito la entrevista SQL es necesario estar más familiarizado con el entorno SQL; esto se puede conseguir estudiando SQL en profundidad. Para evaluar los principios clave de SQL, también debe practicar las preguntas de la entrevista sobre consultas SQL y seguir leyendo.
Si busca aclaraciones sobre las consultas SQL, visite la hoja de trucos SQL para obtener más información sobre las sentencias SQL.
Para adquirir experiencia práctica ejecutando consultas SQL, consulte estas plataformas de práctica de SQL.