Fundamentos de SQL: Preguntas y Respuestas Clave

Comandos SQL Esenciales

  • ¿Qué significan las iniciales SQL? Structured Query Language.
  • Comando usado para crear tablas en SQL: CREATE.
  • WHERE es un operador usado en SQL. Falso (es una cláusula).
  • SQL distingue entre mayúsculas y minúsculas en comandos. Falso.
  • ¿Cuál NO es un tipo de datos de Oracle? INT.
  • Tipo de restricción que se utiliza para marcar claves ajenas: REFERENCES.
  • ¿Qué comando NO pertenece al lenguaje DML? CREATE.
  • Comando y sentencia para seleccionar todos los resultados de una búsqueda: SELECT *.
  • Cláusula para limitar el resultado de una búsqueda a unas condiciones concretas: WHERE.
  • Si una consulta hace uso de la cláusula ORDER BY, los valores se mostrarán, por defecto, en orden descendente. Falso (por defecto es ascendente).
  • En una consulta, por defecto, los datos nulos se colocan al final. Verdadero.
  • ¿Cuál NO es una función de agregado? MID.
  • Símbolo que se usa seguido del “=” para indicar que vamos a trabajar con una variable de sustitución: &.
  • ¿Qué tipo de Operador es “AND“? Lógico.
  • ¿Cuál no es un tipo de operador? Igualación.
  • ¿Qué se utiliza para concatenar campos? ||.
  • Entre los siguientes operadores, ¿cuál se ejecutaría primero? NOT.
  • Función que devuelve la fecha actual incluyendo la hora: SYSTIMESTAMP.

Consultas Multitabla y Joins en SQL

  • ¿Cuál NO es una cláusula usada para unir varias tablas en una búsqueda? UPPER JOIN.
  • En una consulta multitabla, las tablas que se utilizan y su relación aparecen: En la cláusula FROM.
  • Las composiciones externas pueden ser del tipo: LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN. (Respuesta: Todas las anteriores).
  • Las composiciones internas pueden ser del tipo: INNER JOIN.
  • Cláusula que comprueba si una subconsulta devuelve algún valor: EXISTS.

Comandos DML y Manipulación de Datos

  • ¿Qué comando NO es DML? MODIFY.
  • El nombre de los campos a insertar es obligatorio. No, si se indican todos los campos y están en el mismo orden.
  • El comando UPDATE necesita una cláusula WHERE. Falso (es opcional, pero sin ella actualiza todos los registros).
  • DELETE FROM "NombreTabla": Borrará todos los registros de esa tabla.
  • Es posible usar el resultado de un SELECT como parámetro para un INSERT/UPDATE/DELETE. Verdadero.

Categorías de Comandos SQL

DDL (Data Definition Language)

Son comandos que se utilizan para definir y gestionar la estructura de la base de datos, incluyendo la creación, modificación y eliminación de objetos como tablas y restricciones.

  • CREATE
  • ALTER
  • DROP
  • TRUNCATE
  • CONSTRAINTS (se define con CREATE TABLE o ALTER TABLE)

DML (Data Manipulation Language)

Está formado por comandos para acceder y manipular la información contenida en las tablas de la base de datos, permitiendo modificar, añadir o borrar datos.

  • SELECT
  • INSERT
  • DELETE
  • UPDATE

DCL (Data Control Language)

Permite asignar permisos a usuarios y roles (GRANT) o revocarlos (REVOKE) mediante la utilización de sus comandos.

  • GRANT
  • REVOKE

Diferencias Clave en SQL

WHERE vs. HAVING

La cláusula WHERE se utiliza para filtrar registros individuales, mientras que la cláusula HAVING se utiliza para filtrar grupos de registros basados en valores de agregación.

ALTER vs. MODIFY vs. UPDATE

  • ALTER se utiliza para modificar la estructura de una tabla (ej. añadir/eliminar columnas).
  • MODIFY se utiliza para modificar la definición de una columna existente en una tabla (ej. cambiar tipo de dato, tamaño).
  • UPDATE se utiliza para modificar el contenido de las filas en una tabla.

Sintaxis y Conceptos Fundamentales de SQL

Sintaxis Básica de SQL

  • No distingue mayúsculas y minúsculas en los comandos (aunque sí en los datos, dependiendo de la configuración).
  • Se recomienda colocar ; al final de cada instrucción para delimitarla.
  • Se permite la inserción de espacios o saltos de línea para mejorar la legibilidad.
  • Los comentarios se pueden añadir usando /* Comentario */ para bloques o -- Comentario para una línea.
  • La estructura general sigue el patrón: Comando + Cláusula + Operadores + Funciones.

Conceptos Clave

Primary Key (Clave Primaria)

Restricción que asegura que no haya valores repetidos o nulos en una o varias columnas de una tabla, utilizada para identificar de forma única cada registro.

Foreign Key (Clave Foránea)

Restricción que se establece en una o varias columnas de una tabla para establecer una relación con otra tabla y garantizar la integridad referencial entre ellas.

Funciones de Sistema

Funciones integradas en SQL o en el sistema de gestión de bases de datos que permiten realizar operaciones complejas con datos, como cálculos matemáticos, manipulación de cadenas o fechas.

SYSDATE

Función de sistema en Oracle que devuelve la fecha y hora actuales del sistema.

MAX

Función de agregación en SQL utilizada para obtener el valor máximo en una columna.

AVG (AVERAGE)

Función de agregación en SQL utilizada para calcular el promedio de los valores en una columna.

Ejemplos Prácticos de Consultas SQL

Consultas de Selección y Filtrado

Búsqueda de productos con precio inferior a 100€

SELECT * FROM producto WHERE precio < 100;

Búsqueda de productos ordenados por precio ascendente

SELECT * FROM producto ORDER BY precio ASC;

Búsqueda de productos por fabricante

SELECT * FROM producto WHERE id_fabricante = 4;

Ejemplos de Inserción y Modificación

Inserción de un nuevo departamento ‘SciFi’

INSERT INTO department VALUES (504, 'SciFi');

Añadir una restricción CHECK para la edad

ALTER TABLE Customers ADD CHECK (Age BETWEEN 0 AND 99);

Consultas Avanzadas y Agregación

Precio medio de productos por fabricante

SELECT id_fabricante, AVG(precio) FROM producto GROUP BY id_fabricante;

Producto con el precio más alto

SELECT * FROM producto WHERE precio >= ALL (SELECT precio FROM producto);

Combinar nombres de productos y fabricantes

SELECT nombre FROM producto UNION SELECT nombre FROM fabricante;

Tipos de Joins en SQL

Composición Externa (Outer Join)

La composición externa se utiliza para combinar dos tablas y mostrar los registros que coinciden en ambas, pero también puede incluir los registros que no tienen una coincidencia en la otra tabla.

LEFT OUTER JOIN

Devuelve todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha. Si no hay coincidencia en la tabla derecha, los valores serán NULL.

RIGHT OUTER JOIN

Devuelve todos los registros de la tabla derecha y los registros coincidentes de la tabla izquierda. Si no hay coincidencia en la tabla izquierda, los valores serán NULL.

Composición Interna (Inner Join)

La composición interna se utiliza para combinar dos tablas y mostrar solo los registros que tienen valores coincidentes en ambas tablas.

INNER JOIN

Devuelve solo los registros que tienen valores coincidentes en ambas tablas.

CROSS JOIN

Devuelve el producto cartesiano de dos tablas, es decir, combina cada fila de la primera tabla con todas las filas de la segunda tabla.