Está en la página 1de 5

ISQL Session 1 (Clase20071027) : parte3.

sql

//* ----------------------------------------------------------------------------------
//* Universidad Católica Nuestra Señora de la Asunción
//* Facultad de Ciencias y Tecnología
//* Departamento de Análisis de Sistemas
//* Cátedra de Informática 4
//* Prof: Ing. César Albospino
//* Guía para la Clase del Lun/27/OCT/2007 - Parte 3
//* ----------------------------------------------------------------------------------
//*
//* INTRODUCCIÓN AL LENGUAJE SQL
//*
//* Recuperación de información (SELECT)
//*
//* Estructura Básica del SELECT
//*
/*
Select <lista de atributos>
from <tablas>
where <condiciones>
order by <lista de atributos>
\

donde la barra inclinada de izquierda a derecha "\" actua


como terminador de la instrucción (caracter que marca el fin de la instrucción).
Puede utilizarse cualquier caracter especial como terminador de instrucción,
como ser; ';' o '?' o '!', etc. Se debe tener cuidado de no elegir caracteres
que sean comunes en las partes de las instrucciones SQL.

*/
//*
//*--------------------------------------------------------------------------------*
//* Ejercicio 1: selección total.
//*
//* Caso 1.1: muestra todas las columnas y todas las filas de la tabla "Productos"

select *
from productos
\

//* Caso 1.2: muestra todas columnas y todas las filas de la tabla "productos",
//* con las filas ordenadas por nombre.

//* 1.2.a: en forma ascendente (asc):

select *
from productos
order by nombre asc
\

//* Nota: el parámetro "asc" es opcional, pues por omisión (default)


//* el SQL toma (asc)endente.

//* 1.2.b: en forma descendente (desc):

select *
from productos
order by nombre desc
\

//* 1.2.c: también se puede indicar el número de orden de la columna.


//* La columna 2 es el nombre.

select *
from productos
order by 2
\
//* o

select *
from productos
order by 2 desc
\

//* Caso 1.3: muestra todas las columnas y filas de la tabla de "compras",
//* con las filas ordenadas por fecha, y para fechas iguales,
//* por producto.

select *
from ventas
order by fecha, producto
\

//*--------------------------------------------------------------------------------*
//* Ejercicio 2: filtrado de columnas (solo muestra algunas columnas)
//*
//* Caso 2.1: muestra algunas columnas y todas las filas de la tabla "ventas",
//* con las filas ordenadas por venta.

select venta, fecha, producto, nombre_producto, cantidad, total


from ventas
order by venta
\

//* Caso 2.2: con las filas ordenadas por un atributo que no se muestra (deposito)

select venta, fecha, producto, nombre_producto, cantidad, total


from ventas
order by deposito
\

//* Caso 2.3: con las filas ordenadas por dos atributos calculados.
//* Nombre_producto (ascendente) y total (descendente)

select venta, fecha, producto, nombre_producto, cantidad, total


from ventas
order by nombre_producto asc, total desc
\

//*
//*--------------------------------------------------------------------------------*
//* Ejercicio 3: filtrado de filas (solo muestra algunas filas)
//
//* Caso 3.1: muestra todas las columnas y solo una fila de la tabla "productos"
//* (filtrado por clave primaria)

select *
from productos
where producto = 20
\

//* Caso 3.2: muestra todas las columnas y solo algunas filas de la tabla "productos",
//* con las filas ordenadas por nombre.

select *
from productos
where producto between 20 and 40
order by nombre
\

//* Caso 3.3: muestra todas las columnas y solo algunas filas de la tabla de "ventas",
//* con las filas ordenadas por deposito, producto y fecha.

select *
from ventas
where producto > 20
and fecha between '2007/10/24' and '2007/10/30'
order by deposito, producto, fecha
\

//*--------------------------------------------------------------------------------*
//* Ejercicio 4: operadores lógicos y de comparación. Like e In().
//*
//* Caso 4.1: selección por igualdad

select venta, fecha, deposito, producto, nombre_producto, cantidad, total


from ventas
where nombre_producto = 'USB Mouse'
order by venta
\

//*
//* Caso 4.2: selección menor, mayor o distinto
//*
//* 4.2.a: menor que

select venta, fecha, deposito, producto, nombre_producto, cantidad, total


from ventas
where fecha < '2007/10/25'
order by venta
\

