Está en la página 1de 5

I.S.T.P.

Francisco de Paula Gonzles Vigl


Computacin e Informtica UD: Adm. de Bases de Datos
Practica N 05 SQL (DML)

OBJETIVOS: En la presente prctica aprenderemos a manipular la informacin de una Base de Datos en


Microsoft SQL Server, usando comando DML.

1. LENGUAJE DE MANIPULACIN DE DATOS (DML)


Grupo de sentencias de SQL que permiten manipular los datos que estn almacenados en las bases de
datos, a nivel de filas (tuplas) y/o columnas (atributos). Ya sea que se requiera que los datos sean
modificados, eliminados, consultados o que se agregaren nuevas filas a las tablas de las bases de datos.
Insert
Delete
Update
Select

2. COMANDO DELETE
Para borrar un registro usamos la instruccin Delete, especificando cual o cuales son los registros que
deseamos borrar, seleccionndolos mediante la clusula Where.
Sintaxis:

Delete From nombre_tabla Where condiciones_de_seleccin


Hay que tener cuidado con esta instruccin ya que si no especificamos una condicin con Where, lo
que estamos haciendo es borrar todos los registros de la tabla
Si intentamos borrar un registro de una tabla referenciada por una FOREING KEY como tabla maestra
y la tabla dependiente tiene registros relacionados, la sentencia DELETE fallar

EJEMPLOS
a) Borrar en la tabla Artculo, el registro cuyo cdigo sea: A006
Delete From Articulo Where codart = 'A006'
b) En la tabla Empleado_1, borrar los registros cuyo Nombre sea Luz
Delete From Empleado_1 Where nomemp = 'Luz'
c) En la tabla Empleado_1, borrar los registros cuyo Sueldo Bsico sea igual o mayor a 1200 y sean
mujeres
Delete From Empleado_1 Where Sueldo_Basico >= 1200 AND SexEmp = 'F'
d) Eliminar los clientes que no hayan recibido Factura
DELETE cliente WHERE codcli NOT IN(select codcli FROM Factura)

TAREA 1:
1. Borrar artculos cuyo proveedor sea: Pro01
2. Eliminar las facturas registradas por el empleado E001
3. Borrar Detalles de Factura cuyo artculo sea A002
4. Eliminar el Cliente con cdigo: C002

3. CONSULTAS DE SELECCIN - SELECT


SELECT [DISTINCT] <Columnas Elegidas> FROM <Nombre de Tablas>
[WHERE] <Criterios para seleccionar filas>
[ORDER BY] <Columnas por la que debe ordenarse> [DESC]
[GROUP BY] <Columnas para agrupar para alguna funcin agregada>
[HAVING] <Criterios que deben cumplirse para las funciones agregadas>

Con la Sentencia WHERE puede utilizarse las sentencias:


BETWEEN para indicar los lmites de un rango de datos.
IN para indicar un conjunto de pertenencia.
LIKE para indicar cierta correspondencia con su patrn de texto usando comodines: % para un conjunto
de caracteres y _ para un caracter. NOT LIKE se usa para los valores que no coincidan con el patrn.

Mgr. David Caipa M. 23/09/13 Pg. 1


I.S.T.P. Francisco de Paula Gonzles Vigl
Computacin e Informtica UD: Adm. de Bases de Datos
Las Funciones agregadas son:
AVG <Columna>: Calcula el promedio de la columna.
COUNT <Columna>: Cuenta el nmero de valores de la columna.
COUNT(*) : Cuenta las filas resultado de las consultas.
MAX <Columna>: Halla el mximo valor de la columna.
MIN <Columna>: Halla el mnimo valor de la columna.
SUM <Columna>: Halla la suma total de la columna.
Debe usarse los operadores lgicos:
AND: Para indicar condiciones que se cumplen simultneamente.
OR: Para indicar que basta que se cumpla una de las condiciones dadas.
NOT: Para negar al condicin (Las condiciones) dada(s).
4. CONSULTAS DE SELECCIN VERTICALES
a) Abrir el analizador de consultas y escribir la consulta. Verificar que la BD activa sea: TIENDA
SELECT * FROM EMPLEADO
Ejecutar la consulta y describa el resultado.
b) En el analizador de consultas escribir.
SELECT * FROM CARGO
Ejecutar la consulta y describa el resultado.
c) Seleccionar registros de la tabla Empleado usando Alias, ordenados ascendentemente por Apellidos
SELECT NOMEMP AS NOMBRE, APEEMP AS APELLIDOS, DIREMP AS DIRECCIN FROM
EMPLEADO ORDER BY APEEMP
Ejecutar la consulta y describa el resultado.
d) Mostrar la cantidad de clientes registrados
SELECT COUNT (*) FROM CLIENTE
Ejecutar la consulta y describa el resultado.
e) Mostrar la cantidad de clientes registrados que tiene Telfono
SELECT COUNT (TELCLI) FROM CLIENTE
Ejecutar la consulta y describa el resultado.
f) Visualizar el Total pagado en Facturas
SELECT SUM (TOTFAC) FROM FACTURA
Ejecutar la consulta y describa el resultado.
g) Visualizar el Artculo con mayor precio unitario
SELECT MAX (PUART) FORM ARTICULO
h) Visualizar el Artculo con mayor precio unitario
SELECT MIN (PUART) FORM ARTICULO
i) Ordenar los registros de la tabla por ms de un campo
SELECT NOMCLI AS [NOMBRE CLIENTE], RUCCLI AS [N RUC], TELCLI AS TELFONO FROM
CLIENTE ORDER BY NOMCLI, RUCCLI
j) Listar los registros de la tabla Artculo, ordenados a travs del campo PUART de mayor a menor y del
Nombre de manera descendente
SELECT NOMART, PUART FROM ARTICULO ORDER BY PUART DESC, NOMART ASC
En el ordenamiento, el predicado se incluye entre la clausula y el primer nombre del campo a recuperar,
los posibles predicados son:

Predicado Descripcin
ALL Devuelve todos los campos de la tabla
TOP Devuelve un determinado nmero de registros de la tabla
DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente
DISTINCROW Omite los registros duplicados basndose en la totalidad del registro y no slo en los campos seleccionados.

k) Mostrar los 04 primeros registros de la tabla Empleado, ordenados descendentemente por Apellidos
SELECT TOP 4 NOMEMP, APEEMP FROM EMPLEADO ORDER BY APEEMP DESC
l) Similar a la consulta anterior, pero mostrando el porcentaje que representa los registros visualizados.
SELECT TOP 4 PERCENT NOMEMP, APEEMP FROM EMPLEADO ORDER BY APEEMP DESC

Mgr. David Caipa M. 23/09/13 Pg. 2


I.S.T.P. Francisco de Paula Gonzles Vigl
Computacin e Informtica UD: Adm. de Bases de Datos
5. CONSULTAS DE SELECCIN CONDICIONADAS
a) Mostrar todos los campos de los empleados de Sexo Femenino
SELECT * FROM EMPLEADO WHERE SEXEMP=F
b) Seleccionar los artculos cuyo precio unitario est contenido entre el rango 30 y 100
SELECT CODART AS CODIGO, NOMART AS 'NOMBRE DE ARTICULO', PUART PRECIO UNIT
FROM ARTICULO WHERE PUART >= 30 AND PUART <= 100
c) La misma consulta, usando la clusula Between (entre)
SELECT CODART AS CODIGO, NOMART AS 'NOMBRE DE ARTICULO', PUART PRECIO UNIT
FROM ARTICULO WHERE PUART BETWEEN 30 AND 100
d) Visualizar clientes con nombres comprendido entre las letras H y P
SELECT CODCLI AS 'CODIGO DE CLIENTE', NOMCLI AS 'NOMBRE DE CLIENTE' FROM CLIENTE
WHERE NOMCLI BETWEEN 'H' AND 'P'
e) Obtener las Facturas cuya fecha sea del ao 2011 y cuyo monto Total se encuentre entre 50 y 100,
ordenados por Total de venta
SELECT * FROM FACTURA WHERE YEAR(FECHFAC)=2011 AND SUBTOT BETWEEN 100 AND
600 ORDER BY SUBTOT
f) Utilizando el operador OR podemos buscar un cliente cuyo cdigo dudamos si es CL002 o CL004
SELECT NOMCLI, CODCLI FROM CLIENTE WHERE CODCLI = C002 OR CODCLI = C004
g) Seleccionar a todos los clientes que contengan la letra "L" dentro de su nombre
SELECT CODCLI AS 'CODIGO DE CLIENTE', NOMCLI AS 'NOMBRE DE CLIENTE' FROM CLIENTE
WHERE NOMCLI LIKE '%L%'
h) Obtener todos los clientes cuyo nombre comience con la letra L
SELECT * FROM CLIENTE WHERE NOMCLI LIKE L%
i) Obtener un listado de todos los empleados con edad menor a 25 aos de edad ordenados por la
fecha de nacimiento en modo descendente
SELECT NOMEMP, APEEMP, EDAD=(YEAR (GETDATE ( )) - YEAR (FENAEMP))
FROM EMPLEADO
WHERE (YEAR (GETDATE ( )) - YEAR (FENAEMP)) < 25 ORDER BY FENAEMP DESC
j) Lista de empleados con edad mayor a 20 aos, ordenados de menor a mayor por la fecha de
nacimiento.
SELECT * FROM EMPLEADO
WHERE (YEAR (GETDATE ( )) - YEAR (FENAEMP)) >20 ORDER BY FENAEMP
k) Obtener las Facturas cuya fecha sea del ao 2010 y cuyo SubTotal se encuentre entre 50 y 500,
ordenados por SubTotal de venta.
SELECT * FROM FACTURA
WHERE YEAR(FECHFAC)=2011 AND SUBTOT BETWEEN 50 AND 500 ORDER BY SUBTOT

6. CONSULTAS DE SELECCIN DE UNA O MS TABLAS


a) Mostrar todos los empleados cuyo cargo sea Secretaria
SELECT EMPLEADO.NOMEMP, EMPLEADO.APEEMP, CARGO.DESCAR
FROM EMPLEADO, CARGO
WHERE EMPLEADO.CODCAR=CARGO.CODCAR AND CARGO.DESCAR='Secretaria'
b) El mismo ejemplo usando Alias
SELECT E.NOMEMP, E.APEEMP, C.DESCAR FROM EMPLEADO E, CARGO C
WHERE E.CODCAR=C.CODCAR AND C.DESCAR='Secretaria'
c) Obtener un Listado de Clientes que pertenezcan a las Ciudades de Tacna, Lima, Arequipa o Ica
SELECT P.NOMPROVEEDOR, C.NOMCIUDAD FROM PROVEEDOR P, CIUDAD C
WHERE P.CODCIUDAD=C.CODCIUDAD AND C.NOMCIUDAD IN ('TACNA', 'LIMA', 'AREQUIPA',
'ICA') ORDER BY C.NOMCIUDAD

Mgr. David Caipa M. 23/09/13 Pg. 3


I.S.T.P. Francisco de Paula Gonzles Vigl
Computacin e Informtica UD: Adm. de Bases de Datos

d) Empleados que registraron Facturas de Venta de Artculos provenientes de la ciudad de Tacna


SELECT E.NOMEMP, E.APEEMP, F.NROFAC, A.NOMART, P.NOMPROVEEDOR, C.NOMCIUDAD
FROM EMPLEADO E, FACTURA F, DETALLE_FACTURA DF, ARTICULO A, PROVEEDOR P,
CIUDAD C
WHERE E.CODEMP=F.CODEMP AND F.NROFAC=DF.NROFAC AND DF.CODART=A.CODART
AND A.CODPROVEEDOR=P.CODPROVEEDOR AND P.CODCIUDAD=C.CODCIUDAD AND
C.NOMCIUDAD='TACNA'
e) Artculos con Precio Unitario entre 50 y 100, vendidos por empleados con cargo Vendedor
SELECT A.NOMART, A.PUART, F.NROFAC, E.NOMEMP, E.APEEMP, CA.DESCAR
FROM ARTCULO A, FACTURA F, DETALLE_FACTURA DF, EMPLEADO E, CARGO CA
WHERE CA.CODCAR=E.CODCAR AND E.CODEMP=F.CODEMP AND F.NROFAC=DF.NROFAC
AND DF.CODART=A.CODART AND CA.DESCAR='VENDEDOR'
f) Cantidad de empleados agrupados por sexo
SELECT SEXEMP, CANTIDAD=COUNT(SEXEMP) FROM EMPLEADO GROUP BY SEXEMP
g) Suma de Sub Totales de Factura, agrupados por cliente
SELECT SUM(SUBTOT),CODCLI FROM FACTURA GROUP BY CODCLI
h) Grupos de proveedores por ciudad
SELECT CODCIUDAD, COUNT(CODPROVEEDOR)FROM PROVEEDOR
GROUP BY CODCIUDAD

7. COPIAR FILAS DE OTRAS TABLAS


El comando INSERT tambin puede utilizarse para recuperar datos de otras tablas. Se hace en una sola
sentencia SQL. Un comando SELECT reemplaza a la clusula VALUES, que se evala antes que la
operacin INSERT.
a) Copiar los registros de la tabla Empleados a la tabla Empleados_1
INSERT INTO EMPLEADO_1 (CODEMP, NOMEMP, APEEMP, DNIEMP, SEXEMP, FENAEMP,
DIREMP, TELFEMP)
SELECT CODEMP, NOMEMP, APEEMP, DNIEMP, SEXEMP, FENAEMP, DIREMP, TELFEMP
FROM EMPLEADO
b) Completar los registros de la tabla Empleado_1
UPDATE EMPLEADO_1 SET Sueldo_Basico=1200 WHERE CODEMP='E001'
UPDATE EMPLEADO_1 SET Sueldo_Basico=1500 WHERE CODEMP='E002'
UPDATE EMPLEADO_1 SET Sueldo_Basico=2000 WHERE CODEMP='E003'
UPDATE EMPLEADO_1 SET Sueldo_Basico=1500 WHERE CODEMP='E004'
UPDATE EMPLEADO_1 SET Sueldo_Basico=1200 WHERE CODEMP='E005'
UPDATE EMPLEADO_1 SET Sueldo_Basico=2000 WHERE CODEMP='E006'
UPDATE EMPLEADO_1 SET Sueldo_Basico=1500 WHERE CODEMP='E007'
UPDATE EMPLEADO_1 SET Sueldo_Basico=1400 WHERE CODEMP='E008'
UPDATE EMPLEADO_1 SET Sueldo_Basico=1500 WHERE CODEMP='E009'

