Base de datos
Ingeniería de Software – Presencial
Unidad 4
Lenguaje SQL: definición y manipulación de datos
Tema 1
Manipulación de datos
Richard Ramirez-Anormaliza
1
Semana 11: Manipulación de datos
Inicio
2
Por qué esta clase?
Aprender a ejecutar sentencias de manipulación de
datos
3
Objetivo & resultado de aprendizaje
Sistemas de bases de datos
Objetivo
Manipular datos en una base de datos.
Aplica sentencias SQL de manera eficiente para
Resultado la correcta administración de la información
que reside en un SGBD; la misma que ayude a
automatizar los procesos transaccionales dentro
Richard Ramirez-Anormaliza
de una empresa
4
@riramireza
Semana 11: Manipulación de datos
Desarrollo
5
Contenido
Sistemas de bases de datos
Tema:
• Manipulación de datos en un SGBD
Subtemas:
• Inserción de datos
• Modificación de datos
• Eliminación de datos
Richard Ramirez-Anormaliza
@riramireza
Sentencias de manipulación de datos
Sistemas de bases de datos
❑ SELECT - para consultar los datos de la base de datos;
❑ INSERT - para insertar datos en una tabla;
❑ UPDATE - para actualizar los datos de una tabla;
❑ DELETE - para borrar datos de una tabla.
Literales - son constantes
❑ Entre comillas simples – No numéricos
❑ Sin comillas simples – Numéricos
INSERT INTO Propiedad(PropiedadId, Calle, Ciudad, CodPostal,
Tipo, Habitaciones, Renta)
VALUES ('PAi4', '16 Holhead', 'Aberdeen', 'AB7 5SU’,
'House', 6, 650.00);
Richard Ramirez-Anormaliza 7
@riramireza
Consultas simples
Sistemas de bases de datos
SELECT | DISTINCT | ALL | {* | [ expresióncolumna [AS nuevoNombre]l [,...]]
FROM NombrelTabla [alias] [,...]
[WHERE condición]
[GROUP BY listaColumnas] [GROUP BY condición]
[ORDER BY listaColumnas]
❑ expresiónColumna nombre de columna o una expresión, NombreTabla nombre de una tabla vista, y alías es
una abreviatura opcional para nombreTabla.
❑ La secuencia de procesamiento en una instrucción SELECT es:
FROM especifica la tabla o tablas que hay que usar
WHERE filtra las filas de acuerdo con alguna condición
GROUP BY forma grupos de filas que tengan el mismo valor de columna
HAVING filtra los grupos de acuerdo con alguna condición
SELECT especifica qué columnas deben aparecer en la salida
ORDER BY especifica el orden de la salida
❑ El orden no puede cambiarse. Las dos únicas cláusulas obligatorias son las dos primeras: SELECT y FROM
Richard Ramirez-Anormaliza 8
@riramireza
Ejemplo consulta
Staff
Sistemas de bases de datos
❑ Lista todos los campos de la tabla Staff
SELECT StaffId, Nombre, Apellido, Posición, Sexo, FecNacimiento, Sueldo
FROM Staff
SELECT *
FROM Staff
Richard Ramirez-Anormaliza 9
@riramireza
Campos calculados
Staff
Sistemas de bases de datos
❑ Listar el salario mensual de todos los empleados en la que se muestre el
número del empleado, el nombre, el apellido y salario mensual.
SELECT StaffId, Nombre, Apellido,
Sueldo/12
FROM
SELECTStaffStaffId, Nombre, Apellido, Sueldo/12 AS
SueldoMes
FROM Staff
Richard Ramirez-Anormaliza 10
@riramireza
Ejemplo consulta
Staff
Sistemas de bases de datos
❑ Lista con los salarios de todos los empleados en la que sólo se muestre el
número de empleado, el nombre, el apellido y los datos salariales
SELECT StaffId, Nombre, Apellido,
Sueldo
FROM Staff
Richard Ramirez-Anormaliza 11
@riramireza
Selección de filas (cláusula WHERE)
Staff
Sistemas de bases de datos
❑ Generar una lista con todos los empleados cuyo salario sea superior a $ 10.000
SELECT StaffId, Nombre, Apellido,
Sueldo
FROM Staff
WHERE sueldo > 10000;
Richard Ramirez-Anormaliza 12
@riramireza
Condiciones y operadores
Sistemas de bases de datos
❑ En SQL, están disponibles los siguientes operadores simples de comparación
= igual
< > distinto (estándar ISO) != distinto (permitido en algunos dialectos)
< menor o igual que
> mayor o igual que
❑ Operadores lógicos AND, OR y NOT, con paréntesis (si se necesitan o desean) para
mostrar el orden de evaluación.
❑ Las reglas para evaluar una expresión condicional son:
Las expresiones se evalúan de izquierda a derecha;
Primero se evalúan las subexpresiones contenidas entre corchetes;
El operador NOT se evalúa antes que los operadores AND y OR;
El operador AND se evalúa antes que el operador OR.
❑ Se recomienda utilizar siempre paréntesis para eliminar cualquier posible ambigüedad.
Richard Ramirez-Anormaliza 13
@riramireza
Selección de filas (cláusula WHERE)
Staff
Sistemas de bases de datos
❑ Generar un listado con posición Manager y Assistant
SELECT StaffId, Nombre, Apellido, Posición, Sexo, FecNacimiento, Sueldo
FROM Staff
WHERE Posición = ‘Manager’ OR Posición = ‘Assistant';
❑ Listar los empleados con salario comprendido entre 20.000 y 30.000 $
SELECT StaffId, Nombre, Apellido, Posición, Sexo, FecNacimiento, Sueldo
FROM Staff
WHERE Sueldo BETWEEN 20000 AND 30000;
Richard Ramirez-Anormaliza 14
@riramireza
Selección de filas (cláusula WHERE)
Staff
Sistemas de bases de datos
❑ Listar los empleados con apellido White y Ford
SELECT StaffId, Nombre, Apellido, Posición, Sexo, FecNacimiento, Sueldo
FROM Staff
WHERE Apellido IN (‘White’, ‘Ford’);
Richard Ramirez-Anormaliza 15
@riramireza
Evaluación – retroalimentación
(Responder con una idea en el panel, máximo 4 palabras)
Sistemas de bases de datos
¿Qué es lo más importante/significativo
que aprendiste en la clase?
¿Cuál es la principal duda que todavía
tienes respecto a la clase?
Richard Ramirez-Anormaliza 16
@riramireza
Semana 11: Manipulación de datos
Práctica
17
Modelo datos
Sistemas de bases de datos
❑ Modelo Conceptual
Richard Ramirez-Anormaliza 18
@riramireza
Modelo de datos
Sistemas de bases de datos
❑ Generar el modelo Lógico
Richard Ramirez-Anormaliza 19
@riramireza
Modelo de datos
❑ Generar Modelo Físico
Sistemas de bases de datos
Richard Ramirez-Anormaliza 20
@riramireza
Generar base de datos
❑ Generar base de datos
Sistemas de bases de datos
❑ Luego ejecutar el script generado en SQL-Server Management Studio
Richard Ramirez-Anormaliza 21
@riramireza
Crear base de datos
❑ Luego ejecutar el script generado en ❑ Luego ejecutar el script generado en
Sistemas de bases de datos
SQL-Server Management Studio MySQL Workbench
Richard Ramirez-Anormaliza 22
@riramireza
Adición de datos a la base de datos
(INSERT)
Sistemas de bases de datos
❑ Opción 1
INSERT INTO NombrelTabla [(ListaColumnas)]
VALUES ( ListaValores );
❑ El número de elementos de cada lista debe ser el mismo;
❑ Correspondencia directa entre las posiciones de los elementos en ambas listas,
❑ El tipo de datos de cada elemento de ListaValores debe ser compatible con el tipo de datos de la
correspondiente columna.
❑ Opción 2
INSERT INTO NombreTabla [( ListaColumnas) l
SELECT...
❑ Permite copiar múltiples filas de una o más tablas en otra tabla
Richard Ramirez-Anormaliza 23
@riramireza
Ejemplo INSERT
Sistemas de bases de datos
❑ Insertar filas en la tabla DPTO
INSERT INTO DPTO (IdDpto, Dpto)
VALUES (1, 'Finanzas')
INSERT INTO DPTO (Dpto, IdDpto)
VALUES ('Contabilidad', 2)
INSERT INTO DPTO
VALUES (3, 'Auditoria')
Richard Ramirez-Anormaliza 24
@riramireza
Modificación de datos en la base de
datos (UPDATE)
Sistemas de bases de datos
UPDATE NombreTabla
SET NombreColumna1 = valorDatos1 [,
NombreColumna2 = valorDatos2 ,...]
[WHERE condiciónBúsqueda]
Richard Ramirez-Anormaliza 25
@riramireza
Ejemplo UPDATE
Sistemas de bases de datos
❑ Incrementar un 3% el salario de todos los empleados.
UPDATE EMPLEADO
SET Sueldo = Sueldo *1.03;
❑ Incrementar un 5% el salario de todos los gerentes.
UPDATE EMPLEADO
SET Sueldo = Sueldo *1.05
FROM EMPLEADO AS E, CARGO AS C
WHERE E.IdCargo = C.IdCargo
AND Cargo = 'Gerente';
Richard Ramirez-Anormaliza 26
@riramireza
Borrado de datos de la base de datos
(DELETE)
Sistemas de bases de datos
DELETE FROM NombrelTabla
[WHERE condiciónBúsqueda]
Richard Ramirez-Anormaliza 27
@riramireza
Ejercicio: A partir del modelo,
construir las siguientes sentencias
Sistemas de bases de datos
❑ Eliminar los empleados con cargo Asistente.
❑ Incrementar un 5% el salario de todos los gerentes.
Richard Ramirez-Anormaliza 28
@riramireza
Ejemplo DELETE
Sistemas de bases de datos
❑ Eliminar el empleado con Id = 1
DELETE FROM EMPLEADO
WHERE IdEmpleado = 1;
❑ Eliminar los empleados con cargo Asistente
DELETE FROM EMPLEADO
WHERE IdCargo IN (
SELECT IdCargo
FROM Cargo
WHERE Cargo = 'Asistente');
Richard Ramirez-Anormaliza 29
@riramireza
Modificar agregar un campo
❑ Agregar el campo Sexo a la tabla EMPLEADO
Sistemas de bases de datos
ALTER TABLE EMPLEADO ADD
Sexo Char(1) DEFAULT 'M';
Richard Ramirez-Anormaliza 30
@riramireza
Semana 11: Manipulación de datos
Cierre
31
Práctica
Sistemas de bases de datos
❑ Subir el scritp:
1. Ingresar a Sql Server Management Studio
2. Descargar el script: 202201-BD-Clase_S11-1-SQL-Server y ejecutar
en Sql Server Management Studio
Richard Ramirez-Anormaliza 32
@riramireza
Ejercicios
Sistemas de bases de datos
Una vez ejecutado de manera satisfactoria el script descrito en la
diapositiva anterior, desarrollar los siguientes sentencias SQL:
1. Listar los departamentos con sus empleados y sueldos ordenados alfabéticamente.
2. Listar los cargos existente en la base de datos con la cantidad de empleados en cada cargo.
3. Listar los departamentos con más de 40 empleados
4. Presentar el cargo que tiene más empleados
5. Presentar el departamento que tiene menos empleados
6. Aumentar el sueldo a empleados del departamento de Finanzas el 15% de su sueldo
7. Corregir el sexo a los empleados registrados en el sistema
8. Eliminar los cargos que no tienen empleados
9. Listar un reporte de Departamento y el total de sueldo que se paga
10. Presente el mayor sueldo, menor sueldo y sueldo promedio que se paga por departamento
Richard Ramirez-Anormaliza 33
@riramireza
Referencias
Sistemas de bases de datos
❑ Connolly, T. M., & Begg, C. E. (2005). Sistemas de bases de datos
(Pearson Educación (ed.); Cuarta).
Richard Ramirez-Anormaliza 34
@riramireza
Agenda
Sistemas de bases de datos
TEMA: 1.- Manipulación de datos en un
SGBD
• SUBTEMA: 1.- Inserción de datos con IDE
Próxima • SUBTEMA: 2.- Modificación de datos con
Clase IDE
• SUBTEMA: 3.- Eliminación de datos con
IDE
35