Anda di halaman 1dari 5

I.S.T.P.

“Francisco de Paula Gonzáles Vigíl”


Computación e Informática UD: Adm. de Bases de Datos
Practica N° 03 – SQL (DML)

OBJETIVOS: En la presente práctica aprenderemos a manipular la información de una Base de Datos en


Microsoft SQL Server, usando los comandos Insert, Delete y Select

1. CONSULTAS DE SELECCIÓN - 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 función agregada>
[HAVING] <Criterios que deben cumplirse para las funciones agregadas>
Con la Sentencia WHERE puede utilizarse las sentencias:
 BETWEEN para indicar los límites de un rango de datos.
 IN para indicar un conjunto de pertenencia.
 LIKE para indicar cierta correspondencia con su patrón 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 patrón.
Las Funciones agregadas son:
 AVG <Columna>: Calcula el promedio de la columna.
 COUNT <Columna>: Cuenta el número de valores de la columna.
 COUNT(*) : Cuenta las filas resultado de las consultas.
 MAX <Columna>: Halla el máximo valor de la columna.
 MIN <Columna>: Halla el mínimo valor de la columna.
 SUM <Columna>: Halla la suma total de la columna.
Debe usarse los operadores lógicos:
 AND: Para indicar condiciones que se cumplen simultáneamente.
 OR: Para indicar que basta que se cumpla una de las condiciones dadas.
 NOT: Para negar al condición (Las condiciones) dada(s).
2. CONSULTAS DE SELECCIÓN 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 DIRECCIÓN 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 Teléfono
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 Artículo con mayor precio unitario
SELECT MAX (PUART) FORM ARTICULO
h) Visualizar el Artículo con mayor precio unitario
SELECT MIN (PUART) FORM ARTICULO
i) Ordenar los registros de la tabla por más de un campo
SELECT NOMCLI AS [NOMBRE CLIENTE], RUCCLI AS [Nº RUC], TELCLI AS TELÉFONO FROM
CLIENTE ORDER BY NOMCLI, RUCCLI

Mgr. David Caipa M. 29/08/18 Pág. 1


I.S.T.P. “Francisco de Paula Gonzáles Vigíl”
Computación e Informática UD: Adm. de Bases de Datos
j) Listar los registros de la tabla Artículo, ordenados a través 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 cláusula y el primer nombre del campo a recuperar,
los posibles predicados son:
Predicado Descripción
ALL Devuelve todos los campos de la tabla
TOP Devuelve un determinado número de registros de la tabla
DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente
DISTINCROW Omite los registros duplicados basándose en la totalidad del registro y no sólo 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

3. CONSULTAS DE SELECCIÓN CONDICIONADAS


a) Mostrar todos los campos de los empleados de Sexo Femenino
SELECT * FROM EMPLEADO WHERE SEXEMP=’F’
b) Seleccionar los artículos 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 cláusula 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 año 2018 y cuyo monto Total se encuentre entre 50 y 100,
ordenados por Total de venta
SELECT * FROM FACTURA WHERE YEAR (FECHFAC)=2018 AND SUBTOT BETWEEN 100 AND
600 ORDER BY SUBTOT
f) Utilizando el operador OR podemos buscar un cliente cuyo código 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 años 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 años, 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 año 2018 y cuyo SubTotal se encuentre entre 50 y 500,
ordenados por SubTotal de venta.
SELECT * FROM FACTURA
WHERE YEAR (FECHFAC)=2018 AND SUBTOT BETWEEN 50 AND 500 ORDER BY SUBTOT

Mgr. David Caipa M. 29/08/18 Pág. 2


I.S.T.P. “Francisco de Paula Gonzáles Vigíl”
Computación e Informática UD: Adm. de Bases de Datos
4. CONSULTAS DE SELECCIÓN DE UNA O MÁS 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
d) Empleados que registraron Facturas de Venta de Artículos 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) Artículos 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 ARTÍCULO 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

5. COPIAR FILAS DE OTRAS TABLAS


El comando INSERT también puede utilizarse para recuperar datos de otras tablas. Se hace en una sola
sentencia SQL. Un comando SELECT reemplaza a la cláusula VALUES, que se evalúa antes que la
operación INSERT.

a) Copiar los registros de la tabla Empleado a la tabla Empleado2


INSERT INTO EMPLEADO2 (CODEMP, NOMEMP, APEEMP, DNIEMP, SEXEMP, DIREMP, TELFEMP)
SELECT CODEMP, NOMEMP, APEEMP, DNIEMP, SEXEMP, DIREMP, TELFEMP FROM EMPLEADO

b) Completar los datos en las columnas vacías en la tabla Empleado2


