P. 1
Lab_Consultas y Mantenimiento

Lab_Consultas y Mantenimiento

|Views: 36|Likes:
Publicado porElizabeth Callisaya

More info:

Published by: Elizabeth Callisaya on Dec 06, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

12/09/2011

pdf

text

original

Universidad Nacional Jorge Basadre Grohmann Facultad de Ingeniería / E.A.P.

de Ingeniería en Informática y Sistemas Asignatura: Base de Datos y Sistemas Distribuidos Periodo: 2011

Práctica de Laboratorio: Tema: Consultas y mantenimiento
Objetivos: • Aprender a realizar consultas básica y avanzadas. • Lectura de Columnas, Lectura de Filas • Filtrar datos. Relacionar tablas • Generar resúmenes de datos. Generar subconsultas • Enviar los resultados de una consulta a otro archivo • Eliminar filas de una tabla • Actualización de filas de una tabla

I.- Fundamento Teórico:
Comandos de SQL. SQL proporciona comandos del lenguaje de definición de datos (DDL) y del lenguaje de manipulación de datos (DML). Aunque existen algunas áreas solapadas, los comandos DDL permiten crear y definir nuevas bases de datos, campos e índices, mientras que los comandos DML le permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. DDL: Las instrucciones DDL en SQL son expresiones generadas en torno a los siguientes comandos. Comando Descripción CREATE Utilizado para crear nuevas tablas, campos e índices. DROP Utilizado para eliminar tablas e índices de la base de datos. ALTER Utilizado para modificar tablas agregando campos o cambiando la definición de los campos. DML: Las instrucciones DML son expresiones generadas en torno a los comandos siguientes. Comando Descripción SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación. UPDATE Utilizado para modificar los valores de determinados campos y registros. DELETE Utilizado para quitar registros de una tabla de base de datos. DCL: Las instrucciones DCL son generadas en torno a los comandos siguientes. Comando Descripción GRANT Utilizado para crear una entrada en el sistema de seguridad y permite al usuario usar la base de datos REVOKE Utilizado para quitar un permiso otorgado o denegado previamente de un usuario de la base datos actual. DENY Utilizado para denegar un permiso de una cuenta de seguridad en la base de datos actual. • Cláusulas SQL. Las cláusulas sql son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular. La siguiente tabla muestra las cláusulas que puede utilizar. •

Cláusula
FROM WHERE seleccionar. GROUP BY HAVING ORDER BY

Descripción
Utilizada para especificar la tabla de la cual se van a seleccionar los registros. Utilizada para especificar las condiciones que deben cumplir los registros que se van a Utilizada para separar los registros seleccionados en grupos específicos. Utilizada para expresar la condición que debe satisfacer cada grupo. Utilizada para ordenar los registros seleccionados de acuerdo con un orden especificado.

• SELECT : Crea una consulta de una o mas tablas. Recupera las filas (datos) desde una o mas tablas de una base de datos. Sintaxis Simple: SELECT lista_de_columnas Msc. Edgar Taya Acosta-etayaa@unjbg.edu.pe Página: 1

