You are on page 1of 11

Laboratorio de Base de Datos

Pgina: 1

PRCTICA SQL
I OBJETIVOS
Describir cmo funcionan las transacciones Filtrar los datos con distintas condiciones de bsqueda en la clusula WHERE

II TEMAS A TRATAR
Recuperacin de datos mediante la instruccin SELECT Filtrar los datos Dar formato a los conjuntos de resultados

III MARCO TEORICO


Transacciones Es una secuencia de operaciones realizadas como una sola unidad lgica de trabajo. Los programadores de SQL son responsables de iniciar y finalizar transacciones en puntos que hagan cumplir la coherencia lgica de los datos. El programador debe definir la secuencia de modificaciones de datos que los dejen en un estado coherente con respecto a las reglas empresariales de la organizacin. Puede finalizar transacciones con una instruccin COMMIT o ROLLBACK. La instruccin COMMIT indica que, si una transaccin es correcta, debe confirmarla. Una instruccin COMMIT garantiza que todas las modificaciones de la transaccin son parte permanente de la base de datos. La instruccin ROLLBACK cancela una transaccin, deshace todas las modificaciones realizadas en la transaccin al devolver los datos al estado que tenan al comienzo de la transaccin. Una instruccin ROLBACK tambin libera los recursos mantenidos por la transaccin. Si se produce un error dentro de una transaccin, en SQL Server ejecuta automticamente una instruccin ROLLBACK de la transaccin en curso.

Sesin 06

Base de Datos

Pgina: 2

Recuperacin de datos mediante la instruccin SELECT


La instruccin SELECT permite recuperar datos de una tabla, como tambin especificar las columnas y filas de datos que se desea recuperar de la tabla.
SELECT [ALL | DISTINCT] <listaSeleccin> FROM <tablaOrigen> [,...n] WHERE <condicinBsqueda>

ListaSeelccin: Especifica las columnas que se deben obtener La clusula WHERE especifica las condiciones de restriccin de la consulta. Estas condiciones se pueden especificar por medio de operadores de comparacin, cadenas de caracteres y operadores lgicos. FROM especifica la tabla de la que se desea obtener las filas y las columnas. La clusula DISTINT muestra solo una vez las filas que son repetidas. Ejemplo:
USE northwind SELECT employeeid, lastname, firstname, title FROM employees GO

Uso de la clusula WHERE para especificar fila El WHERE permite obtener filas en funcin de las condiciones de bsqueda que se especifique. Al usar esta clusula se debe de tener en cuentalo siguiente: Utilizar comillas simples para todos los datos de tipo char, nchar, varchar, nvarchar, text, datetime y smalldatetime. Ejemplo:
USE northwind SELECT employeeid, lastname, firstname, title FROM employees WHERE employeeid=5 GO

Filtros de datos
Los filtros son utilizados para limitar el conjunto de resultados que devuelve una consulta. La tabla siguiente especifica el tipo de filtro y la correspondiente condicin de bsqueda que se puede usar para filtrar datos:
Tipo de filtro Condicin de bsqueda
Sesin 06

Base de Datos

Pgina: 3

Operadores de comparacion Camparacin de cadenas Operadores lgicos: combinacin de condiciones Operador lgico: negacin Intervalo de valores Listas de valores Valores desconocidos

=,>,<,>=,<= y <> LIKE y NOT LIKE AND, OR NOT BETWEEN y NOT BETWEEN IN y NOT IN IS NULL e IS NOT NULL

Uso de operadores de comparacin Los operadores de comparacin compara columnas o vcariables de tipos de datos compatibles Ejemplo:
USE northwind SELECT lastname, city FROM employees WHERE country = USA GO

Ejemplo:
USE northwind SELECT orderid, customerid FROM orders WHERE orderdate < 1/8/96 GO

