Fundamentos y Estructura del Lenguaje SQL para Gestión de Bases de Datos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,93 KB

Características del Lenguaje SQL

  • Conjunto reducido de instrucciones.
  • No procedimental: Es un lenguaje de alto nivel donde se especifica *qué* se quiere hacer, no *cómo* hacerlo.
  • Independencia de datos.
  • Lenguaje estándar de acceso a bases de datos.
  • Se le considera un lenguaje de cuarta generación.
  • Consta de palabras especiales y expresiones.

Componentes del Lenguaje SQL

Cláusulas

Palabras especiales que modifican el funcionamiento de un comando (ejemplos: WHERE, ORDER BY).

Operadores

Crean expresiones complejas:

  • Aritméticos: +, -, *, /, etc.
  • Lógicos: >, <, !=, <>, AND, OR, etc.

Funciones

Para obtener valores complejos (ejemplos: SUM(), DATE()).

Constantes

Valores literales utilizados en las consultas: números, textos, caracteres, etc.

Normas de Escritura

  • No se distingue entre mayúsculas y minúsculas (SQL es insensible a mayúsculas/minúsculas).
  • Las instrucciones finalizan con ;.
  • Los comandos pueden ser divididos por espacios o saltos de línea.
  • Se pueden tabular líneas para mejorar la legibilidad.

Comando SELECT

Sintaxis Básica

El comando fundamental para recuperar datos.

SELECT [DISTINCT] columna1, columna2, ...
FROM tabla
[WHERE filtro];

Ejemplos de SELECT

  • SELECT DISTINCT marca FROM vehiculos;
  • SELECT matricula, modelo, 1+5 FROM vehiculos;
  • SELECT * FROM vehiculos WHERE marca='seat';

Condiciones de Filtrado (WHERE)

Tipos Numérico y Fecha

  • Comparación: <, >, <=, >=, =, <> o !=.
  • Rangos de valores: Atributo BETWEEN valor1 AND valor2.
  • Las fechas van siempre encerradas entre #.

Tipo Alfanumérico

  • Listas de valores: Atributo IN (valor1, valor2, …, valorN).
  • Búsqueda parcial (LIKE): SELECT * FROM vehiculos where modelo LIKE '%tdi%';

Valores Nulos

  • Se comprueba la existencia de un valor: Atributo IS [NOT] NULL. Si el atributo no tiene valor asignado, se considera nulo.

Operadores Booleanos

Para combinar condiciones:

  • AND
  • OR
  • NOT

Ejemplos de Filtrado

-- Filtrado simple
SELECT Nombre FROM jugadores WHERE Nombre_equipo='Lakers';

-- Combinación AND
SELECT codigo,Nombre,Altura FROM jugadores WHERE Nombre_equipo='Lakers' AND Procedencia='Spain';

-- Combinación con paréntesis (precedencia)
SELECT Nombre, Altura,Procedencia FROM jugadores WHERE Nombre_equipo='Lakers' AND (Procedencia='Spain' OR Procedencia='Slovenia');

-- Uso de IN
SELECT Nombre, Altura,Procedencia FROM jugadores WHERE Nombre_equipo='Lakers' AND Procedencia IN ('Spain','Slovenia','Serbia & Montenegro');

-- Uso de BETWEEN
SELECT Nombre,Nombre_equipo,Peso FROM jugadores WHERE Peso BETWEEN 270 AND 300;

-- Uso de IS NULL
SELECT nombre,Nombre_equipo FROM jugadores WHERE Procedencia IS null;

Ordenación de Resultados (ORDER BY)

Sintaxis

[ORDER BY columna1(asc/desc) columna2(asc/desc), ...]

Ejemplo de ORDER BY

SELECT Division,Nombre
FROM equipos
WHERE Conferencia='West' 
ORDER BY Division ASC, Nombre DESC;

Funciones de Agregado

Definición

Operan sobre un conjunto de filas y devuelven un único valor resumen.

SELECT función_de_agregado(argumento)
FROM lista de tablas
[WHERE condiciones]
[ORDER BY lista de atributos]

Funciones Comunes

  • Count(expresión): Calcula el número de registros devueltos por una consulta.
  • Avg(expresión): Calcula la media aritmética de un conjunto de valores.
  • Min(expresión) / Max(expresión): Valor mínimo o máximo de un conjunto de valores.
  • Sum(expresión): Suma de un conjunto de valores.

Ejemplos de Funciones de Agregado

SELECT Sum(PrecioUnidad * Cantidad) AS TotalIngresos FROM pedidos;
SELECT max(peso) FROM jugadores;
SELECT min(altura) FROM jugadores;
SELECT count(*) FROM jugadores WHERE Nombre_equipo='Lakers';
SELECT avg(peso) FROM jugadores WHERE Nombre_equipo='Blazers';

Agrupación de Datos

La Cláusula GROUP BY

Agrupa todos los registros que tienen igual valor en el atributo especificado, permitiendo aplicar funciones de agregado por grupo.

SELECT [DISTINCT]
    columna1, columna2, ...
FROM tabla
[WHERE filtro]
[GROUP BY columna1, columna2....]
[ORDER BY columna1 (asc/desc), columna2 (asc/desc)...]

Ejemplo de GROUP BY

SELECT marca, count(*) FROM vehiculos GROUP BY marca;

La Cláusula HAVING

Aplica una condición sobre los *grupos* definidos por GROUP BY para decidir cuáles se recuperan. A diferencia de WHERE, opera sobre los resultados de las funciones de agregado.

SELECT [DISTINCT] columna1, columna2, ...
FROM tabla
[WHERE filtro]
[GROUP BY columna1, columna2.... ]
[HAVING filtro_grupos]
[ORDER BY columna1 (asc/desc), columna2 (asc/desc) ...]

Ejemplo de HAVING

SELECT Nombre_equipo, avg(peso)
FROM jugadores
GROUP BY Nombre_equipo
HAVING avg(peso) > 228 
ORDER BY avg(peso);

Entradas relacionadas: