T4 - SQL Flashcards

(29 cards)

1
Q

ANTECEDENTES ¿Qué significa SQL? ¿Para qué sirve?

A
  • Structured Query Language
  • Es un lenguaje con el que podemos realizar consultas a bases de datos relacionales
  • Permite crear, modificar, eliminar y consultar datos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

ANTECEDENTES ¿Cuál es el estándar de SQL?

A
  • El estándar oficial es ISO/IEC 9075
  • Define cómo debe funcionar el lenguaje SQL
  • Asegura compatibilidad entre distintos sistemas de bases de datos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

ANTECEDENTES ¿Qué significa que SQL es un lenguaje de 4ª generación (4GL)?

A
  • Significa que es un lenguaje más cercano al humano que al código máquina
  • Es un lenguaje declarativo: tú dices qué quieres obtener, no cómo hacerlo
  • No necesitas escribir los pasos uno a uno (como en un lenguaje imperativo)
  • El sistema se encarga de decidir la mejor forma de ejecutar la consulta
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

ANTECEDENTES ¿Qué significa y para qué sirve SQL/PSM?

A
  • Significa Persistent Stored Modules
  • Es una extensión del estándar SQL
  • Permite usar procedimientos almacenados, bloques de código, variables y estructuras de control
  • Hace que SQL tenga también capacidades procedimentales (es decir, puedes programar paso a paso con condicionales y bucles como en otros lenguajes)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

ANTECEDENTES ¿Qué son los procedimientos almacenados? ¿Quién y dónde se ejecutan?

A
  • Son bloques de código SQL que se guardan dentro de la base de datos
  • Se pueden ejecutar cuando se necesiten, como una función
  • Sirven para automatizar tareas repetitivas y centralizar lógica de negocio
  • Pueden incluir variables, condicionales y bucles
  • Las ejecuta el propio intérprete que funciona como gestor de base de datos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

ANTECEDENTES ¿Cuáles son los productos de SQL de distintas empresas?

A
  • OracleOracle Database
  • MicrosoftSQL Server / Transact-SQL
  • IBMDB2, Informix
  • PostgreSQL Global Dev. GroupPostgreSQL
  • MySQL AB / OracleMySQL
  • MariaDB FoundationMariaDB
  • SQLite ConsortiumSQLite
  • ## SAPMaxDB
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

ANTECEDENTES ¿Qué puertos usan por defecto los productos de SQL más conocidos?

A
  • Oracle Database1521
  • SQL Server (Microsoft) → 1433
  • DB2 (IBM) → 50000
  • Informix (IBM) → 1526
  • PostgreSQL5432
  • MySQL / MariaDB3306
  • SQLite → ❌ No usa puerto (es una base de datos local, sin servidor)
  • MaxDB (SAP) → 7210 (aunque puede variar según configuración)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

LENGUAJE SQL ¿De qué tratan los sublenguajes de SQL y qué significan las letras D, M, L y C?

A
  • DML: Manipula los datos ya existentes en las tablas (consultar, insertar, borrar, modificar)
  • DDL: Define o modifica la estructura de la base de datos (crear o eliminar tablas, columnas, etc.)
  • DCL: Gestiona el acceso y los permisos sobre los datos o estructuras

🧠Las letras significan:
- D → Data (datos)
- M → Manipulation
- L → Language
- C → Control

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

SUBLENGUAJE DDL ¿Cuáles son las sentencias más importantes de DDL según su estándar?

A

🧠 DDL → Define o modifica la estructura de la base de datos (crear o eliminar tablas, columnas, etc.)

Sentencias principales:
- CREATE: crear objetos
- DROP: eliminar objetos
- ALTER: modificar objetos

Objetos que se pueden definir con DDL:
- TABLE: tabla
- INDEX: índice para buscar algo de forma eficiente
- VIEW: consulta ya preparada de forma sencilla
- PROCEDURE: procedimiento almacenado o rutina
- SEQUENCE: generador automático de valores numéricos
- FUNCTION: como un PROCEDURE pero devuelve un valor
- TYPE: definición de tipos personalizados
- TRIGGER: disparadores o rutinas que reaccionan ante eventos
- DOMAIN: dominios de valores válidos para una columna
- SCHEMA: agrupación de objetos por temática
- ROLE: manera de agrupar usuarios

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

SUBLENGUAJE DDL ¿Cuál es la particularidad de la sentencia ALTER TABLE en el modelo DDL? Explica cada una