Uso de comparaciones de cadenas: LIKE La condicin de bsqueda LIKE permite seleccionar filas por comparacin entre cadenas de caracteres. Al utilizar la condicin de bsqueda LIKE, tenga en cuenta lo siguiente: Todos los caracteres de la cadena modelo son significativos, incluidos los espacio en blanco al comienzo o al final. LIKE slo puede utilizarse con datos de tipo char, nchar, varchar, nvarchar, binary, varbinary, smalldatetima o datetime y, bajo determinadas condiciones, con datos de tipo text, ntext e image. La clusula LIKE puede ser utilizada en combinacin con los siguientes caracteres comodines:
Comodin % [] Descripcin Cualquier cadena de cero o ms caracteres. Cualquier carcter individual. Cualquier carcter individual contenido en el intervalo o conjunto especificado.
Sesin 06

Base de Datos

Pgina: 4

[^]

Cualquier carcter individual no contenido en el intervalo o conjunto especificado.

Ejemplos de caracteres comodn La tabla siguiente contiene algunos ejemplos de uso de comodines con la condicn de bsqueda LIKE:
Expresin LIKE BR% LIKE Br% LIKE %een LIKE %en% LIKE _en LIKE [CK]% LIKE [S-V]ing% Devuelve Todos los nombres que comience por las letras BR. Todos los nombres que comience por las letras Br. Todos los nombes que terminen con las letras een. Todos los nombres que contengan las letras en. Todos los nombres de tres letras que terminen con las letras en. Todos los nombres que comiencen con C o por K Todos los nombres de cuatro letras que terminen con las letras ing y comiencen por cualquier letra comprendida entre S y V. Todos los nombres de comiencen por la letra M y cuya segunda letra no sea c.

LIKE M[^c]%

Ejemplo:
USE northwind SELECT companyname FROM customers WHERE companyname LIKE '%Restaurant%' GO

Uso de operadores lgicos Los operadores lgicos AND, OR y NOT permiten combinar un conjunto de expresione y afinar el proceso de las consultas. El resultado de una consulta puede variar segn el agrupamiento de las expresiones y el orden de las condiciones de bsqueda. Al utilizar los operadores lgicos, tenga en cuenta las instrucciones siguientes: Utilice el operador AND para obtener las filas que cumplan todos los criterios de bsqueda. Utilice el operador OR para obtener las filas que cumplan alguno de los criterios de bsqueda. Utilice el operador NOT para negar la expresin especificada a continuacin.

Sesin 06

Base de Datos

Pgina: 5

Ejemplo:
USE northwind SELECT productid, productname,supplierid,unitprice FROM products WHERE (productname LIKE 'T%' OR productid = 46) AND (unitprice >16.00) GO

Ejemplo:
USE northwind SELECT productid, productname,supplierid,unitprice FROM products WHERE (productname LIKE 'T%') OR (productid = 46) AND (unitprice >16.00) GO

Obtencin de un intervalo de valores: BETWEEN Para obtener filas contenidas en un intervalo de valores, puede utilizar la condicin de bsqueda BETWEEN en la clusula WHERE. Para utilizar esta clusula tenga en cuenta lo siguiente: SQL Server incluye los valores inicial y final en el conjunto de resultados. Puede utilizar la condicin de bsqueda NOT BETWEEN para obtener las filas que sten fuera del intervalo especificado. El uso de la condicin NOT puede relentizar la recuepracin de los datos.

Ejemplo:
USE northwind SELECT productname, unitprice FROM products WHERE unitprice BETWEEN 10 AND 20 GO

Ejemplo:
USE northwind SELECT productname, unitprice FROM products WHERE (unitprice > 10) AND (unitprice < 20) GO

Uso de una lista de valores como criterio de bsqueda: IN Para obtener las filas que coincidan con una lista de valores especificda puede utilizar la clusula IN. Para esto tenga en cuenta los siguientes puntos: Puede utilizar la condicin de bsqueda IN o un conjunto de expresiones de comparacin conectadas con el operador OR. SQL Server las resuelve de la misma forma y los resultados son idnticos. Utilice la condicin NOT IN para obtener las filas cuyos valores no se encuentren en la lista especificada.
Sesin 06

Base de Datos

Pgina: 6

