barrera paredes cinthia paola
TRANSCRIPT
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
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';
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();
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());
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.
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)));
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, …
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;
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;
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.
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;
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);
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
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