Vous êtes sur la page 1sur 21

Funciones Predefinidas en 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. Tambin
podemos encontrarnos que algunas de ellas se pueden anidar, de tal manera que usamos
ms de una.

FUNCIONES ARITMTICAS

ABS (n): Retorna el valor absoluto de X.

mysql> SELECT ABS(2);

-> 2

mysql> SELECT ABS(-32); -> 32

CEIL (n): Retorna el entero ms pequeo no menor a X.

mysql> SELECT CEILING(1.23);

-> 2

mysql> SELECT CEIL(-1.23);

-> -1

FLOOR (n): Retorna el valor entero ms grande pero no mayor a X.

mysql> SELECT FLOOR(1.23);

-> 1mysql> SELECT FLOOR (-1.23);

-> -2

MOD (m, n): Operacin de mdulo. 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

MOD (): tambin funciona con valores con una parte fraccional y retorna el resto exacto tras
la divisin:

mysql> SELECT MOD (34.5,3);

->1.5

POW: 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 (nmero [, m]): Nos devuelve el argumento X, redondeado al nmero entero ms


cercano. Hay dos argumentos:

1. Devuelve X redondeando a decimales.

2. Puede ser negativo para redondear dgitos a la izquierda del punto decimal del valor X

Un ejemplo de ROUND:

Mysql> SELECT ROUND (-1.23);

Resulta: -1

Mysql> SELECT ROUND (-1.58);

Resulta: -2
Mysql> SELECT ROUND (1.58);

Resulta: 2

Mysql> SELECT ROUND (1.298,1);

Resulta: 1.3

Mysql> SELECT ROUND (23.298,-1);

Resulta: 20

El tipo de nmero que te devuelve es el mismo que el del primer argumento. Si necesita un
tipo de redondeo, debe usar una funcin bien definida como TRUNCATE () o FLOOR () en su
lugar.Desde MYSQL 5.0.3 ROUND () usa la biblioteca de matemtica precisa para valores
exactos cuando el primer argumento es un valor con decimales:o Para nmeros exactos,
ROUND () usa la regla de redondea la mitad hacia arriba. Es decir se redondea en direccin
contraria al cero. Se redondea hacia abajo al siguiente entero si es positivo o hacia arriba si
el siguiente entero es negativo.o Para nmeros aproximados, ROUND () usa la regla de
redondeo al nmero par ms cercano: Un valor con una parte fraccional se redondea al
entero ms cercano.

SIGN (VALOR): Nos devuelve el signo del argumento como -1, 0 o 1, en funcin de si X es
negativo, cero o positivo.Ejemplo de SIGN:

Mysql> SELECT SIGN (-32):

Resulta: -1

Mysql> SELECT SIGN (0);

Resulta: 0

Mysql> SELECT SIGN (234);

Resulta: 1

SQRT: Devuelve la raz cuadrada de la expresin numrica especificada. Ejemplo:

mysql> SQRT(4)

-> 2.00
mysql> SQRT(2*SQRT(2))

-> 1.68

TRUNCATE: Cuando trabajamos con nmeros reales, que poseen un nmero de decimales
considerable, es conveniente dar formato a los datos.

Trunca un nmero a un entero, suprimiendo la parte fraccionaria de dicho nmero.

TRUNCATE(D,N) Devolver el nmero D con tan slo N decimales.

Ejemplo:
Frmula Descripcin resultado
TRUNCATE(-10.7,2); -10.70

TRUNCATE(1.75012,3); 1.750

AVG: Retorna el valor medio de expr. La opcin 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 tambin
con el GROUP BY.

Ejemplo con el FROM: SELECT COUNT (*) FROM animales;

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 funcin se clasifica en funciones de agrupamiento, y se utiliza para averiguar el


valor mximo de cada campo usando como funcin max(). Por ejemplo, queremos saber
cul es el precio mayor de todos los libros:SELECT MAX (PRECIO) FROM LIBROS;

MIN: Esta funcin se clasifica en funciones de agrupamiento, y se utiliza para averigua el


valor mnimo de cada campo usando como funcin min (). Por ejemplo, queremos saber
cul es el precio ms bajo de todos los libros; SELECT MIN (PRECIO) FROM LIBROS;
SUM (CAMPO): Esta funcin 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;
Tambin podremos encontrrnoslo con alguna condicin:
SELECT SUM (cantidad) FROM LIBROS WHERE tema=ficcin;

