Documente Academic
Documente Profesional
Documente Cultură
CONSULTA DE SELECCIN
Este tipo de consulta obtiene los datos de una o ms tablas y muestra los
resultados en una hoja de datos en donde se pueden actualizar los registros.
Tambin se utiliza para agrupar registros para poder calcular sumas,
promedios y hallar totales.
Producto:
Cod_Prod
Cod_Cat
Producto
Marca
Inventario:
N_Inv
Cod_Prod
Pre_compra
Pre_venta
Unidad
Stock
O la sintaxis abreviada:
SELECT Producto, Marca, Pre_compra, Pre_venta
FROM Producto, Inventario
WHERE Producto.Cod_Prod = Inventario.Cod_Prod
Si se quiere visualizar el nombre de la categora, el producto, la marca y su
stock, tenemos que usar la siguiente sentencia:
SELECT Categoria, Producto, Marca, Stock
FROM Categoria, Producto, Inventario
WHERE Categoria.Cod_Cat= Producto.Cod_Cat AND
Producto.Cod_Prod = Inventario.Cod_Prod
Esta sentencia nos va a permitir visualizar dichos datos pero no nos permite
actualizarlos.
INNER JOIN
Para poder actualizar el conjunto de resultados, se reemplaza a la sentencia
WHERE por INNER JOIN. Se utiliza para generar una vista que contenga solo
aquellos registros que tengan una correspondencia exacta en ambas tablas.
Si empleamos la clusula INNER en la consulta se seleccionarn slo aquellos
registros de la tabla de la que hayamos escrito a la izquierda de INNER JOIN
que contengan al menos un registro de la tabla que hayamos escrito a la
derecha.
SELECT
Producto.Producto,
Producto.Marca,
Inventario.Pre_venta
FROM Producto INNER JOIN Inventario
ON Producto.Cod_Prod = Inventario.Cod_Prod
Inventario.Pre_compra,
Se puede utilizar INNER JOIN con las tablas Categoria y Producto para
seleccionar todos los productos de cada categoria.
Pero si se quiere seleccionar todos las categorias (incluso si alguna de ellas no
tiene ningn producto) se emplea LEFT JOIN, o todos los productos (incluso si
alguno no est asignado a ninguna categoria), en este caso RIGHT JOIN.
LEFT toma todos los registros de la tabla de la izquierda aunque no tengan
ningn registro en la tabla de la izquierda. RIGHT realiza la misma operacin
pero al contrario, toma todos los registros de la tabla de la derecha aunque no
tenga ningn registro en la tabla de la izquierda.
CONSULTA DE ACCION
Es una consulta que tiene la capacidad de modificar los registros. Las
consultas de accin no devuelven un conjunto de resultados, sino que realizan
cambios permanentes en los datos.
Consulta de anexin
Consulta de actualizacin
Ejemplo:
Aumentar el precio de venta en un 10%
UPDATE Inventario
SET Precio_venta = Pre_venta * 1.1
Aumentar en un 10% el precio a los productos cuyo precio de venta sea
mayor a 20
UPDATE Inventario
SET Pre_venta = Pre_venta * 1.1
WHERE Pre_venta > 20
Consulta de eliminacin
CONSULTA DE COMBINACION
Fusiona el contenido de dos tablas que tienen estructuras de campos
similares. Resulta til en situaciones en las que es necesario mostrar en un
nico conjunto de resultados los registros no relacionados de varias fuentes.
Ejemplo:
Si queremos visualizar los datos antiguos y nuevos de los productos
SELECT * FROM Inventario
UNION
SELECT * FROM Sobrantes
SELECT Cod_Producto, Pre_compra FROM Inventario
UNION
SELECT Cod_Producto, Pre_compra FROM Sobrantes
SUBCONSULTAS
Este tipo de consulta consta de una instruccin SQL SELECT dentro de otra
consulta de seleccin o consulta de accin. Es una consulta cuyo resultado se
utiliza como criterio de otra consulta. Las subconsultas se hacen
normalmente dentro de las expresiones WHERE.
Ejemplo:
Visualizar los datos de los productos cuyo precio de compra sea mayor que el
promedio de precio de compra de todos los productos de la tabla.
SELECT *
FROM Inventario
WHERE Pre_compra > (SELECT AVG(Pre_compra) FROM Inventario)
Visualizar los productos que no tienen inventario
SELECT *
FROM Producto
WHERE Cod_Prod NOT IN ( SELECT Cod_Prod FROM Inventario)
Campo
Tipo
Dpto
Dpto
Cod_Dpto
Departamento
Texto
Texto
Empleado
Empleado
Empleado
Empleado
Empleado
Empleado
Cod_Emp
Nombres
Apellidos
Edad
Salario
Cod_Dpto
Texto
Texto
Texto
Numrico
Numrico
Texto
Cliente
Cliente
Cliente
Cliente
Cliente
Cod_Cliente
Nombres
Apellidos
Ciudad
Cod_Emp
Texto
Texto
Texto
Texto
Texto
order by Departamento
and
Empleado.Cod_Emp = Cliente.Cod_Emp
and
and
Empleado.Cod_Emp = Cliente.Cod_Emp
Edad < 29
Seleccionar el cdigo del empleado, nombres , apellidos y ciudad de sus clientes cuya
ciudad empiece con la letra B
select Empleado.Cod_Emp, Cliente.Apellidos, Cliente.Nombres, Ciudad
from
Empleado, Cliente
Ciudad Like B*
Cliente )
Cliente )
Visualizar los nombres de los empleados cuyo salario es igual o mayor que el salario
medio de todos los empleados.
SELECT Apellido, Nombres FROM Empleados
WHERE Salario >= (SELECT Avg(Salario) FROM Empleados
AS
from
where
group
Dpto.Departamento,
SUM(salario) AS suma_salario,
MAX(salario) AS max_salario,
MIN(salario) AS min_salario,
AVG(salario) AS Prom_salario
Dpto, Empleado
Dpto.Cod_Dpto = Empleado.Cod_Dpto
by Dpto.Departamento