barrera paredes cinthia paola

15
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE MPUTO UNIDAD DE APRENDIZAJE: BASES DE DATOS Práctica No.2 “Funciones para el manejo de fechas y creación de vistasAlumna: Barrera Paredes Cinthia Paola Prof. Dra. Fabiola Ocampo Botello Grupo: 2CM2

Upload: moycs4

Post on 20-Jan-2016

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Barrera Paredes Cinthia Paola

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE CÓMPUTO

UNIDAD DE APRENDIZAJE: BASES DE

DATOS

Práctica No.2 “Funciones para el manejo de fechas y creación de

vistas”

Alumna: Barrera Paredes Cinthia Paola

Prof. Dra. Fabiola Ocampo Botello

Grupo: 2CM2

Page 2: Barrera Paredes Cinthia Paola

Práctica No.2 Funciones para el manejo de fechas y creación de vistas.

1. Crear la base de datos mostrada en la figura 1, con el nombre AgendaTel.Cuidando aspectos de integridad referencial.

2. Importar los datos del archivo RegAmigoPrac2.txt en la tabla AMIGOS.LOAD DATA LOCAL INFILE 'd:\\RegAmigoPrac2.txt' INTO TABLE AmigoFIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

Page 3: Barrera Paredes Cinthia Paola

LOAD DATA LOCAL INFILE 'd:\\RegTelsPrac2.txt' INTO TABLE Telefono FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

3. Funciones para el manejo de fechas.

a) Para visualizar la fecha y la hora registrada en el sistema. SELECTnow();

b) Visualizar la fecha registrada en el sistema. SELECT current_date();SELECT curdate();

Page 4: Barrera Paredes Cinthia Paola

c) Para ver el año de esta fecha. SELECT YEAR (CURDATE()); SELECT YEAR (current_date());

d) Para ver el mes de esta fecha. SELECT MONTH(CURDATE()); SELECT MONTH(current_date());

Page 5: Barrera Paredes Cinthia Paola

e) Para ver el día de esta fecha. SELECT DAY(curdate()); SELECT DAY(current_date());

f) Conocer la edad de los amigos registrados. SELECT NomPila, FechaNac, CURDATE(), (YEAR(CURDATE())-YEAR(FechaNac))- (MONTH(CURDATE()) < MONTH(FechaNac)) AS EdadFROM Amigo ORDER BY Edad;

NOTA: Para conocer la edad en años que tiene una persona, hay que calcular la diferencia entre el año de la fecha actual y el de la fecha de nacimiento. Después restar un 1 al resultado si el día y mes actuales son anteriores al día y mes indicados por la fecha de nacimiento. La comparación de funciones de fechas devuelve 1 ó 0. La expresión completa es extensa y un tanto confusa para usar como encabezado de columna, por lo que se emplea un alias (Edad) para que el encabezado sea más comprensible.

Page 6: Barrera Paredes Cinthia Paola

g) Seleccionar los amigos que cumplen en diciembre. SELECT NomPila, FechaNac, CURDATE()FROM AmigoWHERE MONTH(FechaNac) = 12;

h) Los amigos que cumplen el mes siguiente al registrado en el sistema. SELECT NomPila, FechaNac, CURDATE()FROM AmigoWHERE MONTH(FechaNac) = (SELECT IF ( (MONTH(CURDATE()) = 12), 1, (MONTH(CURDATE())+ 1)));

Page 7: Barrera Paredes Cinthia Paola

i) Los amigos que no cumplen en diciembre. SELECT NomPila, FechaNac, CURDATE() FROM AmigoWHERE MONTH(FechaNac) != 12;

j) El nombre de los amigos que nacieron en un día domingo. SELECT NomPila, FechaNacFROM AmigoWHERE DayOfWeek(FechaNac) = 1;NOTA: DayOfWeek(fecha) regresa 1-Domingo, 2-Lunes, 3-Martes, …

Page 8: Barrera Paredes Cinthia Paola

k) Los amigos que ya cumplieron años. SELECT NomPila, FechaNacFROM AmigoWHERE DAYOFYEAR(FechaNac) < DAYOFYEAR(CurDate());

l) El número de días que han vivido los amigos registrados.SELECT NomPila, FechaNac, DATEDIFF(CURDATE(), FechaNac) AS DiasVividosFROM Amigo ORDER BY DiasVividos;

Page 9: Barrera Paredes Cinthia Paola

m) La fecha de nacimiento en formato largo.SELECT NomPila, DATE_FORMAT (FechaNac, '%W %M %Y') FROM Amigo;

1. Funciones para la creacion de vistas.

n) Crear una vista con las edades de los amigos. CREATE VIEW agendatel.mivista ASSELECT Cve, ApPat, ApMat, NomPila,(YEAR(CURDATE())-YEAR(FechaNac))- (MONTH(CURDATE()) < MONTH(FechaNac)) AS EdadFROM Amigo; SHOW TABLES; DESCRIBE mivista; SELECT * FROM mivista;