. SELECT con clausulas GROUP BY. COMPUTE.nom_articulo FROM Articulo WHERE Articulo. de Ingeniería en Informática y Sistemas Asignatura: Base de Datos y Sistemas Distribuidos Periodo: 2011 FROM lista_de_tablasWHERE condiciones_de_búsqueda Ejemplo 1: SELECT * FROM cliente Ejemplo 2: SELECT Articulo. Subconjunto de Columnas SELECT cod_articulo. todas las columnas SELECT * FROM cliente B. Elemento_Orden [ASC | DESC] . ColumnaGrupo ..edu. y ORDER BY SELECT cod_articulo. Elemento_Selección [AS Nombre_Columna] ...Nombre_Columna [INTO Destino] [WHERE CondiciónCombinación [AND CondiciónCombinación .P.] [AND | OR CondiciónFiltro [AND | OR CondiciónFiltro . nom_cliente. {table_name16 | view_name16}[(optimizer_hints)]]] [WHERE clause] [GROUP BY clause] [HAVING clause] [ORDER BY clause] [COMPUTE clause] [FOR BROWSE] Sintaxis ANSI-SQL: SELECT [ALL | DISTINCT] Elemento_Selección [AS Nombre_Columna] [. cod_articulo. Todas las filas con Computed Sums SELECT nro_boleta.Universidad Nacional Jorge Basadre Grohmann Facultad de Ingeniería / E. Simple SELECT: todas las filas. ruc_cliente FROM cliente C. des_articulo. todas las filas SELECT cod_cliente.Cod_articulo.Nombre_Columna = Tabla [Alias]..] FROM Tabla [Alias] [[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN Tabla [Local] [ON Tabla [Alias].. Simple SELECT: subconjunto de Columnas. Simple SELECT: Subconjunto de filas.. {table_name2 | view_name2}[(optimizer_hints)] [.]]] [GROUP BY ColumnaGrupo [.. precio_unitario FROM detalle_boleta COMPUTE SUM(precio_unitario) Msc.. pu_articulo.stk_minimo < 10 Sintaxis MS-SQL : SELECT [ALL | DISTINCT] select_list [INTO [new_table_name]] [FROM {table_name | view_name}[(optimizer_hints)] [[.]] Ejemplo: A.]] [HAVING CondiciónFiltro] [UNION [ALL] ComandoSELECT ] [ORDER BY Elemento_Orden [ASC | DESC] [... total = sum (pu_articulo) FROM articulo WHERE pu_articulo < $10000 AND stk_minimo_articulo IS NOT NULL D.pe Página: 2 . Unidad_Medida_Articulo FROM articulo WHERE pu_articulo IS NOT NULL ORDER BY Unidad_Medida_Articulo DESC COMPUTE AVG(pu_articulo) BY Unidad_Medida_Articulo E.A. articulo... Edgar Taya Acosta-etayaa@unjbg.

P. Optimizar Hints: TABLOCK y HOLDLOCK BEGIN TRAN SELECT count(*) FROM t1 (TABLOCK HOLDLOCK) END TRAN I.' J.Ejecutar una consulta que muestre todos los datos de la tabla proveedores SELECT * FROM proveedor 2.4.3. de Ingeniería en Informática y Sistemas Asignatura: Base de Datos y Sistemas Distribuidos Periodo: 2011 F. RIGHT [OUTER] JOIN especifica que el resultado de la consulta contenga todas las filas desde la tabla hasta la derecha de la palabra clave JOIN y sólo las filas que concuerden desde la tabla hasta la izquierda de la palabra clave JOIN. Crear un tabla temporal con SELECT INTO SELECT * INTO #ArtParaPedir FROM articulo WHERE stk_actual_articulo < stk_minimo_articulo go SELECT des_articulo FROM ArtParaPedir go G.A.Realice una consulta que calcule el importe de cada artículo vendido 2. SELECT cod_proveedor.Obtener una lista de todas las ciudades cuyo DDN sea 054 SELECT * FROM ciudad Msc.A. nombre y teléfono de cada cliente 2.1. concuerden o no.1. FULL [OUTER] JOIN especifica que el resultado de la consulta contenga todas las filas.Efectuar una consulta que muestre el código. tel_proveedor FROM proveedor (INDEX = nom_proveedor) WHERE nom_proveedor = 'Paracas S.Practica Primeramente verificar que las tablas contengan los datos de las practica anterior • Lectura de columnas seleccionadas de una tabla 2. nombre y teléfono del cliente.2. Obteniendo columnas calculadas o computadas .1.Universidad Nacional Jorge Basadre Grohmann Facultad de Ingeniería / E. Optimizar Hints: Usando el Nombre de un Index This example shows how to force the optimizer to use a nonclustered index to retrieve rows from a table. Lectura de todas las columnas de una tabla . de ambas tablas. cod_cliente.. Nombre y Teléfono .Efectuar una consulta que muestre.Efectuar la consulta anterior de manera que muestre los siguientes títulos: RUC. pero en una sola columna • Lectura de filas seleccionadas de una tabla 2.edu.1. LEFT [OUTER] JOIN especifica que el resultado de la consulta contenga todas las filas de la tabla a la izquierda de la palabra clave JOIN y sólo las filas que concuerden procedentes de la tabla a la derecha de la palabra clave JOIN. Crear una tabla Permanente con SELECT INTO SELECT * INTO ArticulosCaros FROM articulo WHERE pu_articulo > $25 go OR pu_articulo < $200 H.1. Consultando las columnas Seleccionadas . Optimizando Hints: Forzando a explorar una Tabla SELECT nro_boleta. II. Ruc.2. fec_boleta FROM BoletaVenta (index = 0) WHERE fec_boleta > '10/1/1998' Nota: • • • • INNER JOIN especifica que el resultado de la consulta contenga sólo filas para una tabla con la que coincidan una o varias filas en otra tabla. Cambiando los títulos de las columnas .pe Página: 3 . Seleccionando filas en base a comparaciones .1. Edgar Taya Acosta-etayaa@unjbg. nom_proveedor.

Haga una consulta que permita saber ¿Cuántas veces un artículo ha sido vendido?.2.Obtenga el código y nombre de todos los clientes cuyo nombre contenga la palabra ‘UNJBG’ SELECT cod_cliente. nom_cliente FROM cliente WHERE nom_cliente LIKE '%UNJBG%' .Realice una consulta que muestre todos los artículos cuyo nombre empiece con la letra D 2.pe Página: 4 . Usando INNER JOIN .¿Qué boletas de venta tienen por lo menos 2 artículos vendidos? SELECT nro_boleta.Realice una consulta que muestre las ventas realizadas en el mes de enero y febrero de año 1999 2.Averigüe ¿cuántas artículos existen? SELECT COUNT(*) FROM articulo . 2. Usando GROUP BY y HAVING. código de articulo SELECT * FROM detalle_boleta ORDER BY Cantidad_vendida.Obtener un listado de todas las ventas realizadas entre el 1 de enero y entre 20 de abril de 1999 SELECT * FROM BoletaVenta WHERE fec_boleta BETWEEN '01/01/99' AND '20/04/99' .2.¿Cuántos proveedores hay en cada ciudad? SELECT cod_ciudad.Universidad Nacional Jorge Basadre Grohmann Facultad de Ingeniería / E.3.des_articulo FROM Detalle_boleta INNER JOIN Articulo Msc. cod_articulo • Generación de resúmenes 2. cod_articulo. Seleccionado filas y eliminando los duplicados de la selección . SELECT COUNT(DISTINCT cod_articulo) FROM detalle_boleta 2.4.1.Obtener un listado de todos artículos vendidos (solo muestre el código) en las boletas SELECT DISTINCT cod_articulo FROM detalle_boleta • Ordenando los resultados 2. Obtener la lista de los datos de detalle de boleta.A. Seleccionado filas en base a listas . Usando funciones resumen COUNT . la lista deberá estar ordenado por Ruc. Seleccionado filas en base a rangos . Uso de COMPUTE BY .3.4. ordene la lista por cantidad.¿Cuántos artículos han sido vendidos?. Seleccionado filas en base a cadena de caracteres .'07') 2.1.2.edu. articulo.3. Edgar Taya Acosta-etayaa@unjbg.Realice una consulta que calcule la suma total de los importes de cada detalle de boleta SELECT nro_boleta. • Usando sintaxis ANSI (Estandar) SELECT detalle_boleta. • Lectura de datos de tablas relacionadas 2.4. nro_proveedores = COUNT(*) FROM proveedor GROUP BY cod_ciudad .2.cod_articulo. de Ingeniería en Informática y Sistemas Asignatura: Base de Datos y Sistemas Distribuidos Periodo: 2011 WHERE cod_ddn = '054' 2. nom_proveedor FROM proveedor WHERE cod_ciudad IN ('02'.5.1.5.P.Obtener el ruc y el nombre de todos los proveedores cuyo código de la ciudad donde residen sea 002 o 007 SELECT ruc_proveedor.2. nro_articulos_vendidos = COUNT(*) FROM detalle_boleta GROUP BY nro_boleta HAVING COUNT(*) >= 2 .2.Obtener un listado de todos los artículos vendidos indicando el código y nombre del articulo. TotalImporte=Cantidad_Vendida * Precio_Unitario FROM detalle_boleta ORDER BY nro_boleta COMPUTE SUM(Cantidad_Vendida * Precio_Unitario) BY nro_boleta . Obtener la lista de clientes mostrando el nombre y Ruc.2.

'select into/bulkcopy'. Obtener un listado de todos los artículos que tienen ventas registradas. Obtenga un listado de todos los clientes que no tienen RUC y envíe el resultado a la tabla ClientesSinRuc -¿Qué requisito debe verificarse para que esta operación sea permitida? Sp_dboption 'Tienda72m'.6.cod_articulo 2.* FROM BoletaVenta CROSS JOIN Detalle_boleta • Usando sintaxis MS-SQL SELECT boletaventa. detalle_boleta.. detalle_boleta.cod_articulo = articulo. Articulo WHERE articulo.cod_articulo.5..5.P.cod_articulo = articulo.Obtener un listado de los artículos vendidos indicando la nombre y la cantidad vendida de cada uno.cod_articulo • Usando sintaxis MS-SQL SELECT articulo. detalle_boleta. 'select into/bulkcopy'.Universidad Nacional Jorge Basadre Grohmann Facultad de Ingeniería / E.des_articulo.*. articulo. Edgar Taya Acosta-etayaa@unjbg.7. detalle_boleta. • SubConsultas 2.]] 2.cod_articulo *= detalle_boleta. de Ingeniería en Informática y Sistemas Asignatura: Base de Datos y Sistemas Distribuidos Periodo: 2011 ON detalle_boleta.8.Obtenga todas las combinaciones posibles para las tablas boleta venta y detalle de boleta • Usando sintaxis ANSI (Estandar) SELECT boletaventa. La lista debe incluir los artículos que no registran ventas • Realice una consulta que muestre las boletas emitidas en el mes de febrero y en el 18 de abril de 1999 y además que muestre el nombre del cliente que hizo la compra.des_articulo.cod_articulo . true -A hora si podrá realizar esta operación SELECT * INTO ClientesSinRuc FROM Cliente WHERE ruc_cliente IS NULL or ruc_cliente=' ' • Eliminando filas de una tabla DELETE: Elimina registros de una tabla Sintaxis: DELETE FROM NombreTabla [WHERE CondiciónFiltro1 [AND | OR CondiciónFiltro2 . true SELECT * INTO Articulo2 Msc.3.cantidad_vendida FROM Detalle_Boleta RIGHT OUTER JOIN Articulo ON articulo. Primeramente obtenga una copia de la tabla articulo: sp_dboption 'Tienda72m'.2. Detalle_boleta 2.*.pe Página: 5 .Realice una consulta que muestre el nombre del cliente que hizo compras pero que no tiene RUC • Enviando el resultado de una consulta a otro archivo 2.cod_articulo • Usando sintaxis MS-SQL SELECT detalle_boleta. SELECT des_articulo FROM Articulo WHERE cod_articulo IN ( SELECT cod_articulo FROM Detalle_Boleta ) .* FROM BoletaVenta.edu.cod_articulo = detalle_boleta. Articulo WHERE detalle_boleta.cantidad_vendida FROM Detalle_Boleta.des_articulo FROM Detalle_boleta.A. Usando OUTER JOIN: Nota: Right Outer Join (*=) y Left Outer Join (=*) • Usando sintaxis ANSI (Estandar) SELECT articulo. Usando CROSS JOIN .

Universidad Nacional Jorge Basadre Grohmann Facultad de Ingeniería / E. teniendo en cuenta las tablas de la tienda comercial • Que realizan los siguientes comandos.nro_boleta ) from boletaventa.9... Larsen.Verificar si los articulos fueron eliminados Actualización de filas de una tabla UPDATE: Actualiza registros de una tabla con nuevos valores. Nombre_Columna2 = eExpresión2 . siempre y cuando su precio unitario sea por lo menos 30 soles UPDATE Articulo2 SET stk_actual_articulo = stk_actual_articulo + 10 WHERE pu_articulo >= 30 . Cualquier carácter individual Cualquier carácter individual del intervalo ([a-f]) o el conjunto ([abcdef]) especificado.edu. • Responda lo siguiente: -¿Qué es consulta de tipo 1? -¿Qué es consulta de tipo 2? -¿Qué es consulta de tipo 3? -¿Qué es consulta de tipo 4? -¿Qué es consulta de tipo 5? -¿Qué es consulta de tipo 6? • Hacer un ejemplo para cada tipo de consulta.mdf -ee:\mssql7\log\errorlog • odbcping /Sserver81 /Usa /P • net pause mssqlserver • net continue mssqlserver • net stop mssqlserver (En version 6. todos los artículos cuyo stock actual sea menor a 25 DELETE FROM Articulo2 WHERE stk_actual_articulo < 25 • .P..Eliminar en la tabla articulo2. Analisis y Diseño de sistemas de James Senn y el Libro Análisis Estructurado de GanneSarson. Karsen. Cambiar el stock actual de los artículos incrementándolo en 10 para cada uno de los artículos.x use: NET STOP SQLSERVER) • osql /U sa /P /Q "EXIT(SELECT * FROM cliente)" /d tienda85m /s server81 En Query Analyser: • SHUTDOWN • sp_helplanguage • SET LANGUAGE Spanish • En la cláusula: expresión [NOT] LIKE 'cadena' ¿que permite los sgtes. detalle_boleta III. Msc.]] 2.pe Página: 6 .. de Ingeniería en Informática y Sistemas Asignatura: Base de Datos y Sistemas Distribuidos Periodo: 2011 FROM Articulo /* ó también puede ser FROM Tienda72m.. WHERE apellido LIKE ‘[C-P]arsen’ busca apellidos de autores que terminen con arsen y comiencen con cualquier carácter individual entre C y P.nro_boleta = detalle_boleta. WHERE nombre LIKE ‘_ean’ busca todos los nombres de cuatro letras que finalicen con ean.. Sintaxis: UPDATE NombreTabla SET Nombre_Columna1 = eExpresión1 [. Edgar Taya Acosta-etayaa@unjbg. Ejemplo WHERE título LIKE ‘%equipo%’ busca todos los títulos de libros que contengan la palabra ‘equipo’ en cualquier parte del título.Articulo */ .A. • sqlservr -c -de:\mssql7\data\master. caracteres comodines?: carácter Comodí n % _ [] Descripción Cualquier cadena de cero o más caracteres. etc.Tarea Encargada: Para realizar la tarea lea el libro de Análisis y Diseño de Sistemas de Kendall y Kendall (Diseño de Consultas). por ejemplo Carsen.Verificar si los articulos tienen actualizado sus respectivos stock actuales • Calcular el importe en detalle de boleta • Calcular Total boleta con la suma total de importe de detalle boleta respectivo update boletaventa set Tot_boleta = ( select sum(importe) from detalle_boleta where boletaventa.] WHERE CondiciónFiltro1 [AND | OR CondiciónFiltro2 .

P.edu. conjunto ([^abcdef]) especificado.A.Universidad Nacional Jorge Basadre Grohmann Facultad de Ingeniería / E. Msc. Edgar Taya Acosta-etayaa@unjbg.pe Página: 7 . de Ingeniería en Informática y Sistemas Asignatura: Base de Datos y Sistemas Distribuidos Periodo: 2011 [^] Cualquier carácter individual que no se WHERE apellido LIKE ‘de[^l]%’ busca todos los apellidos de autores que encuentre en el intervalo ([^a-f]) o el comienzan con de y en los que la siguiente letra no sea l.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->