LOWER (cad): Retorna la cadena str con todos los caracteres cambiados a minsculas segn
el mapeo del conjunto de caracteres actual (por defecto es ISO-8859-1 Latin1).

mysql> SELECT LOWER('QUADRATICALLY');

-> 'quadratically'

Esta funcin funciona con mltiples bytes.

UPPER: Retorna la cadena str con todos los caracteres cambiados a maysculas segn el
mapeo del conjunto de caracteres actual (por defecto es ISO-8859-1 Latin1).

Esta funcin trabaja con mltiples bytes.

Por ejemplo:

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 funcin se usa en un contexto de cadena o numrico:

mysql> SELECT CURDATE();

CURDATE(): 2016-09-16
mysql> SELECT CURDATE() + 0;

CURDATE() + 0

20160916

PERIOD DIFF: Esta funcin devuelve el nmero 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

Trabajar con fechas en


MySQL
En MySQL existe a su vez un concepto de fechas y tiempos como tipos de datos con sus
propias caractersticas.

Tipos de fecha y horas


En MySQL existen los siguientes tipos de fecha y tiempo:
DATETIME corresponde a una representacin 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 indicacin de una zona horaria, cuya gestin queda
delegada a la aplicacin.
Los tipos DATE y TIME, como quizs ya ests 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.
El tipo YEAR es un dato an ms especfico y almacena solamente un ao. Aunque se
puede almacenar slo con 2 dgitos, creo que no es necesario ahondar en lo
evidentemente necesario de utilizar el formato de 4 dgitos.
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
informacin, tomando como base la configuracin de zona horaria del servidor, o bien, si
se ha especificado, de la conexin 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 sera 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.

Tambin podramos consultar por todas las entradas publicadas un da


en particular, sin importar la hora. Para esto, una opcin ingenua sera:
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 tambin podemos tratar esa columna como si tuviera solamente


informacin de fecha utilizando la funcin 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

Adems 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


Tambin 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 cuntos das tiene el mes por el que estamos consultando, podemos definir un
rango de forma ms 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

Aadiendo y restando fechas y horas


Las funciones DATE_ADD() y DATE_SUB() nos ofrecen una forma muy sencilla de aadir o restar
perodos de una fecha. Como parmetros reciben una fecha y un intervalo. El intervalo es una
representacin de un perodo de tiempo como 1 DAY, 50 YEAR, etc.

SELECT * FROM llamadas WHERE fechaLlamada = DATE(DATE_SUB(NOW(),


INTERVAL 1 DAY));
Funciones
Las funciones se pueden ver como cajas negras a las que les pasamos unos parmetros de entrada
y tras procesarlos devuelven un nico resultado o dato de salida.

Con anterioridad en este curso apareci la funcin CONCAT, que realiza la concatenacin de dos
o ms cadenas de texto. Los parmetros de entrada en este caso son tantas cadenas como
deseemos separadas por comas, y el resultado que devuelve es una nica cadena con la
concatenacin de todas las cadenas de entrada.

select concat('Esto ','es ','un ','ejemplo ',


'de ','concatenacin ', 'de ', 'cadenas ',
'de ','texto.') as EJEMPLO_CONCAT

En realidad existen infinidad de funciones con propsitos y utilidades mltiples. Las funciones
estn fuera del estndar SQL, cada SGBD tiene las suyas aunque existen funcionalidades
presentes en todos ellos pudiendo tener diferente nombre. En esta leccin veremos algunos
ejemplos de funciones que por razones obvias solo podrn aplicarse al SGBD MySQL. Encontrar
por Internet numerosas pginas donde documentarse sobre las funciones para este y otros SGBD.

En general una funcin recibe como parmetro valores, y en funcin de estos devuelven un
resultado que es el que se considera al llamar a la funcin desde la clusula SELECT de una
consulta, o desde la clusula WHERE, o desde cualquier lugar aplicable.

Alguna funciones no precisan parmetros, por ejemplo la funcin 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 pgina, aqu tiene la
respuesta:

select localtime , current_date

Funciones para fechas

Las funciones ms usadas son quizs las de tratamiento de fechas y cadenas alfanumricas.
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 ao, para ello se usa la funcin DATE_FORMAT. Esta
funcin precisa dos parmetros, en primer lugar el dato de tipo fecha que se quiere formatear, y
seguidamente la mscara que determina el formato. Para el mes y ao una mascar posible es la
siguiente: '%m-%Y', por tanto la llamada a la funcin DATE_FORMAT para formatear una fecha con
mes y ao se realiza del siguiente modo:

select date_format(localtime,'%m-%Y')

Y para que las fechas aparezcan en un formato ms normal del que devuelve por defecto MySQL,
al menos por lo que respecta a algunos pases, la mscara 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 podramos 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 da mes y ao en una dato de tipo
fecha, tan solo deber indicarlo en la mscara como se muestra en el siguiente ejemplo:

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
mscaras de formato de fechas se refiere deber consultar la documentacin de cada sistema en
particular. Encontrar numerosas pginas en Internet con informacin al respecto.

Veamos ahora una funcin que opera con fechas de modo que permite, por ejemplo, sumar das a
una fecha obteniendo como resultado una nueva fecha. Para ello usamos la funcin 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 funcin DATE_ADD es un dato de tipo fecha, de modo que es posible usar
la llamada a DATE_ADD como parmetro en la funcin 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 ms, veremos un
ejemplo de la funcin DATEDIFF, que devuelve los das de diferencias entre dos fechas. Si usted
recuerda la tabla VEHICULOS, donde se guardaba para cada unidad la fecha de la prxima
revisin, se preguntar quizs como realizar una consulta que informe de los vehculos que deben
pasar la revisin en los prximos 30 das, 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
leccin 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 abreviacin de substring, es decir, subcadena. Como parmetros recibe el dato
de tipo cadena a tratar en primer lugar, seguido de la posicin dentro de la cadena donde se
quiere obtener la subcadena, y por ltimo la longitud o nmero 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 funcin LENGTH se obtiene la longitud de una cadena:

select length('ABCDEFGHIJ')
La funcin 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 funcin de un campo de tabla que
vendr de un filtro seleccionado por el usuario le viene el valor naranja, aunque el usuario podra
haber seleccionado otros colores disponibles. Mediante la siguiente consulta podra 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 funcin IF

Hablemos ahora de una funcin un poco particular pero de suma utilidad, la funcin IF de MySQL.
En Oracle se llama DECODE y funciona de forma un poco distinta. Permite condicionar el valor
que devuelve en funcin de si se cumple una condicin 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 funcin
IF podemos dar una salida de resultados ms humana decodificando esta codificacin:

select NOMBRE , if(RUBIA='S','S','No') RUBIA


from PERSONAS

La funcin IF en este caso interroga si el campo RUBIA contiene un 'S', si es as devuelve 'S', en
caso contrario devuelve 'No'

Funciones numricas

Por ltimo comentaremos algunas funciones para trabajar con nmeros. Por ejemplo la funcin
ROUND, que permite redondear un nmero a por ejemplo dos decimales, con lo que evitamos
largas ristras de nmeros en los resultados. O TRUNCATE que trunca un nmero 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 parmetros de un tipo de dato determinado y devuelven un valor de un tipo
de dato determinado. El nmero de parmetros y el tipo de dato de cada parmetro depende de
la especificacin de cada funcin, al igual que el tipo de dato que devuelve cada una y de su
funcionalidad.

Las funciones permiten obtener valores en funcin de los parmetros que se le pasa para
mostrarlos u operar con ellos. Los parmetros pueden ser constantes, campos de tabla, o bien
llamadas a una funcin. En este ltimo caso el valor que devuelve la funcin ejerce de parmetro y
por tanto ser el dato que considerar la funcin que lo toma como parmetro.

Si la llamada se realiza en la clusula SELECT el valor que devuelve la funcin se mostrar como un
campo ms de tabla, es apropiado entonces rebautizar la columna con un alias. Si se usa en la
clusula WHERE el valor que devuelve formar parte de una condicin que se evaluar como un
campo ms de tabla para mostrar o ignorar el registro. Tambin es posible hacer la llamada a una
funcin en la clusula GROUP BY, si tambin se ha hecho en la clusula SELECT y se pretende
agrupar por esa columna.

