Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lenguaje SQL
“Lenguaje de Manipulación de Datos (DML) –
Consultas Avanzadas”
Lenguaje de Manipulación de Datos (DML)
Operadores Especiales
Concatenación
Permite concatenar en una sola salida varios campos. Los campos deben ser String,
sino lo son se pueden trasformar utilizando la operación convert (tipo dato, campo)
Este operador se utiliza en la cláusula where, para poder restringir una lista de selección
según un rango de valores.
NOMENCLATURA:
WHERE Nombre_Columna BETWEEN parametro1 AND parametro2
NOTA: parametro1 (Mínimo) y parametro2 (Máximo)
Ejemplo 4: Suponga que queremos ver aquellos productos (Tabla Products) cuyos valores
se encuentran entre los 4 y 20 Dólares.
Select *
from Products
where UnitPrice Between 5.0 and 20.0
Lenguaje de Manipulación de Datos (DML)
Operadores Especiales
IN (Lista)
Select *
from Products
where UnitPrice in (10.0,18.0,19.0)
Lenguaje de Manipulación de Datos (DML)
Operadores Especiales
Like
Esta palabra clave indica el patrón de ajuste con una condición de búsqueda. La
coincidencia de patrones significa analizar una coincidencia entre una expresión y el
patrón especificado en la condición de búsqueda.
NOMENCLATURA:
Columna_Tabla LIKE Patron_de_Busqueda
Si la expresión coincide con el patrón se devuelve un valor booleano TRUE. En caso
contrario se devuelve FALSO. La expresión (COLUMNA_TABLA) debe ser de tipo
carácter.
Los patrones son realmente expresiones de cadena. Y van acompañados de caracteres
de comodín, que colocados en a expresión toman un significado especial.
Lenguaje de Manipulación de Datos (DML)
Operadores Especiales
Like
SELECT LastName
FROM Employees
WHERE LastName LIKE 'S%' – Acá se arma la frase con el comodín
Ejemplo 8: Para recuperar el apellido de los Empleados cuya primera letra comienza
entre <<A>> y <<M>>. Utilice el comodín [ ].
SELECT LastName
FROM Employees
WHERE LastName LIKE '[A-M ]%'
Lenguaje de Manipulación de Datos (DML)
Operadores Especiales
Like
Ejemplo 9: Usar Base de Datos Pubs. Para recuperar la información de un autor cuyo ID
comienza con el numero 724, sabiendo que cada ID tiene el formato de tres dígitos
seguidos por un guión, seguido por dos dígitos, otro guión y finalmente cuatro dígitos.
Utilizar el comodín _ .
Select *
from authors
where au_id LIKE '724-__-____'
Lenguaje de Manipulación de Datos (DML)
Operadores Especiales
IS NULL
Realiza un testeo para valores que son Nulos. Retorna True si la columna es NULL sino
retorna FALSE.
NOMENCLATURA:
WHERE Columna IS NULL
Ejemplo 10: Usar base de datos Northwind. Liste todos los campos de la tabla Suppliers
cuya columna Región sea NULL.
Select *
from Suppliers
where Region is null
Lenguaje de Manipulación de Datos (DML)
Operadores de Agregado
Las funciones de agregado son:
La palabra clave opcional DISTINCT se puede usar con SUM, AVG y COUNT
para eliminar los valores duplicados antes de que se establezca la función de
agregado.
SUM y AVG se pueden usar sólo con columnas numéricas, como, por ejemplo,
las de los tipos de datos int, smallint, tinyint, decimal, numeric, float, real,
money y smallmoney. MIN y MAX no se pueden usar con tipos de datos bit.
El resto de las funciones de agregado que no sean COUNT(*) no se puede usar
con los tipos de datos text e image.
Lenguaje de Manipulación de Datos (DML)
Operadores de Agregado
SUM
NOMENCLATURA:
Ejemplo: Usando la base de dato PUBS. Calcula la suma de las ventas del año
hasta la fecha (ytd_sales) de todos los libros de la tabla titles.
USE pubs
SELECT SUM(ytd_sales)
FROM titles
Lenguaje de Manipulación de Datos (DML)
Operadores de Agregado
AVG
NOMENCLATURA:
NOMENCLATURA:
Ejemplo: Usando la base de dato PUBS. Muestre el mayor valor de las las
ventas del año (ytd_sales) de todos los libros de la tabla titles.
USE pubs
SELECT MAX(ytd_sales)
FROM titles
Lenguaje de Manipulación de Datos (DML)
Operadores de Agregado
MIN
NOMENCLATURA:
Ejemplo: Usando la base de dato PUBS. Muestre el mínimo valor de las ventas
del año (ytd_sales) de todos los libros de la tabla titles.
USE pubs
SELECT MIN (ytd_sales)
FROM titles
Lenguaje de Manipulación de Datos (DML)
Operadores de Agregado
COUNT
NOMENCLATURA:
Ejemplo: Usando la base de datos PUBS. Cuente las filas de la tabla titles.
Use Pubs
SELECT COUNT(*)
FROM titles
Lenguaje de Manipulación de Datos (DML)
Operadores de Agregado
COUNT
Ejemplo: Usando la base de datos PUBS. Cuente los datos de la tabla titles,
cuyo tipo (TYPE) sea business .
Use Pubs
SELECT COUNT(TYPE)
FROM titles
WHERE TYPE = ‘business’
Lenguaje de Manipulación de Datos (DML)
Sentencia GROUP BY
Esta sentencia no permite dividir el resultado de una lista de selección en
grupos más pequeños.
Para poder listar otras columnas con las funciones de agregación se debe
utilizar esta sentencia.
NOMENCLATURA:
Use Pubs
SELECT TYPE,SUM(ytd_sales)
FROM titles
GROUP BY TYPE –Resultados mostrados por TYPE
Ejemplo: (GRUPOS DENTRO DE GRUPOS). Liste las sumas de las ventas por
año (ydt_sales) hasta la fecha, clasificándolas por tipo (TYPE) y pub_id.
Use Pubs
SELECT TYPE, pub_id,SUM(ytd_sales)
from titles
Group by TYPE, pub_id - - El orden de evaluación es TYPE, pub_id
Lenguaje de Manipulación de Datos (DML)
Sentencia GROUP BY – CLAUSULA HAVING
Esta cláusula se utiliza si se desea especificar cuales grupos van a ser
desplegados, o sea, restringir los grupos que retornan.
NOMENCLATURA:
SELECT columnas
FROM Tablas
[WHERE OPCIONAL]
GROUP BY columnas_para_grupos
HAVING condiciones_para_grupos
Ejemplo: Utilizando el ultimo ejemplo. Liste solamente los grupos cuyo pub_id
sea igual a 0877. Utilice HAVING
SELECT columnas_de_las_tablas
FROM tabla1 JOIN tabla2 ON condiciones
Lenguaje de Manipulación de Datos (DML)
TABLAS COMBINADAS
Combinación Interna (Inner Join)
Use Pubs
SELECT s.stor_id as ALMACEN, d.discounttype as DESCUENTO
FROM stores s JOIN discounts d
ON s.stor_id = d.stor_id
Use Pubs
SELECT s.stor_id as ALMACEN, d.discounttype as DESCUENTO
FROM stores s FULL OUTER JOIN discounts d
ON s.stor_id = d.stor_id
Lenguaje de Manipulación de Datos (DML)
TABLAS COMBINADAS
Combinación externa por la izquierda (Left Outer Join)
Devuelve las filas coincidentes más todas las filas de la tabla que se
especifican a la izquierda de la palabra clave JOIN.
Use Pubs
SELECT s.stor_id as ALMACEN, d.discounttype as DESCUENTO
FROM stores s LEFT OUTER JOIN discounts d
ON s.stor_id = d.stor_id
Lenguaje de Manipulación de Datos (DML)
TABLAS COMBINADAS
Combinación externa por la derecha (Right Outer Join)
Use Pubs
SELECT s.stor_id as ALMACEN, d.discounttype as DESCUENTO
FROM stores s RIGHT OUTER JOIN discounts d
ON s.stor_id = d.stor_id
Lenguaje de Manipulación de Datos (DML)
SELECT ANIDADOS
En algunas situaciones es necesario utilizar SELECT anidados para resolver
cierta necesidades de consultas que no pueden ser resueltas utilizando un
único SELECT.
NOMENCLATURA:
SELECT Lista_de_selección
FROM Tablas o Otros Select.
WHERE condiciones [JOIN | SUBCONSULTAS | etc. ]
Lenguaje de Manipulación de Datos (DML)
SELECT ANIDADOS
Ejemplo: Usando base de datos Northwind. Muestre los Productos (ID del
Producto, Nombre y Precio Unitario) que tengan un precio unitario igual al Máximo.
Ejemplo: Usando base de datos Northwind. Muestre los Productos (ID del
Producto, Nombre y Precio Unitario) que tengan un precio unitario igual al Mínimo.
Este operador mezcla los resultados de dos o más consultas en un solo conjunto
de resultados que contiene todas las filas que pertenecen a las consultas de la
unión.
Como restricción las columnas que se obtienen por la UNION en ambas consultas
deben ser del mismo tipo de datos.
NOMENCLATURA:
UNION [ ALL ]
NOTA: Al usar el operador opcional ALL se listan como resultados todas las filas
de ambas consultas. Sino no se utiliza ALL se lista la UNION es decir no se listan
datos duplicados.
Obtenga la suma de los Precios Unitarios, cuyos productos tengan un precio igual
al Máximo precio unitario o al Mínimo precio unitario de la lista de productos.
Sergio Sánchez
Bibliografía