c) Mostrar empleados con Edad entre 25 y 50 aos y el Suedo_Bsico sea menor a 2000. Usar la tabla
Empleado_1
SELECT NOMEMP, APEEMP, SUELDO_BASICO, EDAD=(YEAR (GETDATE ( )) - YEAR (FENAEMP))
FROM EMPLEADO_1 WHERE ((YEAR (GETDATE ( )) - YEAR (FENAEMP)) > 25 AND (YEAR (GETDATE ( )) -
YEAR (FENAEMP)) < 50) AND SUELDO_BASICO < 2000

m) Usando la tabla Empleado1, mostrar el promedio de Sueldo_bsico


SELECT AVG (sueldo_basico) FROM EMPLEADO_1

Mgr. David Caipa M. 23/09/13 Pg. 4


I.S.T.P. Francisco de Paula Gonzles Vigl
Computacin e Informtica UD: Adm. de Bases de Datos
TAREA 2: Realizar las siguientes consultas
1. Utilizando el operador OR, buscar clientes cuyos cdigo sean C002 o CL004
2. Mostrar la cantidad Total de Clientes
3. Monto Total de ventas en Boletas, alcanzada en los meses del presente ao
4. Total de ventas en Facturas, agrupadas por cdigo de Empleado
5. Venta total mxima en Boletas, durante los meses de julio, agosto y setiembre
6. Venta total mnima en Factura, en ao 2011
7. Mostrar el mnimo, mximo, promedio del precio unitario y cantidad de artculos existentes en la tabla
Artculos
8. En la tabla Empleado_1, agregar el campo: estado civil. Completar con datos a ste campo, usando Insert
9. En la tabla Empleado_1, seleccionar los que tengan un sueldo bsico entre 500 y 1000 soles o que el
sexo sea F
10. Seleccionar el empleado con ms bajo sueldo bsico, en la tabla empleado_1
11. Determinar el total pagado a todos los empleados, en la tabla empleado_1
12. Mostrar los clientes que recibieron Factura de venta el da 02 03 de junio del 2011.
13. Listar los nombres de artculos vendidos en Boletas de ventas
14. Cantidad de artculos cuyo nombre inicia con M, vendidos en el mes de octubre-2011.
15. Precio unitario promedio al que se est vendiendo los artculos, en boletas y facturas
16. Monto total de dinero gastado en Facturas por cada uno de los clientes
17. Nmero total de ventas realizadas en Boletas, agrupadas por cdigo de cliente
18. Recuperar los nombres y apellidos de los 3 primeros Empleados
19. Listar los Empleados cuyo cargo sea Vendedor
20. Clientes de la ciudad de Tacna, ordenados por Nombre de Cliente.
21. Artculos con Stock menor a 10 unidades.
22. Artculos con PU entre 3 y 20 soles
23. Empleados mujeres cuyo apellido inicie con las letras R o F.
24. Facturas con total superior a 20 soles y que se hayan registrado entre el 01/06/11 al 30/06/11
25. Clientes que recibieron Boleta de Venta agrupados por Ciudad
26. Cuantas Facturas ha emitido cada empleado.
27. Cuantas Boletas ha emitido cada Vendedor en el mes de Junio
28. Cual es el artculo mas caro
29. Cuantos Empleados No tienen Telfono
30. Ventas realizadas en Boletas por la empleada Luz en el mes de octubre 2011.
31. Nombre de Empleados y Fecha de facturacin para las ventas realizadas en el mes de octubre 2011.
32. Cambiar el actual N DNI, por: 55555555, del Empleado Keiko Flores Tisnado
33. Incrementar el sueldo bsico a todos los Empleados_1, en 10%.
34. Incrementar el sueldo bsico a los Empleados_1, de sexo femenino en 20%
35. Incrementar el sueldo bsico a los Empleados_1, con edad mayor a 30 aos

Mgr. David Caipa M. 23/09/13 Pg. 5

También podría gustarte