No deben confundirse este tipo de funciones con las funciones de totalizacin (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
funcin tantas veces como registros devuelve la consulta, y el resultado de la funcin forma parte
de la fila resultante de cada registro.

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 aos de cada empleado. Para aquellos empleados con 18 aos o
ms.
Nota: la edad de un empleado en aos es el nmero de das transcurridos desde el nacimiento
dividido entre los 365 das que tiene un ao.

Ejercicio 3
Realice una consulta sobre la tabla vehculos que devuelva el nmero de vehculos que deben
pasar la revisin agrupado por el ao en que deben pasarla
Ejemplo para crear vistas (create view) en MySQL
Una vista es un objecto de la base de datos que se define mediante un SELECT que agrupa o selecciona
un conjunto de datos. Para crear una vista lo primero que tenemos que ver es si nuestro usuario asignado
a la base de datos tiene permisos para crear vistas (create view).

CREATE VIEW <nombre> AS


< SELECT * FROM tabla>

Una vista en mysql es una tabla virtual con una estructura que nosotros definimos pero sin
datos.

En que nos pueden ayudar las vistas?

Se almacenan en el servidor con lo que el consumo de recursos y eficacia siempre sern


ms ptimos.
En temas de seguridad siempre es mejor utilizar vistas en lugar de permitir a nadie
acceder directamente a los datos, nosotros mostramos al resto de desarrolladores los
datos que queremos.
Podemos llamarlas de forma sencilla en una consulta y utilizar clausulas contra las mismas,
ahora veremos unos ejemplos.
Pueden haber desarrolladores con poca experiencia y con dificultades por hacer complejas
consultas, podemos darles la opcin de simplemente llamar a una vista para as obtener
los datos.
Una vista es un camino simple para guardar complejas consultas de seleccin en nuestra
base de datos.
Una diferencia entre vistas y procedimientos almacenados es que las primeras no aceptan
parmetros, no siendo as con los procedimientos almacenados, que si los aceptan.
Un procedimiento almacenado suele utilizarse cuando no es suficiente una simple
consulta sql. Los procedimientos almacenados contienen variables, bucles y llamadas a
otros procedimientos almacenados.

-- Creamos una tabla

CREATE TABLE usuarios(


id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
nombre varchar(40) NOT NULL,
rango varchar (50) NOT NULL
) ENGINE=INNODB;
INSERT INTO usuarios VALUES (null, 'Andrs', 'novato');
INSERT INTO usuarios VALUES (null, 'Lus', 'medio');
INSERT INTO usuarios VALUES (null, 'Juan', 'experto');

CREATE TABLE comentarios(


id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
usuario_id int(11) NOT NULL,
titulo varchar(40) NOT NULL,
comentario varchar (50) NOT NULL,
FOREIGN KEY (usuario_id) REFERENCES usuarios(id)
);

INSERT INTO comentarios VALUES (null, 1, 'titulo 1',


'comentario 1');
INSERT INTO comentarios VALUES (null, 2, 'titulo 2',
'comentario 2');
INSERT INTO comentarios VALUES (null, 3, 'titulo 3',
'comentario 3');

Creamos una vista

CREATE VIEW usuarios_comentarios AS

SELECT usuarios.id,nombre, rango, titulo, comentario

FROM usuarios

INNER JOIN comentarios

ON usuarios.id = comentarios.usuario_id;

Utilizado nuestra vista es sencillo, simplemente podemos hacer lo siguiente.

SELECT * FROM usuarios_comentarios;

Y obtendremos lo siguiente.
Tambien se pueden especificar los resultados de las consultas por medio de criterios:

1 SELECT * FROM usuarios_comentarios WHERE id = 2;

Y obtendremos el usuario con id 2 como sigue.


Practica de Funciones y Vistas

En el siguiente modelo conceptual

Se tiene los siguientes datos, en cada tabla:

-- Tabla Fabricantes
+--------+---------+
| codigo | nombre |
+--------+---------+
| 1 | Dell | Disear una vista que muestre el reporte de:
| 2 | HP |
Fabricante y sus artculos
| 3 | Canon |
Cantidad de Artculos por Fabricante.
| 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 |
| 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 podran ser potenciales
postulantes a diferentes carreras. Los postulantes debern pertenecer a un periodo acadmico y
debern elegir una modalidad as como la carrera a la que quieren postular. Por lo general en un ao
solo existen dos periodos acadmicos, por ejemplo los periodos acadmicos del ao 2008 fueron:
2008-1 y 2008-2. El contacto debe tener los datos personales del sujeto as como la fecha de creacin.
El postulante debe tener registrado s asisti a su examen de admisin, y si ingres o no, debe tener
tambin establecido el puntaje que alcanz en el examen.
Disear un men de opciones:

Reporte de carreras y sus postulantes


Reporte de contacto y la cantidad de postulantes enlazados
Calculo de las Edades segn el porcentaje, por periodos. Ejemplo: Ingresar periodo inicial y
periodo final, y mostrar un reporte segn el porcentaje que ingrese. Entonces si son 100
postulantes y quiero ver el 20% solo me mostrara de 20 en 20.

Vous aimerez peut-être aussi