1
Base de datos I
Facultad de Ingeniería.
Escuela de computación.
2 Base de datos I, Guía 4
Introducción
Este manual ha sido elaborado para orientar al estudiante de
Bases de datos I en el desarrollo de sus prácticas de
laboratorios, haciendo uso de este antes, durante y después
de la práctica, de tal forma que ofrece un método facilitador
en su proceso de enseñanza/aprendizaje durante esta
asignatura.
En el desarrollo de esta asignatura se ha designado realizar
las prácticas en 16 sesiones semanales de laboratorios, los
que incluyen 11 prácticas, dos parciales y un proyecto final
durante los cuales, el estudiante aplicará los conceptos y
las técnicas fundamentalmente necesarias para el dominio de
programas para el uso, configuración y administración de SQL
Server 2008 o superior.
Todas las guías de laboratorio están estructuradas de la
siguiente forma:
- Objetivos
- Materiales y equipos
- Introducción teórica
- Procedimiento
- Bibliografía
- Hoja de evaluación (En caso de que la actividad sea
evaluada)
Base de datos I. Guía 4 3
Facultad: Ingeniería.
Escuela: Computación.
Asignatura: Base de datos I.
Pág
Tabla de Contenido
Guía 2. Uso de sentencias para el envió
y extracción de datos
Guía 6
Contenido
a 1 ----------------------------------------------- 4
Objetivos ----------------------------------------------- 4
Materiales y equipos ------------------------------------ 4
Introducción -------------------------------------------- 4
Tablas -------------------------------------------------- 4
Datos --------------------------------------------------- 5
Conversión de datos ------------------------------------- 7
Tipos de datos, contenidos y espacio utilizado ---------- 7
Procedimiento ------------------------------------------- 9
Ejercicios ---------------------------------------------- 15
Investigación ------------------------------------------- 16
Bibliografía -------------------------------------------- 16
4 Base de datos I, Guía 4
Tema: Uso de sentencias para el envió y
extracción de datos.
Contenidos
En la guía se presentarán conceptos que le permitan a los
estudiantes poder realizar envió y extracciones de datos, de
la base.
Objetivo Específico
Identificar la sintaxis de las consultas de datos
Elaborar sentencias de manejo de datos.
Materiales y Equipo
SQL SERVER 2008 o superior.
Guía de práctica.
[Link]
[Link]
[Link]
[Link]
Introducción
Teórica
Las sentencias más usadas para darle mantenimiento a las
tablas son las sentencias SELECT, INSERT, DELETE y UPDATE,
con las cuales podemos obtener datos, agregar, borrarlos y
actualizarlos, además de aplicar condiciones y operadores
para cada sentencia.
SELECT
Recupera cero o más filas de una o más tablas de una base de
datos. En la mayoría de las aplicaciones, SELECT es de las
sentencias más usadas para la manipulación de datos. La
sentencia SELECT tiene muchas cláusulas opcionales:
Base de datos I. Guía 4 5
WHERE: Especifica una condición para la recuperación de
datos.
ORDER BY: especifica el orden en el que devolver las filas ya
sea este ascendente o descendente.
AS proporciona un alias que se puede utilizar para cambiar el
nombre temporalmente tablas o columnas.
Otras cláusulas las veremos en las próximas guías.
Sintaxis:
SELECT [NombreColumna,NombreColuman,…] FROM [NombreTabla]
SELECT [*] FROM [NombreTabla]
SELECT [*] FROM [NombreTabla] WHERE | ORDER BY [Condición]
INSERT INTO
Agrega un registro nuevo al final de la tabla, es posible escribir la instrucción INSERT INTO
en dos formas. La primera forma no especifica los nombres de las columnas en las que se
insertan los datos, sólo sus valores:
Sintaxis:
INSERT INTO [NombreTabla] VALUES ([ValorColumna,
ValorColumna,…])
La segunda forma específica tanto los nombres de columna y
los valores que se van a insertar:
INSERT INTO [NombreTabla] ([NombreColumna,NombreColumna,…])
VALUES ([ValorColumna,ValorColumna,…])
También es posible sólo para insertar datos en columnas
específicas.
Las instrucciones INSERT no especifican valores para los
siguientes tipos de columnas porque SQL Server Database
Engine (Motor de base de datos de SQL Server) genera los
valores de las siguientes columnas:
6 Base de datos I, Guía 4
Columnas con una propiedad IDENTITY que genera los
valores para la columna.
Columnas que tengan un valor predeterminado que utilice
la función NEWID para generar un valor GUID exclusivo.
Columnas calculadas.
UPDATE
La instrucción UPDATE se utiliza para actualizar los
registros existentes en una tabla.
Sintaxis:
UPDATE [NombreTabla]
SET
[NombreColumna=ValorColumna,NombreColumna=ValorColuman,...]
WHERE [NombreColumna=ValorVariable]
Advertencia
La cláusula WHERE especifica qué registro o
registros se deben actualizar. Si se omite la
cláusula WHERE, todos los registros se actualizarán
DELETE
La sentencia DELETE se utiliza para eliminar registros de una
tabla.
Sintaxis:
DELETE [NombreTabla]
WHERE [NombreColumna=ValorVariable]
Advertencia
La cláusula WHERE especifica qué registros o
registros que se deben eliminar. Si se omite la
cláusula WHERE, se borrarán todos los registros
Base de datos I. Guía 4 7
INICIO DE LA PRÁCTICA
Una forma de poder utilizar bien las sentencias es ayudándome
de forma gráfica, para lo tengo que expandir la base de
datos, y sobre la tabla, click derecho y selecciono “Script
Table as”, con lo cual me dará la opción de realizar varias
sentencias.
Ahora seleccionamos la opción “SELECT To” y tomo la opción
“New Query Editor Window”.
Esta opción genera la siguiente ayuda:
8 Base de datos I, Guía 4
De igual manera puedo usarlo para las demás sentencias.
MODO CONSOLA.
Lo primero que haremos es cargar el script que esta en el
anexo 1, con esta base haremos los ejercicios.
Primero realizaremos algunas sentencias INSERT para ver su
uso y limitaciones:
SELECT * FROM personas
SELECT pais FROM pais
SELECT nombre,apellido,sueldo FROM personas
SELECT nombre,apellido FROM personas WHERE sexo = 'F'
SELECT nombre,apellido,id_pais,sexo FROM personas WHERE sexo
= 'F' AND id_pais = 1
SELECT nombre,apellido,id_pais,sexo FROM personas WHERE sexo
= 'F' OR id_pais = 1
SELECT pais FROM pais
SELECT nombre,apellido,id_pais,sexo FROM personas WHERE sexo
= 'F' OR id_pais = 1
SELECT apellido,sueldo FROM personas WHERE sueldo > 500
SELECT nombre,apellido,sueldo FROM personas WHERE sueldo >
Base de datos I. Guía 4 9
500 AND sueldo < 700 AND sexo='M'
SELECT nombre AS NOMBRE, apellido AS APELLIDO, nacimiento AS
CUMPLEAÑOS FROM personas
SELECT apellido,nacimiento FROM personas ORDER BY nacimiento
Ahora probaremos las sentencias INSERT:
INSERT INTO personas
(apellido,nombre,sueldo,direccion,celular,sexo,nacimiento,id_
rol,id_pais)
VALUES
('Molina Vasquez','Alejandro',897,'10 Avenida Sur y 12
Calle Poniente','45633423', 'M','1970/4/21',2,3)
INSERT INTO personas VALUES
('Rivas Alba','Yesenia A',234,'4 Calle Oriten y parque Los
Arboles','54534243','F'
,'1979/11/1',2,4)
INSERT INTO personas (apellido,nombre,sueldo,id_rol,id_pais)
VALUES ('Marquez','Roxana Elizabeth',434,4,1)
Sigamos realizando pruebas con las sentencia UPDATE
UPDATE personas SET nacimiento = '1985/11/2' WHERE id_persona
= 14
UPDATE personas SET sexo = 'f' WHERE sexo = 'F'
UPDATE personas SET celular = ''
Por ultimo probaremos la sentencia DELETE
DELETE personas WHERE sueldo < 500
DELETE personas WHERE id_persona = 5
DELETE personas WHERE sexo = 'M'
10 Base de datos I, Guía 4
Ejercicios:
Investigue como ordenar una columna ascendente y
descendente una consulta SELECT.
Investigue el uso del comodín LIKE en las consultas
SELECT.
Realice un INSERT dejando vacía una columna No Null, y
verifique que pasa.
Elimine el primer registro de la tabla país y verifique
el resultado.
Realice pruebas con la base de datos NORTWIND
Bibliografía
Peter Rob, Carlos Coronel, SISTEMAS DE BASES DE DATOS,
Guía 3
THOMSON, México, 2006
Thomas Connolly, Carolyn Begg, SISTEMAS DE BASES DE
Guía DATOS, PERSON, España, 2007
4
Abraham Silberschatz, FUNJDAMENTOS DE BASES DE DATOS,
MCGRAW-HILL, Edición Digital, 2006
fía
Salazar Francisco, APRENDA SQL SERVER 2012.
Ross Mistry and Stacia Misner. Introducing Microsoft
SQL Server 2012. MicroSoft Press. Disponible
digitalmente en Recursos electronicos de la biblioteca
en Google Académico.
Anexo 1.
CREATE DATABASE SCRUM
GO
USE SCRUM
GO
CREATE TABLE roles
(
id_rol int IDENTITY(1,1),
rol varchar(20) not null,
CONSTRAINT PK_roles PRIMARY KEY (id_rol)
)
INSERT INTO roles VALUES ('ScrumMaster')
INSERT INTO roles VALUES ('ProductOwner')
INSERT INTO roles VALUES ('Team')
INSERT INTO roles VALUES ('Steakholders')
CREATE TABLE pais
(
Base de datos I. Guía 4 11
id_pais int IDENTITY(1,1),
pais varchar(25),
CONSTRAINT PK_pais PRIMARY KEY (id_pais)
)
INSERT INTO pais VALUES ('El Salvador')
INSERT INTO pais VALUES ('Guatemala')
INSERT INTO pais VALUES ('Costa Rica')
INSERT INTO pais VALUES ('Japon')
INSERT INTO pais VALUES ('Estados Unidos')
INSERT INTO pais VALUES ('Argentina')
INSERT INTO pais VALUES ('Mexico')
CREATE TABLE personas
(
id_persona int IDENTITY(1,1),
apellido varchar(40) not null,
nombre varchar(40) not null,
sueldo smallmoney,
direccion varchar(100),
celular varchar(8),
sexo varchar(1),
nacimiento date,
id_rol int not null,
id_pais int not null,
CONSTRAINT PK_persona PRIMARY KEY (id_persona),
CONSTRAINT FK_rol FOREIGN KEY (id_rol)
REFERENCES roles(id_rol),
CONSTRAINT FK2_pais FOREIGN KEY (id_pais)
REFERENCES pais(id_pais)
)
INSERT INTO personas VALUES ('Romero Peña','Sandra Y',1200,'','34567564','F','1972/3/3',3,1)
INSERT INTO personas VALUES ('Arevalo','Maria Johana',950,'','32356787','F','1976/2/16',3,3)
INSERT INTO personas VALUES ('Hernandez Mancia','Marielos',958,'','67567555','F','1986/7/4',3,4)
INSERT INTO personas VALUES ('Perez Juarez','Joaquin',850,'','34567564','M','1969/9/2',3,1)
INSERT INTO personas VALUES ('Solis Castro','Eduardo',600,'','12327523','M','1972/3/11',3,1)
INSERT INTO personas VALUES ('Ramos Nieto','Jorge',550,'','34567174','M','1972/10/4',4,1)
INSERT INTO personas VALUES ('Hernandez Carias','Johanna',1800,'','34234809','F','1952/3/4',1,1)
INSERT INTO personas VALUES ('Romero Peña','Manuel Alberto',0,'','34567342','M','1969/12/4',2,1)
INSERT INTO personas VALUES ('Garcia Alvarado','Roxana',1600,'','34345564','F','1970/4/4',1,1)
INSERT INTO personas VALUES ('Torres Castro','Alfredo',450,'','34565674','M','1980/2/9',3,5)
INSERT INTO personas VALUES ('Romero Peña','Verenice',400,'','34567589','F','1978/3/17',3,1)
INSERT INTO personas VALUES ('Martinez','Evelyn Roxana',340,'','34556764','F','1972/8/14',3,5)
INSERT INTO personas VALUES ('Siguenza','Eduardo',1120,'','21467564','M','1975/10/9',3,1)
INSERT INTO personas VALUES ('Alas Duran','Martin',1200,'','34562364','M','1972/3/4',3,1)
INSERT INTO personas VALUES ('Jerez M.','Jose Carlos',589,'','34563352','M','1972/3/6',4,1)
INSERT INTO personas VALUES ('Bolaños Cea','Sandra',244,'','67557564','F','1968/3/4',3,1)
INSERT INTO personas VALUES ('Cuestas D.','Jenny Maria',1089,'','34567564','F','1972/9/14',3,4)
INSERT INTO personas VALUES ('Romero Peña','Alexandra',1000,'','34565455','F','1972/7/24',3,1)
INSERT INTO personas VALUES ('Molina Nuñez','Mario',578,'','34567564','M','1962/3/7',3,3)
INSERT INTO personas VALUES ('Romero Peña','Jennifer',989,'','35657564','F','1977/10/21',3,3)
INSERT INTO personas VALUES ('Melendez A','Karla Maria',875,'','45656463','F','1956/12/1',4,1)
INSERT INTO personas VALUES ('Romero Peña','Andrea Lissette',0,'','34545343','F','1990/3/4',3,2)
INSERT INTO personas VALUES ('Melendez Torres','Wenceslado',270,'','34564563','M','1977/8/4',4,1)
INSERT INTO personas VALUES ('Vivas Rosales','Tere Maria',786,'','56345674','F','1964/2/7',3,1)