170 likes | 321 Views
INF340. Consultas SQL. Fernando Velasco fernando.velasco.p@mail.pucv.cl. En Toma !. Planificación específica. SQL. SQL (structured query languaje) Es un lenguaje de consultas, lo que significa que si hacemos la PREGUNTA correcta obtendremos la RESPUESTA que deseamos. SQL.
E N D
INF340. Consultas SQL Fernando Velasco fernando.velasco.p@mail.pucv.cl En Toma !
SQL. • SQL (structured query languaje)Es un lenguaje de consultas, lo que significa que si hacemos la PREGUNTA correcta obtendremos la RESPUESTA que deseamos.
SQL. Deseo comprar un vehículo. 1. Qué vehículos ofrece? 2. Me encanta el color verde !!.. Me puede mostrar algún vehículo verde? 3. Necesito uno que tenga ruedas.. Me puede mostrar los que tengan ruedas? . ME PUEDE MOSTRAR LOS VEHÍCULOS QUE UD. OFRECE LOS CUALES TENGAN RUEDAS Y SEAN DE COLOR VERDE?
Consultas simples SQL. SELECT c.nombre, c.rut FROM cliente c WHERE c.rut<16000111; = SELECT nombre, rut FROM cliente WHERE rut<16000111;
Consultas JOIN SQL. • Una respuesta puede venir de 2 o más tablas distintas, se le llama TABLAS COMBINADAS. • Para consultar las tablas combinadas usaremos la palabra reservada JOIN. • Existen variados tipos de combinaciones de tablas, tales como; inner join, full outer join, left outer join, right outer join. • Inner Join: combinación por defecto, especifica que se han de incluir en la respuesta filas de la columna que satisfaga la condicion ON. • Full Outer Join: especifica que en la respuesta se han de incluir las filas que satisfacen como las que no satisfacen con la condición. En el campo donde la condición no coincide, se coloca NULL. • Left Outer Join: devuelve las filas coincidentes con la condición, más las filas de la tabla que se especifican a la izquierda de la palabra JOIN. • Right Outer Join: devuelve las filas coincidentes con la condición, más las filas de la tabla que se especifican a la derecha de la palabra JOIN.
Ejemplos JOIN SQL. • “Para consultar las tablas combinadas usaremos la palabra reservada JOIN.” • Inner Join: • select s.store_id as almacen, d.tipo_dscto as descuento • from stores s join discount d • ON s.store_id=d.store_id • Full Outer Join: • select s.store_id as almacen, d.tipo_dscto as descuento • from stores s full outer join discount d • ON s.store_id=d.store_id
Ejemplos JOIN SQL. • “Para consultar las tablas combinadas usaremos la palabra reservada JOIN.” • Left Outer Join: • select s.store_id as almacen, d.tipo_dscto as descuento • from stores s left outer join discount d • ON s.store_id=d.store_id • Right Outer Join: • select s.store_id as almacen, d. tipo_dscto as descuento • from stores s right outer join discount d • ON s.store_id=d.store_id
JOIN vs SelectWhere(). select s.store_id as almacen, d.tipo_dscto as descuento from stores s join discount d ON s.store_id=d.store_id = select s.store_id as almacen, d.tipo_dscto as descuento from stores s, discount d WHERE s.store_id=d.store_id
JOIN vs SelectWhere(). select s.store_id as almacen, d.tipo_dscto as descuento from stores s full outer join discount d ON s.store_id=d.store_id != select s.store_id as almacen, d.tipo_dscto as descuento from stores s, discount d WHERE s.store_id=d.store_id
Consultas anidadas SQL. Algunas respuestas no pueden ser entregadas usando solo un Select. En estos casos es necesario utilizar SELECT ANIDADOS para satisfacer ciertas necesidades. Es decir, un select dentro de otro, y así sucesivamente. /*Al consultar un SELECT se genera una tabla temporal que guarda la lista de la respuesta al Select*/ Así mismo, se entiende: --Mostrar todos los productos que tengan precio de compra --igual al menor precio de compra. SELECT * FROM bodega WHERE (id_producto =(SELECT id_producto FROM producto WHERE precio_compra<500))
cliente pedido Detalle_pedido producto
Consultas. • Mostrar el nombre del cliente que ha hecho el pedido más caro. • Calcular el total del pedido del cliente de nombre ‘Alfonso de Ercilla’. • Mostrar el rut de los clientes que han hecho y que no han hecho pedidos (mostrando si realizaron o no el pedido claramente).