A
  • La sentencia ALTER TABLE permite modificar la estructura de una tabla ya creada
  • ADD COLUMN: añade una nueva columna
    • Se puede usar con SET DEFAULT, SET NOT NULL, y especificar el tipo de dato
  • ALTER COLUMN: permite cambiar propiedades de una columna existente
  • DROP COLUMN: elimina una columna de la tabla
  • ADD CONSTRAINT: añade una restricción (como PRIMARY KEY, FOREIGN KEY, etc.)

⚠️ No existe la sentencia MODIFY en SQL estándar

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

SUBLENGUAJE DML ¿Cuáles son las sentencias más importantes de DML según su estándar?

A

🧠 DML → Manipula los datos ya existentes en las tablas (consultar, insertar, borrar, modificar)

Sentencias principales:
- SELECT: consulta datos de una tabla
- UPDATE: modifica registros existentes
- INSERT: añade nuevos registros
- DELETE: elimina registros existentes
- MERGE: combina operaciones de INSERT y UPDATE según una condición

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

SUBLENGUAJE DMLLENGUAJE SQL ¿Para qué sirven las funciones de AGREGADO o funciones matemáticas en SELECT en DML?

A
  • Las funciones de agregado permiten realizar cálculos sobre un conjunto de registros en una consulta SELECT
  • Se aplican sobre columnas numéricas o agrupadas para obtener valores resumen

Funciones comunes:
- SUM(): suma los valores de una columna
- COUNT(): cuenta el número de filas (o valores no nulos si se indica una columna)
- MAX() / MIN(): devuelve el valor máximo o mínimo
- AVG(): calcula la media

Ejemplos:
- SELECT SUM(precio) FROM productos
→ Devuelve la suma total de la columna precio
- SELECT COUNT(*) FROM empleados
→ Devuelve el número total de empleados (filas)
- SELECT MAX(salario) FROM empleados
→ Devuelve el salario más alto
- SELECT AVG(edad) FROM clientes
→ Calcula la edad media de los clientes

⚠️ COUNT(columna) no cuenta los valores NULL

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

SUBLENGUAJE DML ¿Qué detalles importantes hay en UPDATE y en el orden de cláusulas en una consulta SELECT en DML?

A

:- UPDATE tabla SET col1 = val1, col2 = val2 WHERE condición

Se puede asignar:
- un valor por defecto (DEFAULT)
- un valor nulo (NULL)
- el resultado de otra consulta (subquery)

SELECT columnas FROM tabla:
- WHERE: filtra registros (AND / NOT / OR)
- GROUP BY: agrupa registros por una o varias columnas
- HAVING: filtra los grupos después de agrupar
- ORDER BY: ordena el resultado (ASC / DESC)

etc

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

SUBLENGUAJE DML ¿Cuál es el orden recomendado de sentencias operacionales en SQL?

A

Orden recomendado de ejecución por el motor SQL:

FROM: indica de qué tabla o tablas se obtienen los datos
WHERE: filtra filas según una condición
GROUP BY: agrupa las filas que tienen valores iguales en una o varias columnas
HAVING: filtra los grupos obtenidos por GROUP BY
SELECT: selecciona las columnas o expresiones que se mostrarán
ORDER BY: ordena el resultado
LIMIT: limita la cantidad de resultados que se muestran

Ejemplo explicado:
SELECT ciudad, COUNT(*) FROM clientes WHERE pais = 'España' GROUP BY ciudad HAVING COUNT(*) > 1 ORDER BY ciudad LIMIT 5

  • FROM clientes: toma la tabla clientes
  • WHERE pais = 'España': filtra solo los de España
  • GROUP BY ciudad: agrupa por ciudad
  • HAVING COUNT(*) > 1: filtra ciudades con más de 1 cliente
  • SELECT ciudad, COUNT(*): selecciona las columnas a mostrar
  • ORDER BY ciudad: ordena alfabéticamente por ciudad
  • LIMIT 5: solo muestra los 5 primeros resultados

⚠️ Estas sentencias forman parte del sublenguaje DML, ya que se usan para trabajar con los datos, no con la estructura de la base de datos (que sería DDL).

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

SUBLENGUAJE DML Explica los elementos de subconsulta

A

Las subconsultas se usan dentro de otras sentencias para hacer filtros avanzados.

  • WHERE EXISTS (...): comprueba si la subconsulta devuelve al menos una fila (devuelve TRUE o FALSE)
  • WHERE [NOT] IN (...): filtra si el valor está (o no) dentro del conjunto devuelto por la subconsulta
  • WHERE ... <operador> ANY / SOME / ALL (...):
    • Compara un valor con todos (ALL) o alguno (ANY / SOME) de los resultados de una subconsulta