Ejemplo:
USE northwind SELECT companyname, country FROM suppliers WHERE country IN ('Japan','Italy') GO

Ejemplo:
USE northwind SELECT companyname, country FROM suppliers WHERE country ='Japan' OR country='Italy' GO

Obtencin de valores desconocidos: IS NULL Una columna tiene un valore NULL cuando no se ha especificado ningn valor para ella durante la entrada de datos y no tiene definido un valor predeterminado. NULL no es lo mismo que cero o blanco. Para obtener las filas en las que falte informacin en una columa especifica, se utiliza la condicin de bsqueda IS NULL. Tenga en cuenta lo siguente: Los valores NULL causan errores en todas las comparaciones porque no se evalan como iguales entre s.. En la instruccin CREATE TABLE se define si las columnas permiten valores NULL.. Puede utilizar la condicin de bsqueda IS NOT NULL para obtener las filas con valores conocidos en las columnas especificadas. Ejemplo:
USE northwind SELECT companyname, fax FROM suppliers WHERE fax IS NULL GO

Dar formato a los conjuntos de resultados


Algunas veces se requiere mejorar la legibilidad de un conjunto de resultado, cambiando el orden, elimnando filas duplicadas, reemplazando el nombre de la columnas por alias o utilizr literales para sustituri valores. Estas opciones de formato no cambian los datos, lo que cambian es la presentacin de los mismos. Ordenacin de los datos: ORDER BY ORDER BY permite ordenar las filas del conjunto de resultados de forma ascendente (ASC) o descendente (DESC). Cuando use esta clusula tenga en cuenta lo siguiente:

Sesin 06

Base de Datos

Pgina: 7

El tipo de ordenamiento se especifica cuanso se instala SQL Server. para determinar el tipo de orden definido para la base de datos durante la instalacin utilice el procedimiento almacenado sp_helpsort SQL Server no garantiza ningn orden en el conjunto de resultados a menos que se especifique uno con la clusula ORDER BY. No es necesario que las columnas incluidas en la clusula ORDER BY aparezcan en la lista de seleccin. Es posible ordenas por nombres de columna,, valores calculkados o expresiones.. Ejemplo:
USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY categoryid, unitprice DESC GO

Ejemplo:
USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY 3, 4 DESC GO

Cambio de nombre de las columnas: AS Permite crear nombres de columnas ms legibles. Cada alias de columna puede contener hasta 128 caracateres. Ejemplo:
USE northwind SELECT firstname AS Firts, lastname AS last ,employeeid AS 'Employee ID:' FROM employees GO

Uso de literales Los lietrales son letras, nmeros o smbolos que se utilizan como valores especficos en un conjunto de resultados. Estos se pueden incluir en la lista de seleccin para hacer ms legible el resultado. Ejemplo:
USE northwind SELECT firstname, lastname ,'Nmero de identificacin:',employeeid FROM employees GO

Ejemplo:
USE northwind SELECT firstname, lastname Sesin 06

Base de Datos ,'Nmero de identificacin:'+CONVERT(nvarchar,employeeid) FROM employees GO

Pgina: 8

(La prctica tiene una duracin de 04 horas)

IV ACTIVIDADES

