SQL Esencial: Sublenguajes, Sentencias y Consultas Fundamentales para Bases de Datos
Clasificado en Informática
Escrito el en
español con un tamaño de 6,2 KB
SQL: Fundamentos y Operaciones Clave
Como su nombre indica, SQL nos permite realizar consultas a la base de datos. SQL realiza funciones de definición, control y gestión de la base de datos.
Sublenguajes de SQL: DDL, DCL y DML
Las sentencias SQL se clasifican según su finalidad, dando origen a tres 'lenguajes' o, mejor dicho, sublenguajes:
DDL (Data Definition Language)
El DDL, o lenguaje de definición de datos, incluye órdenes para definir, modificar o borrar las tablas en las que se almacenan los datos y las relaciones entre estas. Es el sublenguaje que más varía de un sistema a otro.
DCL (Data Control Language)
El DCL, o lenguaje de control de datos, contiene elementos útiles para trabajar en un entorno multiusuario. Es crucial para la protección de datos, la seguridad de las tablas y el establecimiento de restricciones en el acceso. También coordina la compartición de datos por parte de usuarios concurrentes, asegurando que no interfieran unos con otros.
DML (Data Manipulation Language)
El DML, o lenguaje de manipulación de datos, permite recuperar los datos almacenados en la base de datos. Incluye órdenes para actualizar la base de datos, añadiendo nuevos datos, suprimiendo datos antiguos o modificando datos previamente almacenados.
Estructura de una Sentencia SQL
Una sentencia SQL es comparable a una frase (escrita en inglés) con la que indicamos qué queremos obtener y de dónde obtenerlo.
Todas las sentencias comienzan con un verbo (una palabra reservada que indica la acción a realizar), seguido del resto de cláusulas. Algunas de estas cláusulas son obligatorias y otras opcionales, y son las que completan la frase.
Para que las sentencias se ejecuten correctamente, todas deben seguir una sintaxis específica. Para describir esta sintaxis, utilizaremos un diagrama sintáctico como el que se muestra a continuación.
La Sentencia SELECT: Fundamentos
La sentencia SELECT es fundamental para recuperar datos. Su estructura básica es la siguiente:
- Comienza con la palabra reservada SELECT.
- Opcionalmente, se puede incluir ALL (por defecto) o DISTINCT para manejar filas duplicadas.
- A continuación, se especifica uno o varios nombres de columna, separados por comas.
- Sigue la palabra reservada FROM, indicando la tabla o expresión-tabla de donde se obtendrán los datos.
- Finalmente, de forma opcional, se puede añadir la cláusula WHERE con una condición de búsqueda para filtrar los resultados.
Ejemplos de SELECT
SELECT ALL col1, col2, col3 FROM mitabla;SELECT col1, col2, col3 FROM mitabla;SELECT DISTINCT col1 FROM mitabla;SELECT col1, col2 FROM mitabla WHERE col2 = 0;
Renombrar Tablas (Alias)
Es posible renombrar tablas dentro de una consulta para mayor claridad o para manejar tablas con nombres largos. Por ejemplo:
SELECT ...... FROM oficinas ofi; es equivalente a SELECT ...... FROM oficinas AS ofi;
Esta sentencia indica que los datos se buscarán en la tabla oficinas, la cual es renombrada en esta consulta como ofi.
Cláusula IN para Bases de Datos Externas
Si la tabla no se encuentra en la base de datos activa, debemos indicar en qué base de datos se localiza utilizando la cláusula IN.
En la cláusula IN, el nombre de la base de datos debe incluir la ruta completa, la extensión (por ejemplo, .mdb), y debe estar entre comillas simples.
Ejemplo: SELECT * FROM empleados IN 'c:\mis documentos\otra.mdb';
Selección de Columnas
Uso del Asterisco (*)
El asterisco (*) en la lista de selección se utiliza para indicar 'todas las columnas de la tabla'.
Ejemplo: SELECT * FROM oficinas;
Nombres de Columnas Simples y Cualificados
Las columnas se pueden especificar mediante su nombre simple (por ejemplo, nbcol) o su nombre cualificado (por ejemplo, nbtabla.nbcol), donde el nombre de la columna es precedido por el nombre de la tabla que la contiene, separados por un punto.
Cuando el nombre de la columna o de la tabla contiene espacios en blanco, es necesario encerrar el nombre entre corchetes [ ].
Ejemplo: SELECT nombre, oficina, contrato FROM ofiventas;
Columnas Calculadas
Una consulta SQL puede incluir columnas calculadas, cuyos valores se derivan de los datos almacenados.
Ejemplo: SELECT idfab, idproducto, descripcion, (existencias * precio) AS valoracion FROM productos;
Ordenación de Resultados (ORDER BY)
Podemos indicar la columna por la que queremos ordenar los resultados utilizando su nombre de columna (por ejemplo, nbcolumna) o su número de orden en la lista de selección (por ejemplo, Nºcolumna).
Por defecto, el orden es ascendente (ASC):
- De menor a mayor si el campo es numérico.
- Por orden alfabético si es de texto.
- De anterior a posterior si el campo es de tipo fecha/hora.
Podemos alterar este orden a descendente utilizando la palabra reservada DESC.
Manejo de Filas Duplicadas (DISTINCT y ALL)
Al incluir la cláusula DISTINCT en la sentencia SELECT, se eliminan las filas duplicadas de los resultados.
Si deseamos obtener todas las filas, incluidas las duplicadas, podemos especificar ALL o simplemente omitir esta cláusula, ya que ALL es el valor por defecto.