Está en la página 1de 14

INSTITUTO POLITCNICO NACIONAL

ESCUELA SUPERIOR DE CMPUTO UNIDAD DE APRENDIZAJE: BASES DE DATOS

Prctica No.2 Funciones para el manejo de fechas y creacin de vistas

Alumna: Barrera Paredes Cinthia Paola

Prof. Dra. Fabiola Ocampo Botello Grupo: 2CM2

Prctica No.2 Funciones para el manejo de fechas y creacin 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 Amigo FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

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. SELECT now();

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

c) Para ver el ao 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());

e) Para ver el da 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 Edad FROM Amigo ORDER BY Edad;
NOTA: Para conocer la edad en aos que tiene una persona, hay que calcular la diferencia entre el ao de la fecha actual y el de la fecha de nacimiento. Despus restar un 1 al resultado si el da y mes actuales son anteriores al da y mes indicados por la fecha de nacimiento. La comparacin de funciones de fechas devuelve 1 0. La expresin 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 ms comprensible.

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

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

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

j) El nombre de los amigos que nacieron en un da domingo. SELECT NomPila, FechaNac FROM Amigo WHERE DayOfWeek(FechaNac) = 1; NOTA: DayOfWeek(fecha) regresa 1-Domingo, 2-Lunes, 3-Martes,

k) Los amigos que ya cumplieron aos. SELECT NomPila, FechaNac FROM Amigo WHERE DAYOFYEAR(FechaNac) < DAYOFYEAR(CurDate());

l) El nmero de das que han vivido los amigos registrados. SELECT NomPila, FechaNac, DATEDIFF(CURDATE(), DiasVividos FROM Amigo ORDER BY DiasVividos;

FechaNac)

AS

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 AS SELECT Cve, ApPat, ApMat, NomPila, (YEAR(CURDATE())-YEAR(FechaNac)) - (MONTH(CURDATE()) < MONTH(FechaNac)) AS Edad FROM Amigo; SHOW TABLES; DESCRIBE mivista; SELECT * FROM mivista;

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 No 17,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 telfonos se agregan a la vista.

q) Encontrar a los amigos mayores de edad. SELECT Cve, ApPat, ApMat, NomPila, Edad FROM mivista WHERE 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 vista ALTER VIEW agendatel.mivista AS SELECT Dir, Cve, ApPat, ApMat, NomPila, (YEAR(CURDATE())-YEAR(FechaNac)) - (MONTH(CURDATE()) < MONTH(FechaNac)) AS Edad FROM Amigo; SHOW TABLES; DESCRIBE mivista; SELECT * FROM mivista;

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

u) Encontrar el amigo con ms edad. SELECT NomPila, Edad FROM miVista WHERE Edad = (SELECT MAX(Edad) FROM miVista);

SEGUNDA PARTE. Escriba con sus propias palabras la funcin que tienen los comandos vistos en esta prctica y otros ms. Consulte el manual en lnea de MySQL slo para apoyarse en el entendimiento de las funciones. NO transcriba lo escrito en el manual. Tabla 1. Comandos vistos en la prctica y otros ms.
ALTER VIEW CREATE VIEW CURDATE() CURRENT_DATE CURTIME() CURRENT_TIME CURRENT_TIME() DATE(expresin) 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 BY SHOW CREATE VIEW SHOW TABLES SYSDATE() TO_DAYS(fecha) WEEKDAY(fecha) WEEKOFYEAR(fecha) YEAR(fecha) Modifica una vista Crea una vista Nos devuelve la fecha actual Funcin que da la fecha actual del sistema Devuelve la hora actual Es igual que curtime() Tambien es igual que curtime() Extrae una parte de la expresin Devuelve la diferencia entre las expresiones Funcin que escribe una fecha dada en un formato especifico tambin dado. Devuelve solo el da de la fecha Devuelve el numero del dia respecto al dia de la semana (domingo 1, lunes 2.) Devuelve el da del mes de la fecha Devuelve el da del ao de la fecha Funcin que proporciona informacin acerca de los tipos de datos que conforman las columnas de una tabla. Elimina una vista antes creada Carga los datos desde un archivo Nos entrega la fecha y la hora actuale Devuelve solo el mes de la fecha Funcin que da el nombre del mes de la fecha que se le pasa como argumento. Ordena los valores de la tabla Muestra la forma en la que se cre una vista Muestra las tablas que se encuentran en la BDD Retorna la fecha y hora del sistema local de la base de datos Funcin que retorna el equivalente en das a la fecha que se le proporciona como argumento. Devuelve el dia de la semana de la fecha Entrega la semana del ao en la que se encuentra la fecha Devuelve el ao de la fecha

TERCERA PARTE. Realice el diseo de una base de datos similar a la presentada en esta prctica 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 prctica: - Inserte en cada ejercicio resuelto y propuesto los resultados que muestra el SGBD MySQL. - Grabe el archivo con su nombre de la siguiente forma: ApPaternoApMaternoNombre.doc Por ejemplo: OcampoBotelloFabiola.doc - Suba al grupo la prctica terminada en la carpeta llamada Practicas\Practica 2