Info solo SQL Flashcards

(41 cards)

1
Q

¿Cómo funciona SQL a nivel de ejecución?

A

Cuando se ejecuta una instrucción SQL, pasa por varios componentes del sistema de base de datos:

  • Analizador: Tokeniza la instrucción y verifica su corrección sintáctica y semántica (por ejemplo, que termine con punto y coma) y valida la autorización del usuario.
  • Motor relacional: Interpreta la instrucción SQL y genera un plan de ejecución eficiente (código de bytes).
  • Motor de almacenamiento: Ejecuta el código de bytes interactuando con el almacenamiento físico y devuelve el resultado.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué son los comandos SQL y cómo se clasifican?

A

Los comandos SQL son instrucciones específicas para manipular datos en bases de datos relacionales. Se clasifican en:

  • DDL (Data Definition Language): Define estructuras (ej. CREATE, ALTER).
  • DQL (Data Query Language): Recupera datos (ej. SELECT).
  • DML (Data Manipulation Language): Modifica datos (ej. INSERT, UPDATE, DELETE).
  • DCL (Data Control Language): Controla permisos (ej. GRANT, REVOKE).
  • TCL (Transaction Control Language): Gestiona transacciones (ej. COMMIT, ROLLBACK).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué son los estándares SQL y para qué sirven?

A

Los estándares SQL son pautas formales creadas por ANSI e ISO desde 1986 para establecer una base común del lenguaje. Permiten que los distintos sistemas de gestión de bases de datos (SGBD) sigan principios uniformes y facilitan la portabilidad de consultas entre plataformas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué es la inyección de código SQL y por qué es peligrosa?

A

Es un ataque donde se insertan comandos SQL maliciosos en campos de entrada para manipular la base de datos. Por ejemplo, un atacante puede escribir ‘OR 1=1’ en un campo de usuario para acceder sin autorización. Es una vulnerabilidad crítica que puede exponer o dañar datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es MySQL y en qué se diferencia de SQL?

A

MySQL es un sistema de gestión de bases de datos relacional (RDBMS) de código abierto que implementa SQL. SQL es el lenguaje estándar, mientras que MySQL es un software específico que usa ese lenguaje. MySQL puede tener funciones propias no incluidas en el estándar SQL.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué es NoSQL y cómo se diferencia de SQL?

A

NoSQL se refiere a bases de datos no relacionales que no usan tablas. Permiten almacenar datos como documentos, pares clave-valor o grafos. Son escalables horizontalmente y flexibles para datos no estructurados. SQL, en cambio, se basa en tablas, relaciones y un lenguaje estructurado común.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué diseño es más eficiente y sigue buenas prácticas si una interfaz muestra repetidamente el nombre de países de clientes?

A

Crear una tabla separada de países con un ID numérico y usar ese ID como clave foránea en la tabla de clientes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué se considera una mala práctica al definir claves primarias en el proceso de normalización?

A

Usar claves lógicas como correos electrónicos; pueden cambiar y son lentas de procesar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué se debe usar para relacionar registros entre tablas sin replicar datos?

A

Una clave foránea (FOREIGN KEY) que referencia la clave primaria de otra tabla.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué efecto tiene un índice sobre una columna frecuentemente consultada?

A

Mejora la velocidad de lectura permitiendo búsquedas rápidas, pero puede ralentizar escrituras.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Cuándo es contraproducente agregar muchos índices en una tabla?

A

Cuando hay muchas operaciones de escritura, ya que cada una requiere actualizar los índices.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Por qué los enteros son preferibles a los strings como claves?

A

Ocupan menos espacio y su comparación es más rápida, optimizando el acceso a registros.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué hace SET NULL en una relación con clave foránea si se elimina el padre?

A

Establece el campo en la tabla hija como NULL.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Por qué se debe usar ON DELETE CASCADE con cuidado?

A

Puede eliminar masivamente datos relacionados si no se gestionan bien las relaciones.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Diferencia entre NOT NULL y CHECK?

A

NOT NULL impide valores nulos; CHECK restringe valores mediante una condición lógica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿A qué tipo de sentencia SQL pertenece UPDATE?

