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:
ANDORNOT
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);