//* 4.2.b: mayor que


select venta, fecha, deposito, producto, nombre_producto, cantidad, total
from ventas
where fecha > '2007/10/25'
order by venta
\

//* 4.2.c: distinto que


select venta, fecha, deposito, producto, nombre_producto, cantidad, total
from ventas
where fecha <> '2007/10/25'
order by venta
\

//* 4.2.d: rango con menor y mayor o igual que


select venta, fecha, deposito, producto, nombre_producto, cantidad, total
from ventas
where producto >= 20 and producto <= 40
order by venta
\

//*
//* Caso 4.3: selección con operadores AND, OR y NOT
//*
//* 4.3.a: AND

select venta, fecha, deposito, producto, nombre_producto, cantidad, total


from ventas
where fecha <> '2007/10/25'
and producto > 20
order by venta
\

//* 4.3.b: NOT y AND

select venta, fecha, deposito, producto, nombre_producto, cantidad, total


from ventas
where not (fecha <> '2007/10/25'
and
producto > 20
)
order by venta
\

//* 4.3.c: OR

select venta, fecha, deposito, producto, nombre_producto, cantidad, total


from ventas
where fecha <> '2007/10/25'
or producto > 20
order by venta
\

//* 4.3.d: NOT y OR

select venta, fecha, deposito, producto, nombre_producto, cantidad, total


from ventas
where not( fecha <> '2007/10/25'
or
producto > 20
)
order by venta
\

//*
//* Caso 4.4: seleccción de filas utilizando LIKE (semejante o parecido a)
//*
//* 4.4.a: muestra aquellas filas que comienzan con 'CD', sin importar
// que tienen a continuación. El caracter '%' es un comodín,
//* que debe interpretarse como "cualquier caracter".

select venta, fecha, deposito, nombre_producto, cantidad, total


from ventas
where nombre_producto like 'CD%'
order by venta
\

//* 4.4.b: muestra aquellas filas que terminan con 'CD', sin importar
// que tienen antes.

select venta, fecha, deposito, nombre_producto, cantidad, total


from ventas
where nombre_producto like '%CD'
order by venta
\

//* 4.4.c: muestra aquellas filas que tienen 'CD' en cualquier parte.

select venta, fecha, deposito, nombre_producto, cantidad, total


from ventas
where nombre_producto like '%CD%'
order by venta
\

//* 4.4.d: muestra aquellas filas que NO tienen 'CD' en parte alguna.

select venta, fecha, deposito, nombre_producto, cantidad, total


from ventas
where nombre_producto not like '%CD%'
order by venta
\

//* 4.4.e: muestra aquellas filas que tienen 'CD' o 'USB' en alguna parte.

select venta, fecha, deposito, nombre_producto, cantidad, total


from ventas
where nombre_producto like '%CD%'
or nombre_producto like '%USB%'
order by venta
\
//* 4.4.f: muestra aquellas filas que comiencen con 'U' y tengan una 'e'
//* en alguna parte.

select venta, fecha, deposito, nombre_producto, cantidad, total


from ventas
where nombre_producto like 'U%e%'
order by venta
\

//* 4.4.g: muestra aquellas filas que tienen primero una 'O' y luego
//* una 'e' o una 's' en alguna parte.

select producto, nombre


from productos
where nombre like '%O%[e|s]%'
order by nombre
\

//* 4.4.h: cuando se desea buscar muestra aquellas filas que contienen el
//* caracter comodín '%' se puede hacer:

select producto, nombre


from productos
where nombre like '%[%]%'
order by nombre
\

//*-------------------------------------------------------------------------------------------
//* Ejercicio 5: in()
//* muestra los productos incluidos en la lista indicada
select producto, nombre
from productos
where nombre in ('CDs', 'DVDs', 'Porta CD')
order by producto\

//*-------------------------------------------------------------------------------------------
//* Ejercicio 6: exists()
//* Muestra todos los productos que tuvieron ventas.

select producto, nombre


from productos
where exists(select 1 from ventas where ventas.producto = productos.producto)\

//* Ejercicios
//*
//* Ejercicio 1: Cuales son todas la ventas de "USB Mouse" cuya cantidad que sea mayor a cinco?
//* Ejercicio 2: Cuales son los productos que no tuvieron venta alguna?
//* Ejercicio 2: Cuales son los productos que tuvieron compras y ventas?

También podría gustarte