Preguntas Flashcards
¿Qué es SQL Server?
SQL Server es un sistema de gestión de bases de datos relacional desarrollado por Microsoft. Se utiliza para almacenar y recuperar datos según lo solicitado por otras aplicaciones.
¿Cuál es la diferencia entre SQL y SQL Server?
SQL (Structured Query Language) es un lenguaje utilizado para interactuar con bases de datos, mientras que SQL Server es un sistema de gestión de bases de datos que utiliza SQL como lenguaje de consulta.
¿Qué es una base de datos en SQL Server?
Una base de datos es una colección organizada de datos que se almacena y gestiona dentro de SQL Server.
Explica la diferencia entre CHAR y VARCHAR.
CHAR es un tipo de dato de longitud fija, mientras que VARCHAR es un tipo de dato de longitud variable. CHAR siempre almacena la cantidad fija de caracteres especificada, rellenando con espacios si es necesario, mientras que VARCHAR solo almacena los caracteres que se le proporcionan.
¿Qué es una clave primaria y una clave foránea?
Una clave primaria es un identificador único para cada registro en una tabla. Una clave foránea es un campo en una tabla que crea una relación con la clave primaria de otra tabla.
¿Cómo se crea una tabla en SQL Server?
CREATE TABLE nombre_tabla (
nombre_columna tipo_dato NOT NULL,
…
);
¿Qué es una consulta SELECT y cómo se usa?
Una consulta SELECT se utiliza para recuperar datos de una o varias tablas. Ejemplo:
SELECT nombre_columna1, nombre_columna2
FROM nombre_tabla
WHERE condición;
¿Qué es una vista en SQL Server y para qué se utiliza?
Una vista es una consulta guardada que puede combinar datos de varias tablas con ciertas restricciones. Se utiliza para simplificar el acceso a datos complejos.
Explica cómo se usa la instrucción INSERT INTO para agregar datos a una tabla.
INSERT INTO nombre_tabla (columna1, columna2, …)
VALUES (valor1, valor2, …);
¿Qué es un índice y por qué es importante en SQL Server?
Un índice mejora la velocidad de las operaciones de consulta en una tabla. Los índices pueden ser clustered (agrupan los datos de la tabla física según el índice) o non-clustered (almacenan una copia ordenada de las claves del índice en una estructura separada).
¿Cuál es la diferencia entre un JOIN interno y un JOIN externo?
Un INNER JOIN retorna solo los registros que tienen coincidencias en ambas tablas. Un OUTER JOIN (puede ser LEFT, RIGHT o FULL) retorna todos los registros que tienen coincidencias y los que no las tienen, rellenando con valores NULL cuando no hay coincidencia.
¿Cómo se optimiza una consulta en SQL Server?
Para optimizar una consulta en SQL Server, puedes:
Utilizar índices
Revisar el plan de ejecución
Utilizar vistas indexadas
Actualizar estadísticas
Evitar subconsultas innecesarias
Limitar el uso de funciones en las columnas
Explica la diferencia entre DELETE, TRUNCATE y DROP.
DELETE elimina registros específicos de una tabla y se puede usar con una cláusula WHERE. TRUNCATE elimina todos los registros de una tabla de manera más rápida y no se puede usar con una cláusula WHERE. DROP elimina una tabla (u otro objeto de base de datos) por completo.
¿Qué es una transacción y cómo se maneja en SQL Server?
Una transacción es una secuencia de operaciones que se ejecutan como una sola unidad lógica de trabajo. En SQL Server, se maneja utilizando comandos como BEGIN TRANSACTION, COMMIT, y ROLLBACK.
¿Qué es una función escalar y una función de tabla en SQL Server?
Una función escalar retorna un solo valor por cada llamada y puede ser una función incorporada o definida por el usuario. Una función de tabla retorna una tabla de resultados y puede ser definida por el usuario.
¿Cómo se maneja la concurrencia en SQL Server?
SQL Server maneja la concurrencia utilizando niveles de aislamiento de transacciones que controlan cómo las transacciones interactúan entre sí, como Read Uncommitted, Read Committed, Repeatable Read, Serializable y Snapshot.
Explica el uso de GROUP BY y HAVING.
GROUP BY agrupa filas que tienen valores iguales en columnas especificadas en un conjunto de resultados. HAVING se utiliza para filtrar grupos definidos por la cláusula GROUP BY.
¿Qué es una subconsulta y cómo se usa en SQL Server?
Una subconsulta es una consulta anidada dentro de otra consulta principal. Se utiliza para proporcionar resultados intermedios a la consulta principal.
¿Cómo se utiliza el comando MERGE?
El comando MERGE se utiliza para combinar operaciones de inserción, actualización y eliminación en una sola instrucción.
MERGE INTO tabla_destino AS target
USING tabla_fuente AS source
ON target.clave_primaria = source.clave_primaria
WHEN MATCHED THEN
UPDATE SET target.columna1 = source.columna1
WHEN NOT MATCHED BY TARGET THEN
INSERT (columna1, columna2) VALUES (source.columna1, source.columna2)
WHEN NOT MATCHED BY SOURCE THEN
DELETE;
¿Qué es un procedimiento almacenado y cuáles son sus ventajas?
Un procedimiento almacenado es un conjunto de instrucciones SQL precompiladas que se almacenan en el servidor. Las ventajas incluyen la reutilización de código, la mejora del rendimiento y la seguridad.
¿Cómo funciona la replicación en SQL Server y cuáles son sus tipos?
La replicación en SQL Server copia y distribuye datos y objetos de base de datos de una base de datos a otra y luego sincroniza entre bases de datos para mantener la consistencia. Los tipos son: replicación de instantáneas, replicación transaccional y replicación de mezcla.
¿Qué es el particionamiento de tablas y por qué se usaría?
El particionamiento de tablas es una técnica para dividir una tabla grande en partes más pequeñas y manejables llamadas particiones, lo cual mejora el rendimiento de consultas y la gestión de grandes volúmenes de datos.
Explica el concepto de un plan de ejecución y cómo se analiza.
Un plan de ejecución es una representación gráfica o textual de cómo SQL Server ejecuta una consulta. Se analiza utilizando SET SHOWPLAN_XML ON o SET SHOWPLAN_TEXT ON para ver el plan estimado y SQL Server Management Studio (SSMS) para ver el plan gráfico, observando operaciones costosas y cuellos de botella.
¿Qué es el aislamiento de transacciones y cuáles son sus niveles en SQL Server?
El aislamiento de transacciones define cómo se ven los cambios realizados por una transacción a otras transacciones concurrentes. Los niveles en SQL Server son: Read Uncommitted, Read Committed, Repeatable Read, Serializable, y Snapshot.