Para la resolucin de las actividades se presenta un caso de una empresa que comercializa diversos productos, ud. tendr el modelo relacional y el archivo sql. Lea detenidamente para comprender el sistema. Plaza Vea Es una empresa que se dedica a la comercializacion al detalle de diversos productos de consumo masivo. Cuenta con una cadena de locales de autoservicio en distintas zonas del rea metropolitana y provincias. Todas las reas de la empresa y sus diferentes locales se interconectarn mediante una red metropolitana. Cada una de las reas tiene requerimientos especificos, y se pretende resolverlos utilizando aplicaciones infomticas. Para este caso delimitaremos el rea de estudio a todas las operaciones que llevan a cabo en el Almacen central, y que tienen relacin con l. La base de datos que se disear registrar todas las operaciones que se ejecutan en el Almacen central, y estar habilitada para que todas las reas de la organizacin puedan utilizarla. Almacen Cetral podr controlar las entradas y salidas de productos, y las dems areas podrn efectuar consultas a la base de datos. Los procesos principales en el Almacen Central de Plaza vea son: Reposicin de mercaderia en un local. Si el local N existen productos que necesitan reponere, el responsable del inventario genera un pedido. Despacho de mercaderia desde el almacen hasta un local. Almacen recibe la solicitud de mercaderia de local N. Almacen verifica el stock de los productos solicitados consultado a su control de inventarios. Almacen verifica el stock de los productos y genera una Guia de remisin en la que consigna solo los productos que tienen el nivel de inventario adecuado para cumplir con los requerimientos del Local N. Si el local no recibe alguno de los productos solictados debe reiterar su solicitud generando un nuevo pedido con los productos no recibidos. Solicitud de mercaderia a un proveedor. Cuando una almacn detecta un bajo nivel de inventario de algunos productos del proveedor X, genera una orden d compra.
Sesin 06

Base de Datos

Pgina: 9

Almacen le envia la orden de compra al departamento de compras Compras se comunica con el proveedor para verificar y negociar los precios Compras le envia al proveedor la orden de compra consignando en ella. Recepcin en Almacn de la mercaderia enviada por el proveedor. El proveedor despacha todo o parte de lo solicitado segun lo acordado con Plaza vea, dependiendo de su disponibilidad Almacen recibe lo despachado por el proveedor y actualiza la orden de compra. Almacen actualiza la siguiente informacin para el control de inventarios o Stock actual del producto o Precio del proveedor Almacen envia al departamento de compras, la orden de compra, y la guia y factura del proveedor.

Sesin 06

Base de Datos

Pgina: 10

Antes de realizar los ejercicios no se olvide de ejecutar el archivo MarketPERU en el Management Studio del Sql Server 2008 R2. Ejercicio resueltos 1. Lectura de todos los datos de una tabla Select * from producto 2. Lectura de columnas seleccionadas de una tabla Select idProducto, nombre, unidadMedida, precioProveedor from producto. 3. Definiendo alias para los nombres de columna Select idProducto AS Cdigo, nombre AS Descripcin, unidadMedida AS Unidad, precioProveedor AS 'Precio unitario' from Producto 4. Mostrar la lista de productos cuyo precio es menor a 3.3 Select idCategoria, nombre, precioProveedor from producto where precioProveedor <3.3

Ejercicios Propuestos a) Mostrar la lista de productos de la categoria 2 (embutidos). ____________________________________________________________ b) Mostrar una lista de las categorias existentes sin incluir a la categoria 4. ____________________________________________________________ c) Se desea obtener una relacin de los productos que contienen la cadena 'laive' en su nombre. La busqueda indica que puede encontrarse en cualquier posicin del contenido. ____________________________________________________________ d) Se desea mostrar que el primer caracter pueda ser p o d del contenido de la columna nombre (tabla producto) ____________________________________________________________ e) Se desea mostrar el primer caracter que no sea del rango que va desde el caracter d hasta el caracter p del contenido de la columna nombre (tabla producto) ____________________________________________________________ ____________________________________________________________ f) Entregar una lista de productos cuyo precio proveedor se encuentra en el rango que va desde 5 hasta 11.50 ____________________________________________________________ ____________________________________________________________
Sesin 06

Base de Datos

Pgina: 11

g) Entregar una lista de productos cuyo nombre se encuentra en el rango que va desde la cadena 'det' hasta la cadena 'hot' ____________________________________________________________ ____________________________________________________________

h) Mostrar un listado de los productos registrados para los proveedores cuyo idproveedor es 10,5,15,2 ____________________________________________________________ ____________________________________________________________

V CUESTIONARIO
1.- Averiguar la funcionalidad y adems escriba las consultas de dos ejemplos de las siguientes clusulas: GROUP BY con el operador ROLLUP GROUP BY con el operador CUBE Funcin GROUPING COMPUTE y COMPUTE BY

Sesin 06

You might also like