UPDATE EMPLEADO2 SET SUELDO=1200, EST_CIVIL='SOLTERO', NRO_HIJOS=0 WHERE CODEMP='E001'
UPDATE EMPLEADO2 SET SUELDO=2000, EST_CIVIL='CASADO', NRO_HIJOS=2 WHERE CODEMP='E002'
UPDATE EMPLEADO2 SET SUELDO=3200, EST_CIVIL='VIUDO', NRO_HIJOS=5 WHERE CODEMP='E003'
UPDATE EMPLEADO2 SET SUELDO=1000, EST_CIVIL='SOLTERO', NRO_HIJOS=0 WHERE CODEMP='E004'
UPDATE EMPLEADO2 SET SUELDO=800, EST_CIVIL='DIVORCIADO', NRO_HIJOS=3 WHERE CODEMP='E005'
UPDATE EMPLEADO2 SET SUELDO=2200, EST_CIVIL='SOLTERO', NRO_HIJOS=1 WHERE CODEMP='E006'

Mgr. David Caipa M. 29/08/18 Pág. 3


I.S.T.P. “Francisco de Paula Gonzáles Vigíl”
Computación e Informática UD: Adm. de Bases de Datos
6. COMANDO DELETE
Para borrar un registro usamos la instrucción Delete, especificando cual o cuales son los registros que
deseamos borrar, seleccionándolos mediante la cláusula Where.
Sintaxis:
DELETE FROM NOMBRE_TABLA WHERE CONDICIONES_DE_SELECCIÓN
 Hay que tener cuidado con esta instrucción ya que si no especificamos una condición 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 Artículo, el registro cuyo código sea: ‘A006’
Delete From Articulo Where codart = 'A006'
b) En la tabla Empleado2, borrar los registros cuyo Nombre sea ‘Luz’
Delete From Empleado2 Where nomemp = 'Luz'
c) En la tabla Empleado, borrar los registros cuyo Sueldo Básico sea igual o mayor a 1200 y sean mujeres
Delete From Empleado2 Where Sueldo >= 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 artículos cuyo proveedor sea: ‘Pro01’
2. Eliminar las facturas registradas por el empleado ‘E001’
3. Borrar Detalles de Factura cuyo artículo sea ‘A002’
4. Eliminar el Cliente con código: ‘C002’

TAREA 2: Realizar las siguientes consultas


1. Utilizando el operador OR, buscar clientes cuyos código sean C002 o CL004
2. Mostrar la cantidad Total de Clientes
3. Monto Total de ventas en Boletas, alcanzada en los meses del presente año
4. Total de ventas en Facturas, agrupadas por código de Empleado
5. Venta total máxima en Boletas, durante los meses de julio, agosto y setiembre
6. Venta total mínima en Factura, en año 2018
7. Mostrar el mínimo, máximo, promedio del precio unitario y cantidad de artículos existentes en la tabla
Artículos
8. En la tabla Empleado2, agregar el campo: Fecha de Ingreso. Completar datos a éste campo, usando
UPDATE
9. Listar los Empleados cuyo tiempo de servicio sea mayor a 5 años
10. Mostrar los Empleados mujeres que cumplan 3 años de servicio en agosto del presente año
11. En la tabla Empleado2, seleccionar los que tengan un sueldo entre 500 y 1000 soles o que el sexo sea ‘F’
12. Seleccionar el empleado con más bajo sueldo, en la tabla empleado2

Mgr. David Caipa M. 29/08/18 Pág. 4


I.S.T.P. “Francisco de Paula Gonzáles Vigíl”
Computación e Informática UD: Adm. de Bases de Datos
13. Determinar el total pagado a todos los empleados, en la tabla empleado2
14. Mostrar los clientes que recibieron Factura de venta el día 02 ó 03 de junio del 2018
15. Listar los nombres de artículos vendidos en Boletas de ventas
16. Cantidad de artículos cuyo nombre inicia con “M”, vendidos en el mes de julio-2018
17. Precio unitario promedio al que se está vendiendo los artículos, en boletas y facturas
18. Monto total de dinero gastado en Facturas por cada uno de los clientes
19. Número total de ventas realizadas en Boletas, agrupadas por código de cliente
20. Recuperar los nombres y apellidos de los 3 primeros Empleados
21. Listar los Empleados cuyo cargo sea “Vendedor”
22. Proveedores de la ciudad de “Tacna”, ordenados por Nombre de Proveedor.
23. Artículos con Stock menor a 10 unidades.
24. Artículos con PU entre 3 y 20 soles
25. Empleados mujeres cuyo apellido inicie con las letras R o F.
26. Facturas con total superior a 20 soles y que se hayan registrado entre el 01/06/16 al 30/06/16
27. Clientes que recibieron Boleta de Venta agrupados por Código de Empleado
28. Cuantas Facturas ha emitido cada empleado.
29. Cuantas Boletas ha emitido cada “Vendedor” en el mes de Junio
30. Cuál es el artículo más caro
31. Cuantos Empleados No tienen Teléfono
32. Ventas realizadas en Boletas por la empleada “Luz” en el mes de julio 2016
33. Nombre de Empleados y Fecha de facturación para las ventas realizadas en el mes de julio del 2016.
34. Cambiar el actual Nº DNI, por: 69696969, del Empleado Keiko Flores Tisnado
35. Incrementar el sueldo a todos los Empleados, en 10%.
36. Incrementar el sueldo a los Empleados, de sexo femenino en 20%
37. Incrementar el sueldo básico a los Empleados, con edad mayor a 30 años

Mgr. David Caipa M. 29/08/18 Pág. 5

Anda mungkin juga menyukai