Operadores comunes:
- = igual
- >= mayor o igual
- < menor
- <> distinto

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

DML - JOINTS ¿Cuáles son los tipos de JOINS en SQL y qué hacen?

A
  • CROSS JOIN: combina todas las filas de ambas tablas (producto cartesiano)
  • INNER JOIN: muestra solo las filas que coinciden en ambas tablas
  • LEFT [OUTER] JOIN: muestra todas las filas de la tabla izquierda, aunque no haya coincidencias
  • RIGHT [OUTER] JOIN: muestra todas las filas de la tabla derecha, aunque no haya coincidencias
  • FULL [OUTER] JOIN: muestra todas las filas de ambas tablas, coincidan o no
17
Q

SUBLENGUAJE DCL* ¿Cuáles son las sentencias más importantes de DCL y TCL?

A

🧠 DCL → Gestiona el acceso y los permisos sobre los datos o estructuras
- GRANT: dar permisos a usuarios o aplicaciones
- REVOKE: quitar permisos previamente concedidos

  • TCL → Es considerado parte de DCL porque controla lo que se guarda o no tras una serie de operaciones
  • SET TRANSACTION / START TRANSACTION: configura o comienza una transacción atómica
  • COMMIT: consolida los cambios hechos en la transacción y permite comenzar una nueva transacción
  • ROLLBACK: deshace todos los cambios si hay un fallo
  • SAVEPOINT: marca un punto de seguridad parcial, para no deshacer todo

🧠 Transacción: Conjunto de sentencias que se ejecutan como una unidad atómica: o todo se realiza, o nada se guarda

18
Q

DML - UNIONES ¿Qué son las sentencias UNION y UNION ALL?

A

UNION y UNION ALL sirven para combinar los resultados de dos o más consultas SQL
(añaden filas debajo de otras, como apilar resultados)

  • UNION: elimina los duplicados entre los resultados
  • UNION ALL: mantiene todas las filas, incluso las duplicadas

⚠️ Las consultas combinadas deben tener:
- El mismo número de columnas
- El mismo tipo de datos en el mismo orden

Ejemplo:
SELECT nombre FROM empleados_2023
UNION
SELECT nombre FROM empleados_2024
→ Muestra una lista de nombres sin duplicados

SELECT nombre FROM empleados_2023
UNION ALL
SELECT nombre FROM empleados_2024
→ Muestra todos los nombres, incluso los repetidos

19
Q

DML - JOINTS Ejemplos de JOINS

A

INNER JOIN
SELECT * FROM empleados INNER JOIN departamentos
ON empleados.dep_id = departamentos.id
→ Muestra solo los empleados con un departamento asignado

LEFT JOIN
SELECT * FROM empleados LEFT JOIN departamentos
ON empleados.dep_id = departamentos.id
→ Muestra todos los empleados, incluso si no tienen departamento

RIGHT JOIN
SELECT * FROM empleados RIGHT JOIN departamentos
ON empleados.dep_id = departamentos.id
→ Muestra todos los departamentos, incluso si no tienen empleados

FULL JOIN
SELECT * FROM empleados FULL JOIN departamentos
ON empleados.dep_id = departamentos.id
→ Muestra todos los empleados y todos los departamentos

CROSS JOIN
SELECT * FROM empleados CROSS JOIN departamentos
→ Combina cada empleado con cada departamento (combinación total)

20
Q

SUBLENGUAJE DCL¿Qué particularidades tienen las sentencias GRANT y REVOKE en DCL?

A

GRANT:
- Otorga permisos de acceso o acciones sobre objetos de la base de datos a usuarios o roles
- Permisos comunes:
- SELECT: permite consultar datos
- UPDATE: permite modificar datos
- INSERT, DELETE, EXECUTE, etc.
- ALL: otorga todos los privilegios disponibles sobre el objeto
- USAGE: permite utilizar un objeto sin modificarlo (muy usado en SEQUENCES, SCHEMAS o DOMAINS)
- Puede incluir la cláusula WITH GRANT OPTION:
- Permite al usuario conceder a otros los mismos permisos que recibió

REVOKE:
- Retira permisos previamente concedidos
- Si el permiso fue dado con WITH GRANT OPTION, también se revocan los permisos que ese usuario haya dado a otros

21
Q

SUBLENGUAJE DCL ¿Cuál es la diferencia entre GRANT ON y GRANT TO en DCL?

