UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION CICLO 01-2014 GUIA DE LABORATORIO Nº 7 Nombre de la práctica: Uso de consultas de Inserción, actualización y eliminación de datos Lugar de ejecución: Laboratorio de Informática Tiempo estimado: 3 horas Materia: Base de datos Docentes: Evelyn Hernández, Ingris Hernández, Herson Serrano I. Objetivos 1. Agregar información a una o varias tablas almacenadas en una base de datos 2. Actualizar datos almacenados en una base de datos tomando ciertos criterios 3. Eliminar datos o información innecesaria almacenada en una base de datos II. Introducción Teórica Consultas de acción Las consultas de acción son aquellas consultas que no devuelven ningún registro, sino que se encargan de acciones como: Agregar registros Actualizar registros Eliminar registros Para comprender este tipo de consultas vamos a utilizar como ejemplo el siguiente diagrama de base de datos: Sentencia INSERT INSERT. Permite agregar, adicionar o insertar uno o más registros a una (y solo una) tabla en una base de datos relacional. 1 Debe proporcionar en una sentencia INSERT igual número de campo y columnas. Si se van a proporcionar valores para todos los campos de una tabla pueden omitirse los nombres de dichos campos en la instrucción. Ejemplos: En el siguiente ejemplo se agrega datos a la tabla Reservas en donde se respeta la relación entre las tablas, quiere decir que no se puede agregar un código de vehículo si este no ha sido ingresado previamente en la tabla donde se encuentre la llave primaria (Tabla Vehiculos) Este dato indica el código del vehículo de la tabla vehículos, siguiendo el ejemplo solo se pueden agregar datos con código de vehículos del 1 al 7 Sentencia SELECT INTO SELECT INTO se utiliza para crear una tabla a partir de los valores de otra. Ejemplo: Se desea crear una tabla con los datos de la tabla producto que pertenezcan a la categoría bebidas 2 Al hacer un SELECT a la tabla Producto se tienen los siguientes resultados: Después de ejecutar la sentencia SELECT INTO y al hacer un SELECT a la tabla Producto CategoriaBebidas, se obtienen los siguientes resultados Sentencia INSERT INTO – SELECT La consulta SELECT de la instrucción INSERT se puede utilizar para agregar valores a una tabla de la base de datos. Ejemplo: Al hacer un SELECT a la tabla esta no tiene datos 3 Al hacer un SELECT a la tabla esta debe tener los datos de los productos que pertenecen a la categoría con código igual a 1 Nota: a diferencia con la sentencia SELECT INTO, aquí debe de crearse la tabla previamente Sentencia UPDATE UPDATE. Permite la actualización o modificación de uno o varios registros de una única tabla. Se debe utilizar en conjunto con la cláusula SET con la cual se indicará(n) el(los) campo(s) a actualizar con el valor indicado. Una segunda cláusula WHERE, opcional, permite indicar qué registros deben ser actualizados. Si se omite la cláusula WHERE la ejecución de la consulta modificará todos los registros de la tabla. Ejemplos: Ejemplo 1. Actualizando datos a varios registros Al hacer un SELECT a la tabla se obtiene los siguientes resultados: Ejemplo 2. Actualizando datos donde se cumpla una o varias condiciones Una condición: 4 Al hacer un SELECT a la tabla se obtiene los siguientes resultados: Varias condiciones: III. Requerimientos • • Máquina con SQL Server 2008 Guía Número 7 de base de datos IV. Procedimiento Parte 1: Iniciando sesión desde SQL Server Managment Studio 1. 2. Hacer clic en el botón Inicio Hacer clic en la opción Todos los programas y hacer clic en Microsoft SQL Server 2008 R2 Para conectarse con el servidor de base de datos elija los siguientes parámetros de autenticación: Tipo de servidor: Database Engine Nombre del servidor: S02-PCNumMaquina Nota: NumMaquina es el número de la maquina local Autenticación: SQL Server Authentication Login: sa Password: 123456 Parte 2. Uso de las diferentes tipos de consultas de acción Ejercicio 1. Creación de la base de datos 1. Crear la base de datos RentaCar 2. Hacer uso de la base de datos 5 Ejercicio 2. Creación de las tablas y las restricciones de campo 1. Crear las tablas de la base de datos Tomando el siguiente diccionario de datos y completando los espacios que faltan en las tablas: Tabla Reservas: Nombre del campo codReserva codVehiculo Fecha destino kilometros codEmpleado Tipo de dato int int date text doubre char Tamaño 5 Permite valores nulos No No No si si no Tipo de restricción Llave primaria Llave foránea la cual hace referencia a la tabla Empleados Tabla Vehiculos: Nombre del campo Tipo de dato Tamaño CodVehiculo Descripcion int text Permite valores nulos No No Tipo de restricción Llave primaria Tabla Empleados: Nombre del campo CodEmpleado Nombre Apellido Salario CodOficina Tipo de dato char Tamaño Char 5 Fecha Char 5 5 Permite valores nulos No No Tipo de restricción Llave primaria Llave foránea, que hace referencia a la tabla Oficinas No Tabla Oficinas: Nombre del campo Tipo de dato Tamaño Permite valores nulos Tipo de restricciones codOficina Char 5 No Llave primaria Direccion varchar 200 No Localidad Provincia 6 Ejercicio 3. Creación del diagrama de la base de datos 1. Crear el diagrama de la base de datos, el cual queda de la siguiente manera 2. Guardar el diagrama de la base de datos Ejercicio 4. Creación de la base de datos 3. Crear la siguiente base de datos 4. Hacer uso de la base de datos Ejercicio 5. Creación de las tablas y las restricciones de campo 2. Crear las tablas de la base de datos 7 Tomando el siguiente diccionario de datos: Tabla Alumno: Nombre del campo Tipo de dato Tamaño Permite valores nulos Tipo de restricción Carnet Char 8 No Llave primaria NombreCompleto Varchar 50 Si Tabla Materia: Nombre del campo Tipo de dato Codigo Nombre Char Varchar UV Int Tamaño 5 30 Permite valores nulos No Si Si Tipo de restricción Llave primaria Valor único, el nombre de la materia no se puede repetir Ckeck, en donde solo se aceptan valores entre 2 y 5 unidades Tabla Inscripcion: Nombre del campo Tamaño Carnet Tipo de dato Char 8 Permite valores nulos No CodigoMateria Char 5 No Ciclo Char 5 No Tipo de restricción La unión de los tres campos se crea una llave única Llave Foránea la cual hace referencia a la tabla Alumno Llave Foránea la cual hace referencia a la tabla Materia 3. Crear la tabla Alumno 4. Crear la tabla Materia 8 5. Crear la tabla Inscripcion 6. Crear las relaciones entre las tablas En la tabla Inscripcion se está creando las relaciones entre tablas (creando llaves foráneas) por lo tanto si se intenta eliminar un registro de la tabla Alumno cuyo valor de clave primaria existe referenciada en la tabla Inscripcion, la acción no se ejecuta y aparece un mensaje de error. Esto sucede porque, por defecto, para eliminaciones, la opción de la restricción FOREIGN KEY es "no action" (ninguna acción). El mismo error obtendría si se intenta actualizar un valor del campo Carnet de la tabla Alumno si esta referenciada por una FOREIGN KEY en este caso sería el campo Carnet de la tabla Inscripcion. La restricción FOREIGN KEY de la tabla Inscripcion tiene las cláusulas ON DELETE CASCADE y ON UPDATE CASCADE las cuales estas cláusulas son opcionales. Estas cláusulas especifican cómo debe actuar SQL Server frente a eliminaciones y modificaciones de las tablas referenciadas (tablas con la llave primaria) en la restricción en el ejemplo la acción la determina la opción CASCADE, la cual indica que si eliminamos o actualizamos un valor del campo 9 Carnet de la tabla Alumno los registros coincidentes en la tabla foránea en este caso los datos del campo Carnet de la tabla Inscripcion, también se eliminan o se modifican a esto se le conoce como integridad referencial en cascada Ejercicio 6. Creación del diagrama de la base de datos 3. Crear el diagrama de la base de datos, el cual queda de la siguiente manera 4. Guardar el diagrama de la base de datos Ejercicio 7. Uso de la instrucción INSERT 1. Agregar los siguientes datos a la tabla Alumno 2. Realice un SELECT a la tabla y observara que esta ya tiene registros 3. Agregar los siguientes datos a la tabla Materia 10 4. Realice un SELECT a la tabla para verificar la inserción de los registros 5. Agregar los siguientes datos a la tabla Inscripcion 6. Realice un SELECT a la tabla para verificar la inserción de los registros Ejercicio 8. Uso de la instrucción UPDATE 1. El alumno que tiene el carnet GH121214 se debe cambiar el nombre de Gerardo Hierro a Gerardo Hernandez, digitar la siguiente consulta: 2. Realice un SELECT a la tabla para verificar, para verificar la actualización del campo en la tabla 3. En el siguiente ejemplo se actualizará el carnet del alumno Gerardo Hernandez y se verificará el funcionamiento de la instrucción ON UPDATE CASDADE 4. Primero se realizará un SELECT a las dos tablas para verificar la información 11 5. Ahora digitamos la consulta de actualización 6. Realizar un SELECT a la tabla y verificar los datos de inserción Ejercicio 9. Uso de la instrucción DELETE 1. Crear la siguiente consulta de eliminación de datos, se quiere eliminar el registro del alumno donde el carnet GH111214 2. Verifique los datos de las tablas Alumno e Inscripcion por medio de una consulta SELECT 12 3. Y observará que los datos del alumno con carnet GH111214 se han eliminado tanto en la tabla Alumno y en la tabla Inscripción Guardar el Script con el nombre: Consultas_Guia7.sql V. Ejercicio complementario Con la base de datos creada en el procedimiento realice las siguientes consultas a. Agregar otros dos registros a la tabla b. Con la instrucción SELECT INTO, crear una tabla que tenga los datos de la materia donde las unidades valorativas sean mayores o iguales a 4 c. Con la instrucción INSERT SELECT – INTO, crear una tabla en donde se almacenen aquellos alumnos en donde su número de carnet empiece con la letra G d. Crear dos consultas de actualización de datos e. Crear dos consultas de eliminación de datos Guardar el Script con el nombre: EjercicioComplementario_Guia7.sql VI. Análisis de resultados Tarea en parejas: Crear la siguiente base de datos en SQL Server: 13 Crear la base de datos Crear las tablas o Crear las restricciones Crear las relaciones entre las tablas e implementar las sentencias ON DELETE CASCADE y ON UPDATE CASCADE Agregar 5 registro a cada tabla Crear 5 consultas de actualización de datos Crear 5 consultas de eliminación de datos VI. Fuente de consulta 1. La Biblia de SQL Server 2005 Madrid, España: Anaya, 2006 Autor: Mike Gundelerloy y Joseph L. Jorden Biblioteca UDB – Clasificación: 005.361 G975 2006 2. Microsoft SQL Server 2008: Guía del Administrador Madrid, España: ANAYA, 2009 Autor: William Stanek Biblioteca UDB – Clasificación: 005.361 S784 2009 14