Page 10: Barrera Paredes Cinthia Paola

o) Insertar en la tabla Amigo el siguiente registro:1000, ‘Cortes', ‘Duarte’, ‘Jose Luis’, ‘Av. Del Pozo No. 17’, '1994/11/11'

Pregunta 1. Escriba la sentencia correspondiente.INSERT INTO Amigo VALUES(1000,’Cortes’,’Duarte’,’Jose Luis’,’Av. Del Pozo No17’,’1994/11/11);

Pregunta 2. Describa lo que sucede en la vista mivista. Lo que se registró en Amigo, se agregó a la vista.

Pregunta 3. Describa lo que almacena la vista

VistaTels. Los datos y teléfonos se agregan a la vista.

Page 11: Barrera Paredes Cinthia Paola

q) Encontrar a los amigos mayores de edad. SELECT Cve, ApPat, ApMat, NomPila, Edad FROM mivistaWHERE Edad >= 18;

r) Sentencia para visualizar la forma en que se creó una vista. SHOW CREATE VIEW mivista;

s) Suponga que desea alterar la estructura de una vistaALTER VIEW agendatel.mivista AS SELECT Dir, Cve, ApPat, ApMat, NomPila,(YEAR(CURDATE())-YEAR(FechaNac))- (MONTH(CURDATE()) < MONTH(FechaNac)) AS EdadFROM Amigo;SHOW TABLES; DESCRIBE mivista; SELECT * FROM mivista;

Page 12: Barrera Paredes Cinthia Paola

5. Investigue las funciones de agregación en MySQL. t) Encontrar la edad promedio de los amigos.SELECT AVG(Edad) FROM mivista;

u) Encontrar el amigo con más edad. SELECT NomPila, EdadFROM miVistaWHERE Edad = (SELECT MAX(Edad) FROM miVista);

Page 13: Barrera Paredes Cinthia Paola

SEGUNDA PARTE. Escriba con sus propias palabras la función que tienen

los comandos vistos en esta práctica y otros más.

Consulte el manual en línea de MySQL sólo para apoyarse en el entendimiento de las funciones. NO transcriba lo escrito en el manual.

Tabla 1. Comandos vistos en la práctica y otros más.

ALTER VIEWCREATE VIEW CURDATE() CURRENT_DATE CURTIME() CURRENT_TIME CURRENT_TIME() DATE(expresión) DATEDIFF(exp1, exp2) DATE_FORMAT(fecha, formato)DAY(fecha)DAYOFWEEK(fecha)

DAYOFMONTH(fecha) DAYOFYEAR(fecha) DESCRIBE

DROP VIEW LOAD DATA NOW() MONTH(fecha)MONTHNAME(fecha)

ORDER BYSHOW CREATE VIEW SHOW TABLES SYSDATE()

TO_DAYS(fecha)

WEEKDAY(fecha)WEEKOFYEAR(fecha)

YEAR(fecha)

Modifica una vistaCrea una vistaNos devuelve la fecha actualFunción que da la fecha actual del sistemaDevuelve la hora actualEs igual que curtime()Tambien es igual que curtime()Extrae una parte de la expresiónDevuelve la diferencia entre las expresionesFunción que escribe una fecha dada en un formatoespecifico también dado.Devuelve solo el día de la fechaDevuelve el numero del dia respecto al dia de la semana(domingo 1, lunes 2….)Devuelve el día del mes de la fechaDevuelve el día del año de la fechaFunción que proporciona información acerca de los tipos de datos que conforman las columnas de una tabla.Elimina una vista antes creadaCarga los datos desde un archivoNos entrega la fecha y la hora actualeDevuelve solo el mes de la fechaFunción que da el nombre del mes de la fecha que se lepasa como argumento.Ordena los valores de la tablaMuestra la forma en la que se creó una vistaMuestra las tablas que se encuentran en la BDDRetorna la fecha y hora del sistema local de la base dedatosFunción que retorna el equivalente en días a la fechaque se le proporciona como argumento.Devuelve el dia de la semana de la fechaEntrega la semana del año en la que se encuentra lafechaDevuelve el año de la fecha

Page 14: Barrera Paredes Cinthia Paola

TERCERA PARTE. Realice el diseño de una base de datos similar a la presentada en esta práctica y construya enunciados y las consultas en MySQL de cada una de las sentencias de la tabla 1.

Utilice la herramienta Workbench para realizar el modelado de la base de datos relacional.Instrucciones para la entrega de la práctica:- Inserte en cada ejercicio resuelto y propuesto los resultados que muestra elSGBD MySQL.- Grabe el archivo con su nombre de la siguiente forma: ApPaternoApMaternoNombre.doc

Por ejemplo: OcampoBotelloFabiola.doc- Suba al grupo la práctica terminada en la carpeta llamada Practicas\Practica 2