A

A las sentencias DML (Data Manipulation Language).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Qué sentencia revierte los cambios de una transacción?

18
Q

¿Diferencia principal entre SQL y lenguajes como Python?

A

SQL es no procedimental: describe qué obtener, no cómo lograrlo paso a paso.

19
Q

¿Qué operador lógico selecciona registros en una lista de valores?

20
Q

¿Por qué no se usa = NULL en SQL?

A

NULL representa desconocido; se debe usar IS NULL.

21
Q

¿Cómo combinar múltiples condiciones en SQL?

A

Usando operadores lógicos como AND, OR, NOT.

22
Q

¿Qué hace JOIN en SQL?

A

Une filas de dos o más tablas basándose en una condición. Ej: SELECT a.nombre, b.ciudad FROM a JOIN b ON a.id = b.id;

23
Q

¿Qué hace ON DELETE CASCADE?

A

Al eliminar el registro padre, elimina automáticamente los hijos relacionados. Ej: FOREIGN KEY (…) REFERENCES … ON DELETE CASCADE

24
Q

¿Qué implica ON DELETE RESTRICT?

A

Impide eliminar un registro padre si hay registros hijos relacionados.

25
¿Qué hace SET NULL con claves foráneas?
Asigna NULL a la clave foránea si el padre es eliminado. Ej: FOREIGN KEY (...) REFERENCES ... ON DELETE SET NULL
26
¿Para qué se usa PRIMARY KEY?
Para identificar de forma única cada fila de una tabla. Ej: PRIMARY KEY (id)
27
¿Qué hace UNIQUE?
Asegura que los valores de una columna sean únicos. Ej: email VARCHAR(100) UNIQUE
28
¿Qué hace NOT NULL?
Evita que una columna acepte valores nulos. Ej: nombre VARCHAR(50) NOT NULL
29
¿Qué hace AUTO_INCREMENT?
Genera valores secuenciales únicos automáticamente al insertar. Ej: id INT AUTO_INCREMENT
30
¿Qué motor de MySQL permite transacciones y claves foráneas?
InnoDB. Ej: ENGINE=InnoDB
31
¿Para qué sirve CHARACTER SET?
Define el conjunto de caracteres de una tabla o columna. Ej: CHARACTER SET utf8mb4
32
¿Cómo se define una clave foránea completa con acciones en cascada?
Usando FOREIGN KEY, REFERENCES, ON DELETE CASCADE, ON UPDATE CASCADE. Ej: CONSTRAINT fk_cliente FOREIGN KEY (...) REFERENCES (...) ON DELETE CASCADE ON UPDATE CASCADE
33
¿Para qué sirve CHECK?
Restringe los valores posibles de una columna. Ej: CHECK (edad >= 18)
34
¿Diferencia entre NULL y NOT NULL?
NULL permite ausencia de valor; NOT NULL exige que siempre tenga un valor.
35
¿Qué hace LIMIT?
Restringe el número de filas devueltas. Ej: SELECT * FROM productos LIMIT 5
36
¿Para qué se usa LIKE?
Para buscar patrones de texto. Ej: SELECT nombre FROM clientes WHERE nombre LIKE 'J%'
37
¿Qué hace NOT IN?
Filtra valores que no están en una lista. Ej: SELECT * FROM productos WHERE categoria_id NOT IN (1, 2, 3)
38
¿Qué hace BETWEEN?
Filtra valores entre un rango. Ej: SELECT * FROM empleados WHERE salario BETWEEN 2000 AND 5000
39
¿Qué hace IS NULL?
Evalúa si una columna tiene valor NULL. Ej: SELECT * FROM pedidos WHERE fecha_entrega IS NULL
40
¿Qué hace OR en una cláusula WHERE?
Devuelve registros si al menos una condición se cumple. Ej: SELECT * FROM usuarios WHERE rol = 'admin' OR rol = 'supervisor'
41
¿Qué tipo de comandos son CREATE, ALTER y DROP en SQL?
DDL (Data Definition Language), usados para estructurar el esquema de la base de datos.