2. Ejercicio SQL
Autor: judith Verónica Montilla Pirela 2
Ejercicio Propuesto
Dada la siguiente base de datos:
CLIENTE (Cod_Cli, Nomb_Cli, Apell_Clie, Calle, Urb, Nro_Casa, Piso, Ciudad, Telef_Cli).
PRODUCTOS (Cod_Prod, Desc_Prod, Precio_Unit).
EXISTENCIA_X_PRODUCTO (Cod_Prod, Cant_Exist).
SALIDAS DE ALMACEN (Nro_Orden_Salida, Cod_Cli, Cod_Prod, Cant_Prod, Fecha_Salida).
ENTRADAS POR DEVOLUCIÓN (Nro_Nota_Dev, Fecha_Nota_Dev, Cod_Cli, Cod_Prod, Cantidad_Dev,
Motivo_Dev).
Las instrucciones SQL aplicada en clases, se requiere lo siguiente:
1. Creación de la base de datos y las tablas.
2. Actualizar el teléfono del cliente Pedro Perez de 0276-5528899 a 0416-5587410.
3. Seleccionar el código y el teléfono de todos los clientes que realizaron devoluciones del
producto “ABC” en el año 2008.
4. Seleccionar el nombre y apellido del cliente, la descripción y precio todos los productos que
tengan en existenciauna cantidad superior a 5000 unidades y que suprecio seamenor a 1000
Bs, que hayan salido del almacén en el mes de septiembre del año 2009 y que hayan sido
devueltos en el mismo mes, y ordenarlos ascendentemente por fecha de salida.
Solución:
Pasos para la resolución del problema:
a. Crear base de datos y tablas
Sintaxis de creación de base de datos: Create DataBase <Nombre de la base de datos>. El nombre
que se le dara será TallerSQL.
Create DataBase TallerSQL;
Sintaxis de creación de tablas: Create Table <nombre de la tabla> (
<campo1 TIPOcampo1, campo2 TIPOcampo2,…, campoN TIPOcampoN>,
PRIMARY KEY (<nombre del campo más importante>)).
Las palabras en negrita son palabras reservadas y deben escribirse tal cual lo exige el manual de SQL.
Los nombres de las tablas no deben contener espacios. El primary Key va permitir que la búsqueda
de elementos en la tabla sea más rápida y eficiente.
Create Table CLIENTE(Cod_Cli LONG, Nomb_Cli TEXT, Apell_Clie TEXT, Calle TEXT, Urb TEXT,
Nro_Casa LONG, Piso LONG, Ciudad TEXT, Telef_Cli LONG, PRIMARY KEY (Cod_Cli));
3. Ejercicio SQL
Autor: judith Verónica Montilla Pirela 3
Create Table PRODUCTOS (Cod_Prod LONG, Desc_Prod TEXT, Precio_Unit SINGLE,
PRIMARY KEY (Cod_Prod));
Create Table EXISTENCIA_X_PRODUCTO (Cod_Prod LONG, Cant_Exist LONG,
PRIMARY KEY(Cod_Prod));
Create Table SALIDAS_DE_ALMACEN(Nro_Orden_Salida LONG, Cod_Cli TEXT,
Cod_Prod LONG, Cant_Prod LONG, Fecha_Salida DATE,
PRIMARY KEY (Nro_Orden_Salida));
Create Table ENTRADAS_POR_DEVOLUCION(Nro_Nota_Dev LONG,
Fecha_Nota_Dev DATE, Cod_Cli LONG, Cod_Prod LONG, Cantidad_Dev LONG,
Motivo_Dev TEXT, PRIMARY KEY (Nro_Nota_Dev));
b. Actualizar el teléfono del cliente Pedro Pérez de 0276-5528899 a 0416-5587410.
Sintaxis de actualización de registros: UPDATE <tabla> SET <campo> = <valor> where <condiciones
bajo las cuales realizar la actualización>. Entre las condiciones se pueden utilizar operadores lógicos
como Or, Not y And.
Update CLIENTE Set Telef_Cli = 0416-5587410 where Telef_Cli = 0276-5528899 And
Nomb_Cli=‘Pedro’ And Apell_Clie=‘Pérez’
c. Selección el código y el teléfono de todos los clientes que realizaron devoluciones del producto
“ABC” en el año 2008
Sintaxis para seleccionar columnas de una tabla: Select <nombre de columna1>, <nombre de
columna2>… from <nombre de tabla> where <condiciones de selección>. Este comando tiene
muchas formas de ser utilizado:
Link: Ver https://msdn.microsoft.com/en-us/library/h09t6a82(v=vs.80).aspx).
Para referirse a una columna que se repite en otras tablas es importante que se le coloque el nombre
de la tabla a la cual pertenece seguida de un punto y luego del nombre de la columna.
4. Ejercicio SQL
Autor: judith Verónica Montilla Pirela 4
Select CLIENTE.Cod_Cli, CLIENTE.Telef_Cli from CLIENTE where
ENTRADAS_POR_DEVOLUCION.Cod_Cli=CLIENTE.Cod_Cli And
ENTRADAS_POR_DEVOLUCION.Cod_Prod=‘ABC’ And
ENTRADAS_POR_DEVOLUCION.Fecha_Nota_Dev=‘__/__/2008’
d. Seleccionar el nombre y apellido del cliente, la descripción y precio todos los productos que
tengan en existencia una cantidad superior a 5000 unidades y que su precio sea menor a 1000 Bs.
Que hayan salido del almacén en el mes de septiembre del año 2009 y que hayan sido devueltos
en el mismo mes, y ordenarlos ascendentemente por fecha de salida.
Sintaxis para seleccionar columnas de varias tablas: Select <nombre de columna1>, <nombre de
columna2>… from <nombre de tabla1>,<nombre de tabla2> where <condiciones de selección>.
Select CLIENTE.Nomb_Cli, CLIENTE.Apell_Clie, PRODUCTOS.Desc_Prod, PRODUCTOS.Precio_Unit
from CLIENTE, PRODUCTOS
where (EXISTENCIA_X_PRODUCTO.Cant_Exist>5000 And PRODUCTOS.Precio_Unit<1000 And
SALIDAS_DE_ALMACEN.Fecha_Salida Like ‘__/09/2009’ And
ENTRADAS_POR_DEVOLUCION.Fecha_Nota_Dev Like ‘__/09/2009’)
Order By SALIDAS_DE_ALMACEN.Fecha_Salida ASC