A
  • GRANT ... ON: se usa para especificar el objeto sobre el que se otorgan los permisos
    • Ejemplo: GRANT SELECT ON empleados
  • GRANT ... TO: se usa para especificar el usuario o rol al que se le conceden los permisos
    • Ejemplo: GRANT SELECT ON empleados TO juan
22
Q

LENGUAJE SQL ¿Cuáles son las 4 restricciones (constraints) principales en SQL?

A

Sirven para garantizar la integridad y la validez de los datos en las tablas.

  • PRIMARY KEY: identifica de forma única cada fila
  • FOREIGN KEY: asegura que un valor exista en otra tabla (relación entre tablas)
  • UNIQUE: obliga a que los valores de una columna no se repitan
    (puede haber un solo NULL permitido)
  • CHECK: restringe los valores que se pueden insertar (por ejemplo: edad > 0)
23
Q

LENGUAJE SQL ¿En qué se diferencian DELETE y TRUNCATE?

A

DELETE:
- Elimina filas una a una
- Es transaccional: se puede deshacer con ROLLBACK
- Cada cambio se guarda en los logs de la base de datos
- ⚠️ Si el log se llena (tiene un tamaño máximo), puede dar error

TRUNCATE:
- Borra todas las filas de golpe
- No se puede recuperar con ROLLBACK
- No guarda cambios en el log fila a fila
- Borra directamente las páginas (bloques físicos de almacenamiento donde se guardan las filas)
- Es más rápido, pero también más destructivo

24
Q

COMANDOS ¿Qué sentencia se usa en SQL para poner un alias a una columna?

A
  • Se usa la palabra clave AS para asignar un alias a una columna
  • El alias es un nombre temporal que aparecerá en los resultados
  • También se puede usar sin AS (solo con espacio)
25
**COMANDOS** ¿Para qué sirve el comando `SHOW`?
- El comando `SHOW` se utiliza para **mostrar información del sistema de la base de datos** - Permite ver configuraciones, bases de datos, tablas, variables, usuarios, etc. - Muy usado en sistemas como `MySQL` y `PostgreSQL` - No forma parte del estándar SQL, depende del motor de base de datos
26
**COMANDOS** ¿Para qué sirve la palabra clave `DISTINCT`?
- `DISTINCT` se usa en una consulta `SELECT` para **eliminar los valores duplicados** del resultado - Solo muestra **valores únicos** de las columnas indicadas - Se aplica justo después de `SELECT` ⚠️ Afecta a **toda la fila**: si seleccionas varias columnas, elimina duplicados combinando todas ellas **Ejemplo:** `SELECT DISTINCT ciudad FROM clientes` → Muestra una sola vez cada ciudad que aparece en la tabla `clientes`, aunque haya varios clientes en la misma ciudad
27
**COMANDOS** ¿Para qué sirve la sentencia `DESCRIBE`?
- La sentencia `DESCRIBE` se usa para **mostrar la estructura de una tabla** - Muestra columnas, tipos de datos, si pueden ser `NULL`, claves, etc. - También puede escribirse como `DESC` - Muy utilizada en `MySQL` y `Oracle` - ⚠️ No forma parte del estándar SQL
28
**SUBLENGUAJE `DML`** ¿Cuál es la diferencia entre `subconsulta` y `JOINS`?
- Una `subconsulta` es una consulta dentro de otra, que se ejecuta primero y su resultado se usa como entrada para la consulta principal - Un `JOIN` combina filas de dos o más tablas en una sola consulta, basándose en una condición de relación entre ellas **Diferencias principales:** - `Subconsulta`: suele ir en el `WHERE` o en el `SELECT`, y se ejecuta de forma independiente - `JOIN`: une directamente las tablas para obtener datos relacionados en una sola tabla resultante 📌 Las subconsultas son útiles para filtros complejos 🔗 Los `JOIN` son ideales para ver datos relacionados en una misma fila
29
**`DML - MERGE`** ¿Cómo funciona la sentencia `MERGE`? ¿Qué tipos hay?
La sentencia `MERGE` combina operaciones de `INSERT` y `UPDATE` en una sola instrucción. Sirve para sincronizar dos tablas comparando sus registros. **Estructura general:** - `MERGE INTO`: tabla de destino (la que se actualiza o se inserta) - `USING`: tabla origen (de donde vienen los datos) - `ON`: condición de coincidencia entre ambas tablas - `WHEN MATCHED THEN UPDATE`: si hay coincidencia → se actualiza - `WHEN NOT MATCHED THEN INSERT`: si no hay coincidencia → se inserta ✅ Es muy útil para tareas de sincronización o migraciones de datos