Practica de Funciones y Vistas
-
Upload
ernesto-alessandro -
Category
Documents
-
view
251 -
download
8
description
Transcript of Practica de Funciones y Vistas
Bases de Datos II
Docente: Arturo Díaz Pulido
Funciones MySQL
Las funciones son usadas en varios comandos y se usan dentro de sus expresiones,
actuando con los valores de las columnas ofreciendo diferentes resultados. También
podemos encontrarnos que algunas de ellas se pueden anidar, de tal manera que usamos
más de una.
FUNCIONES ARITMÉTICAS
•ABS (n)Retorna el valor absoluto de X.
mysql> SELECT ABS(2); 2
mysql> SELECT ABS(-32); 32
• CEIL (n) Retorna el entero más pequeño no menor a X.
mysql> SELECT CEILING(1.23); 2
mysql> SELECT CEIL(-1.23); -1
• FLOOR (n)
Retorna el valor entero más grande pero no mayor a X.
mysql> SELECT FLOOR(1.23);
-> 1mysql> SELECT FLOOR(-1.23); -2
• MOD (m, n)
Operación de módulo. Retorna el resto de N dividido por M.
mysql> SELECT MOD(234, 10); 4
mysql> SELECT 253 % 7; 1
mysql> SELECT MOD(29,9); 2
mysql> SELECT 29 MOD 9; 2
Bases de Datos II
Docente: Arturo Díaz Pulido
MOD () también funciona con valores con una parte fraccional y retorna el resto exacto
tras la división:
mysql> SELECT MOD (34.5,3); 1.5
• POWER
Retorna el valor de X a la potencia de Y. Por ejemplo:
mysql> SELECT POW(2,2); -> 4
mysql> SELECT POW(2,-2); -> 0.25
• ROUND (número [,m])
Nos devuelve el argumento X, redondeado al número entero más cercano. Hay dos
argumentos:
1. Devuelve X redondeando a decimales.
2. Puede ser negativo para redondear dígitos a la izquierda del punto decimal del valor X
Un ejemplo de ROUND:
Mysql> SELECT ROUND (-1.23); -1
Mysql> SELECT ROUND (-1.58); -2
Mysql> SELECT ROUND (1.58); 2
Mysql> SELECT ROUND (1.298,1); 1.3
Mysql> SELECT ROUND (23.298,-1); 20
El tipo de número que te devuelve es el mismo que el del primer argumento. Si necesita
un tipo de redondeo, debe usar una función bien definida como TRUNCATE () o FLOOR ()
en su lugar. Desde MYSQL 5.0.3 ROUND () usa la biblioteca de matemática precisa para
valores exactos cuando el primer argumento es un valor con decimales, o para números
exactos, ROUND () usa la regla de “redondea la mitad hacia arriba”. Es decir se redondea
en dirección contraria al cero. Se redondea hacia abajo al siguiente entero si es positivo o
hacia arriba si el siguiente entero es negativo o Para números aproximados, ROUND () usa
Bases de Datos II
Docente: Arturo Díaz Pulido
la regla de “redondeo al número par más cercano”: Un valor con una parte fraccional se
redondea al entero más cercano.
• SIGN (VALOR) Nos devuelve el signo del argumento como -1, 0 o 1, en función de si X es
negativo, cero o positivo. Ejemplo de SIGN:
Mysql> SELECT SIGN (-32); -1
Mysql> SELECT SIGN (0); 0
Mysql> SELECT SIGN (234); 1
SQRT Devuelve la raíz cuadrada de la expresión numérica especificada. Ejemplo:
mysql> SQRT(4) 2.00
mysql> SQRT(2*SQRT(2)) 1.68
TRUNC(número[,m ])
Trunca un número a un entero, suprimiendo la parte fraccionaria de dicho número.
Ejemplo:
A B 1 Fórmula Descripción resultado
2 =TRUNCAR(8,9) Parte entera de 8,9 (8)
3 =TRUNCAR(8,9) Parte entera de -8,9 (-8)
4 =TRUNCAR(PI()) Parte entera de pi (3)
AVG. Retorna el valor medio de expr. La opción DISTINCT puede usarse para retornar la
media de los valores distintos de expr. Ejemplo:
mysql> SELECT student_name, AVG (test_score) FROM student GROUP BY student_name;
COUNT (*). Se utiliza para contar registros. Se puede usar tanto con el FROM como
también con el GROUP BY.
Ejemplo con el FROM: SELECT COUNT (*) FROM animales;
Bases de Datos II
Docente: Arturo Díaz Pulido
El resultado del COUNT (*) es que te devuelve la cantidad de animales que hay en total en
la tabla animales.
Ejemplo con GROUP BY: SELECT especies, COUNT (*) FROM animales GROUP BY especies;
El resultado del COUNT (*) junto con el GROUP BY en este caso te devuelve el resultado de
la cantidad de animales que hay por especies.
MAX. Esta función se clasifica en funciones de agrupamiento, y se utiliza para averiguar
el valor máximo de cada campo usando como función “max()”. Por ejemplo, queremos
saber cuál es el precio mayor de todos los libros: SELECT MAX (PRECIO) FROM LIBROS;
MIN Esta función se clasifica en funciones de agrupamiento, y se utiliza para averigua el
valor mínimo de cada campo usando como función “min()”. Por ejemplo, queremos saber
cuál es el precio más bajo de todos los libros: SELECT MIN (PRECIO) FROM LIBROS;
SUM (CAMPO). Esta función retorna la suma de los valores que contiene el campo
especificado. Se utiliza en el SELECT, ya que seleccionas los campos que quieres
sumar.Por ejemplo, para saber la cantidad de libros que hay en la venta, se suman la
cantidad de libros que hay. SELECT SUM (cantidad) FROM LIBROS;
También podremos encontrárnoslo con alguna condición:
SELECT SUM (cantidad) FROM LIBROS WHERE tema=ficción;
— LOWER (cad)
Retorna la cadena str con todos los caracteres cambiados a minúsculas según el mapeo
del conjunto de caracteres actual (por defecto es ISO-8859-1 Latin1).
mysql> SELECT LOWER('QUADRATICALLY'); 'quadratically'
Esta función funciona con múltiples bytes.
— UPPER
Retorna la cadena str con todos los caracteres cambiados a mayúsculas según el mapeo
del conjunto de caracteres actual (por defecto es ISO-8859-1 Latin1).
Esta función trabaja con múltiples bytes.
Por ejemplo:
Bases de Datos II
Docente: Arturo Díaz Pulido
mysql> SELECT UPPER('Hej'); 'HEJ'
— REPLACE (str, from_str, to_str)
Retorna la cadena str con todas las ocurrencias de la cadena from_str reemplazadas con la
cadena to_str.
Ejemplo
SELECT REPLACE („www.mysql.com‟, „w‟, „Ww‟); ó „WwWwWw.mysql.com‟
— CURDATE ()
Devuelve la fecha actual como un valor en el formato 'AAAA-MM-DD' o AAAAMMDD,
dependiendo de si la función se usa en un contexto de cadena o numérico:
mysql> SELECT CURDATE();
CURDATE() 2003-12-16
mysql> SELECT CURDATE() + 0;
CURDATE() + 0 20031216
— PERIOD DIFF
Esta función devuelve el número de meses entre periodos P1 y P2. P1 y P2 deben estar en
el formato YYMM o YYYYMM. Tenga en cuenta que el periodo P1 y P2 argumentos no son
valores de fecha.
Ejemplo de PERIOD DIFF ():
Mysql> SELECT PERIOD_DIFF (200802,200703); 11
Bases de Datos II
Docente: Arturo Díaz Pulido
Trabajar con fechas en
MySQL
Trabajar con fechas es una tarea que al estar sujeta a tantas reglas especiales (meses con
distinta cantidad de días, años bisiestos, comienzo de mes a media semana, etc.) puede
ser muy compleja si lo intentamos abordar sin el apoyo de una buena base.
Anteriormente he escrito sobre cómo trabajar con fechas en PHP y en JavaScript: en
ambos casos contamos con el concepto de fechas como objetos, lo que ordena y facilita
bastante su manipulación a través de los métodos propios de cada lenguaje.
En MySQL existe a su vez un concepto de fechas y tiempos como tipos de datos con sus
propias características, y junto con ellos, un montón de funciones que nos pueden servir
para realizar distintos cálculos y operaciones al realizar consultas.
Tipos de fecha y horas
En MySQL existen los siguientes tipos de fecha y tiempo:
DATETIME corresponde a una representación completa de fecha y
hora, es decir, algo como el 25 de octubre del 2014 a las 8:00
pm, lo que se almacena del modo 2014-10-25 20:00:00. Es notable la
ausencia de la indicación de una zona horaria, cuya gestión queda
delegada a la aplicación.
Los tipos DATE y TIME, como quizás ya estás adivinando,
almacenan solamente fecha o solamente hora. Los formatos son
los mismos que su parte correspondiente en una columna DATETIME,
es decir, YYYY-MM-DD para las fechas y HH:MM:SS para el tiempo.
Bases de Datos II
Docente: Arturo Díaz Pulido
El tipo YEAR es un dato aún más específico y almacena solamente
un año. Aunque se puede almacenar sólo con 2 dígitos, creo que
no es necesario ahondar en lo evidentemente necesario de utilizar
el formato de 4 dígitos.
Finalmente, existe el tipo TIMESTAMP que es similar a DATETIME pero
con la salvedad de que todos los datos son convertidos hacia y
desde UTC al escribir y leer la información, tomando como base la
configuración de zona horaria del servidor, o bien, si se ha
especificado, de la conexión con el motor de base de datos. Por
ejemplo, si mi servidor está en la zona horaria de Santiago de Chile
y voy a guardar el dato 2014-01-30 12:00:00, MySQL lo convierte
a 2014-01-30 15:00:00 que sería la fecha y hora correspondientes en
UTC.
Utilizando fechas y horas en consultas
Como ya sabemos que MySQL “entiende” de fechas y horas, podemos
hacer consultas relacionadas con éstas de forma muy sencilla. Por
ejemplo, si queremos averiguar las entradas de WordPress publicadas
en una jornada de trabajo en particular:
SELECT * FROM wp_posts
WHERE post_date >= '2014-03-19 08:00:00'
AND post_date <= '2014-03-19 18:00:00'
AND post_status = 'publish'
ORDER BY post_date ASC
… donde post_date es una columna con datos tipo DATETIME.
Bases de Datos II
Docente: Arturo Díaz Pulido
También podríamos consultar por todas las entradas publicadas un día
en particular, sin importar la hora. Para esto, una opción ingenua sería:
SELECT * FROM wp_posts
WHERE post_date >= '2014-03-19 00:00:00'
AND post_date <= '2014-03-19 23:59:59'
AND post_status = 'publish'
ORDER BY post_date ASC
Pero también podemos tratar esa columna como si tuviera solamente
información de fecha utilizando la función CAST de MySQL:
SELECT * FROM wp_posts
WHERE CAST(post_date AS DATE) = '2014-03-19'
AND post_status = 'publish'
ORDER BY post_date ASC
Además podemos extraer parte de la fecha, por ejemplo:
SELECT * FROM wp_posts
WHERE YEAR( post_date ) = '2014'
AND MONTH( post_date ) = '03'
AND post_status = 'publish'
ORDER BY post_date ASC
Utilizar periodos de tiempo en consultas
También podemos hacer consultas considerando periodos de tiempo; lo
que es especialmente útil cuando queremos saber, por ejemplo, las
entradas publicadas en un mes en particular. En lugar de tratar de
adivinar cuántos días tiene el mes por el que estamos consultando,
Bases de Datos II
Docente: Arturo Díaz Pulido
podemos definir un rango de forma más sencilla; por ejemplo, podemos
formular la misma consulta anterior de este modo:
SELECT * FROM wp_posts WHERE
CAST(post_date AS DATE) >= '2014-03-01'
AND post_date < DATE_ADD( '2014-03-01', INTERVAL 1 MONTH )
AND post_status = 'publish'
ORDER BY post_date ASC
Añadiendo y restando fechas y horas
Las funciones DATE_ADD() y DATE_SUB() nos ofrecen una forma muy sencilla
de añadir o restar períodos de una fecha. Como parámetros reciben una fecha y
un intervalo. El intervalo es una representación de un período de tiempo como 1
DAY, 50 YEAR, etc.
SELECT * FROM llamadas WHERE fechaLlamada = DATE(DATE_SUB(NOW(), INTERVAL 1 DAY));
función CONCAT, que realiza la concatenación de dos o más cadenas de texto. Los parámetros de
entrada en este caso son tantas cadenas como deseemos separadas por comas, y el resultado que
devuelve es una única cadena con la concatenación de todas las cadenas de entrada.
select concat('Esto ','es ','un ','ejemplo ',
'de ','concatenación ', 'de ', 'cadenas ',
'de ','texto.') as EJEMPLO_CONCAT
En realidad existen infinidad de funciones con propósitos y utilidades múltiples. Las funciones
están fuera del estándar SQL, cada SGBD tiene las suyas aunque existen funcionalidades
presentes en todos ellos pudiendo tener diferente nombre. En esta lección veremos algunos
ejemplos de funciones que por razones obvias solo podrán aplicarse al SGBD MySQL. Encontrará
Bases de Datos II
Docente: Arturo Díaz Pulido
por Internet numerosas páginas donde documentarse sobre las funciones para este y otros SGBD.
En general una función recibe como parámetro valores, y en función de estos devuelven un
resultado que es el que se considera al llamar a la función desde la cláusula SELECT de una
consulta, o desde la cláusula WHERE, o desde cualquier lugar aplicable.
Alguna funciones no precisan parámetros, por ejemplo la función LOCALTIME y CURRENT_DATE.
La primera devuelve la fecha y la hora del servidor de BD, la segunda solo la fecha, por tanto si
usted quiere saber la fecha y la hora del servidor cuando le sirvió esta página, aquí tiene la
respuesta:
select localtime , current_date
Más Funciones para fechas
Las funciones más usadas son quizás las de tratamiento de fechas y cadenas alfanuméricas.
Veamos un ejemplo de formateo de fecha: supongamos por ejemplo que: de la fecha y hora
actual solo nos interesa mostrar el mes y el año, para ello se usa la función DATE_FORMAT. Esta
función precisa dos parámetros, en primer lugar el dato de tipo fecha que se quiere formatear, y
seguidamente la máscara que determina el formato. Para el mes y año una mascará posible es la
siguiente: '%m-%Y', por tanto la llamada a la función DATE_FORMAT para formatear una fecha con
mes y año se realiza del siguiente modo:
select date_format(localtime,'%m-%Y')
Y para que las fechas aparezcan en un formato más normal del que devuelve por defecto MySQL,
al menos por lo que respecta a algunos países, la máscara es la siguiente: '%d-%m-%Y'. Así para
mostrar por ejemplo los datos de la tabla EMPLEADOS con este formato para el campo
F_NACIMIENTO podríamos construir la siguiente consulta:
select ID_EMPLEADO, NOMBRE, APELLIDOS, date_format(F_NACIMIENTO,'%d-%m-%Y') F_NACIMIENTO
FROM EMPLEADOS
Si se quieren usar barras en lugar de guiones para separar el día mes y año en una dato de tipo
fecha, tan solo deberá indicarlo en la máscara como se muestra en el siguiente ejemplo:
Bases de Datos II
Docente: Arturo Díaz Pulido
select ID_EMPLEADO, NOMBRE, APELLIDOS, date_format(F_NACIMIENTO,'%d/%m/%Y') F_NACIMIENTO
FROM EMPLEADOS
Para conocer todas las posibilidades que ofrece MySQL o cualquier otro SGBD en lo que a
máscaras de formato de fechas se refiere deberá consultar la documentación de cada sistema en
particular. Encontrará numerosas páginas en Internet con información al respecto.
Veamos ahora una función que opera con fechas de modo que permite, por ejemplo, sumar días a
una fecha obteniendo como resultado una nueva fecha. Para ello usamos la función de MySQL
DATE_ADD.
select date_add(current_date, INTERVAL 30 DAY) FECHA_ACTUAL_MAS_TREINTA_DIAS,
date_add(current_date, INTERVAL 6 MONTH) FECHA_ACTUAL_MAS_SEIS_MESES
El valor que devuelve la función DATE_ADD es un dato de tipo fecha, de modo que es posible usar
la llamada a DATE_ADD como parámetro en la función DATE_FORMAT para darle formato al
resultado que devuelve DATE_ADD:
select date_format(date_add(current_date, INTERVAL 30 DAY) , '%d-%m-
%Y') FECHA_ACTUAL_MAS_TREINTA_DIAS,
date_format(date_add(current_date, INTERVAL 6 MONTH) , '%d-%m-
%Y') FECHA_ACTUAL_MAS_SEIS_MESES
Por último en lo que a funciones de fecha se refiere, aunque existen muchas más, veremos un
ejemplo de la función DATEDIFF, que devuelve los días de diferencias entre dos fechas. Si usted
recuerda la tabla VEHICULOS, donde se guardaba para cada unidad la fecha de la próxima
revisión, se preguntará quizás como realizar una consulta que informe de los vehículos que deben
pasar la revisión en los próximos 30 días, para ello supondremos que hoy es 15 de noviembre de
2009:
select * from vehiculos
where datediff(PROX_ITV,'2009-11-15') < 31
Funciones para cadenas
Otro tipo de funciones son las de tratamiento de cadenas. Ya se ha visto al principio de esta
Bases de Datos II
Docente: Arturo Díaz Pulido
lección la funcion CONCAT, que permite concatenar cadenas. Con estas funciones podemos
obtener subcadenas de una cadena dada, por ejemplo los cuatro primeros caracteres. Para ello
usaremos SUBSTR abreviación de substring, es decir, subcadena. Como parámetros recibe el dato
de tipo cadena a tratar en primer lugar, seguido de la posición dentro de la cadena donde se
quiere obtener la subcadena, y por último la longitud o número de caracteres de esta. Ejemplos:
select substr('ABCDEFGHIJ',1,4) LOS_CUATRO_PRIMEROS_CARACTERES
select substr('ABCDEFGHIJ',4,3) LOS_TRES_CARACTERES_CENTRALES
select substr('ABCDEFGHIJ',3) LA_CADENA_IGNORANDO_LOS_DOS_CARACTERES_INICALES
select substr('ABCDEFGHIJ',-2) LOS_DOS_CARACTERES_FINALES
Con la función LENGTH se obtiene la longitud de una cadena:
select length('ABCDEFGHIJ')
La función REPLACE es de gran utilidad, remplaza en una cadena un texto por otro. Por ejemplo,
imagine que usted vende manteles de varios colores y en función de un campo de tabla que
vendrá de un filtro seleccionado por el usuario le viene el valor naranja, aunque el usuario podría
haber seleccionado otros colores disponibles. Mediante la siguiente consulta podría establecer un
texto fijo con una subcadena a remplazar por el color, que es variable y depende de lo que el
usuario selecciona. La idea del siguiente ejemplo es que el literal 'naranja' seria en realidad un
campo de tabla con el valor 'naranja'.
select REPLACE('Mantel de color &','&','naranja') PRODUCTO
La función IF
Hablemos ahora de una función un poco particular pero de suma utilidad, la función IF de MySQL.
En Oracle se llama DECODE y funciona de forma un poco distinta. Permite condicionar el valor
que devuelve en función de si se cumple una condición que se establece. Si usted recuerda la
tabla personas, donde se guardaba una 'S' para indicar Sí, y una 'N' para indicar No, con la función
IF podemos dar una salida de resultados más humana decodificando esta codificación:
select NOMBRE , if(RUBIA='S','Sí','No') RUBIA
from PERSONAS
Bases de Datos II
Docente: Arturo Díaz Pulido
La función IF en este caso interroga si el campo RUBIA contiene un 'S', si es así devuelve 'Sí', en
caso contrario devuelve 'No'
Funciones numéricas
Por último comentaremos algunas funciones para trabajar con números. Por ejemplo la función
ROUND, que permite redondear un número a por ejemplo dos decimales, con lo que evitamos
largas ristras de números en los resultados. O TRUNCATE que trunca un número por la parte
decimal que se le indique, pudiendo así considerar únicamente la parte entera:
select round(7.64739836953 , 2) , truncate(7.64739836953 , 0)
Resumen
Las funciones esperan parámetros de un tipo de dato determinado y devuelven un valor de un
tipo de dato determinado. El número de parámetros y el tipo de dato de cada parámetro
depende de la especificación de cada función, al igual que el tipo de dato que devuelve cada una
y de su funcionalidad.
Las funciones permiten obtener valores en función de los parámetros que se le pasa para
mostrarlos u operar con ellos. Los parámetros pueden ser constantes, campos de tabla, o bien
llamadas a una función. En este último caso el valor que devuelve la función ejerce de parámetro
y por tanto será el dato que considerará la función que lo toma como parámetro.
Si la llamada se realiza en la cláusula SELECT el valor que devuelve la función se mostrará como
un campo más de tabla, es apropiado entonces rebautizar la columna con un alias. Si se usa en la
clausula WHERE el valor que devuelve formará parte de una condición que se evaluará como un
campo más de tabla para mostrar o ignorar el registro. También es posible hacer la llamada a una
función en la cláusula GROUP BY, si también se ha hecho en la cláusula SELECT y se pretende
agrupar por esa columna.
No deben confundirse este tipo de funciones con las funciones de totalización (SUM, AVG, etc...)
estas últimas operan con todos los registros seleccionados de una consulta, mientras que las
primeras operan únicamente con valores de un solo registro, o si usted quiere, se llama a la
función tantas veces como registros devuelve la consulta, y el resultado de la función forma parte
de la fila resultante de cada registro.
Bases de Datos II
Docente: Arturo Díaz Pulido
EJERCICIOS
Ejercicio 1
Realice una consulta que devuelva la media de salarios de la tabla EMPLEADOS agrupado por
sexo. Redondee la media de salarios a un solo decimal y decodifique la columna sexo para que
aparezca el literal HOMBRES y MUJERES en lugar de H y M. No olvide rebautizar las columnas con
un alias apropiado.
Ejercicio 2
Realice una consulta sobre la tabla EMPLEADOS que devuelva el nombre, los apellidos, la fecha de
nacimiento y la edad actual en años de cada empleado. Para aquellos empleados con 18 años o
más.
Nota: la edad de un empleado en años es el número de días transcurridos desde el nacimiento
dividido entre los 365 días que tiene un año.
Ejercicio 3
Realice una consulta sobre la tabla vehículos que devuelva el número de vehículos que deben
pasar la revisión agrupado por el año en que deben pasarla
Bases de Datos II
Docente: Arturo Díaz Pulido
Practica de Funciones y Vistas
En el siguiente modelo conceptual
Se tiene los siguientes datos, en cada tabla:
-- Tabla Fabricantes
+--------+---------+
| codigo | nombre |
+--------+---------+
| 1 | Dell |
| 2 | HP |
| 3 | Canon |
| 4 | EPSON |
| 5 | SONY |
| 6 | Samsung |
| 7 | Apple |
| 8 | Brother |
| 9 | HTC |
| 10 | LG |
| 11 | KTC |
+--------+---------+
-- Tabla Articulos
+--------+----------------------------+--------+------------+
| codigo | nombre | precio | fabricante |
+--------+----------------------------+--------+------------+
| 1 | Impresora | 8990 | 1 |
| 2 | Laptop | 16190 | 5 |
| 3 | Computadora | 26990 | 1 |
| 4 | Computadora | 26990 | 2 |
| 5 | Impresora | 890 | 2 |
Diseñar una vista que muestre el reporte de:
Fabricante y sus artículos
Cantidad de Artículos por Fabricante.
Bases de Datos II
Docente: Arturo Díaz Pulido
| 6 | Camara | 7190 | 2 |
| 7 | Galaxy S5 | 25190 | 6 |
| 8 | Impresora Laser | 34190 | 7 |
| 9 | MacBook Air | 70190 | 7 |
| 10 | Servidor T1110 | 160190 | 1 |
| 11 | Televisor 32 | 15290 | 11 |
| 12 | Nevera 6 pies | 33290 | 11 |
| 13 | impresora Pixma | 1250 | 3 |
| 14 | Impresora Pixma | 4040 | 3 |
| 15 | Impresora L200 | 8540 | 4 |
| 16 | Ploter 44 | 278540 | 4 |
| 17 | Televisor 60 | 98540 | 5 |
| 18 | Xperia Z2 | 26540 | 5 |
| 19 | Televisor 3D | 269540 | 6 |
| 20 | Cartuchos | 63 | 2 |
| 21 | Ipod 32GB | 81 | 7 |
| 22 | Iphone 4S | 170 | 7 |
| 23 | Fax 575 | 1790 | 8 |
| 24 | Multifuncion MFC-295 | 5210 | 8 |
| 25 | SmartPhone M8 | 32210 | 9 |
| 26 | SmartPhone M1 | 90 | 9 |
| 27 | SmartPhone G2 | 152 | 10 |
| 28 | Televisor 21 | 108 | 10 |
| 29 | Televisor 44 | 10790 | 10 |
| 30 | Televisor 44 | 1070 | 11 |
| 31 | Tableta 7 | 90 | 11 |
| 32 | Tableta 10 | 125 | 11 |
| 33 | Aire Acondicionado 9000BTU | 16235 | 11 |
| 34 | Altavoces | 63 | 2 |
+--------+----------------------------+--------+------------+
2. Una universidad realiza el registro de contactos, que son las personas que podrían ser potenciales
postulantes a diferentes carreras. Los postulantes deberán pertenecer a un periodo académico y deberán
elegir una modalidad así como la carrera a la que quieren postular. Por lo general en un año solo existen dos
periodos académicos, por ejemplo los periodos académicos del año 2008 fueron: 2008-1 y 2008-2. El contacto
debe tener los datos personales del sujeto así como la fecha de creación. El postulante debe tener registrado
sí asistió a su examen de admisión, y si ingresó o no, debe tener también establecido el puntaje que alcanzó
en el examen.
Bases de Datos II
Docente: Arturo Díaz Pulido
Usar Vistas y Funciones. Diseñar un menú de opciones:
Reporte de carreras y sus postulantes
Reporte de contacto (con su edad actual) y la cantidad de postulantes enlazados
Calculo de las Edades según el porcentaje, por periodos. Ejemplo: Ingresar periodo inicial y
periodo final, y mostrar un reporte según el porcentaje que ingrese. Entonces si son 100
postulantes y quiero ver el 20% solo me mostrara de 20 en 20.
Bases de Datos II
Docente: Arturo Díaz Pulido
Crear VISTAS
para reportar
las ventas y su
detalle
(incluyendo el
nombre del
cliente) por
fecha en el
siguiente
formato: dd del
mm del aaaa
Ademas mostrar
en el reporte el
empleado que
genero la venta.
Reportar los
productos por
proveedor.
Bases de Datos II
Docente: Arturo Díaz Pulido
Implementar la siguiente base de datos en MySQL, y reportar:
Viajes por Rutas, fechas y por costo del viaje
Por cada viaje reportar los Datos de la tripulación
El estado de cada bote con los datos del equipo y los diagnósticos generados en el
mantenimiento y datos de sus reparaciones.
Genere una función para:
Calcular la diferencia de fechas en que los botes tuvieron un mantenimiento y las fechas
en que fueron reparados.
Ingresar más rutas y costos para nuevos viajes, incluyendo el ingreso de una nueva
tripulación y generando un prorrateo de los costos por hora de cada tripulante
Bases de Datos II
Docente: Arturo Díaz Pulido
Implementar en MySQL, la siguiente Base de Datos, y generar paquetes de turismo, con su
determinada reservación y hospedaje. Usar funciones.