Académique Documents
Professionnel Documents
Culture Documents
2.- Objetivos
1. Que el estudiante utilice las herramientas que el sistema proporciona para realizar tareas que el propio lenguaje de consultas no incorpora. 2. Que el estudiante explote las bibliotecas de funciones proporcionadas en el caso especfico de MySQL, optimizando el rendimiento en la construccin de diversos escenarios para la gestin de datos.
X IS [NOT] Inspecciona si x es un SELECT NULL IS NULL, 0 IS NULL, -1 IS NULL, 'X' IS NOT NULL; valor nulo NULL
Diseo de base de datos Prctica 07 Duracin 4 horas expr [NOT] BETWEEN min AND max GREATEST (v1, v2, vn) expr [NOT] IN (value,...)
Evala si expr se encuentra en el intervalo min-max. Regresa el mayor de los valores numricos de la lista. Evala si expr se encuentra presente en la lista de valores separados por coma.
Type puede ser: BINARY, CHAR, DATE, DATETIME, SIGNED [INTEGER], TIME, UNSIGNED [INTEGER] Convierte la expresin a un juego de caracteres admitido posibilitando sealar el nivel de cotejamiento.
BINARY
SELECT 'A' LIKE 'a' AS 'NBIN', BINARY 'A' LIKE 'a' AS 'BIN';
SELECT CASE CONVERT(0b100000000, UNSIGNED INTEGER) WHEN 255 THEN 'DOSCIENTOS CINCUENTA Y CINCO EN DECIMAL' WHEN 256 THEN 'DOSCIENTOS CINCUENTA Y SEIS EN DECIMAL' ELSE 'NINGUNO DE LOS ANTERIORES' END
A diferencia del anterior permite ir comparando cada caso mediante una expresin distinta.
SELECT CASE WHEN @A > @B THEN 'EL PRIMER VALOR ES MAYOR' WHEN @A < @B THEN 'EL SEGUNDO VALOR ES MAYOR' ELSE 'SON IGUALES' END;
INSERT(str,pos,len,newstr)
LCASE(str) / UCASE(str)
LEFT(str,len)
SELECT TRIM(' A '), TRIM(TRAILING FROM ' A '), TRIM(LEADING FROM ' A '), TRIM(BOTH 'x' FROM 'xxxxxxxxxAxxxxxxxxx');
8- Funciones matemticas
FUNCIN ABS(X) CEILING(X) FLOOR(X) N%M/N MOD M POW(X,Y) ROUND(X,D) RAND([S]) BREVE DESCRIPCIN
Valor absoluto Entero ms cercano arriba. Entero ms cercano abajo. Mdulo. Potencia de x la y. Redondea a D posiciones decimales. Donde S es la semilla.
EJEMPLO
SELECT ABS(255*(4-5)); SELECT CEILING(4.01), CEILING(4.99), CEILING(4.50); SELECT FLOOR(4.01), FLOOR(4.99), FLOOR(4.50); SELECT 115 mod 5, 19282827 % 2; SELECT CONVERT (POW(2,11),TIME); SELECT ROUND(10.500,0), ROUND(10.500,2), ROUND(10.505,2), ROUND(10.499,0), ROUND(10.499,2); SELECT CEILING((RAND()*10)), CEILING((RAND()*10)), CEILING((RAND()*10));
EJEMPLO
Se pueden hacer clculos directos: +/- INTERVAL SELECT '2011-12-31 23:59:59' + INTERVAL 1 SECOND; Valores permitidos: SECOND, MINUTE, HOUR, DAY, WEEK MONTH, QUARTER, YEAR.
Encripta utilizando Algoritmo de Resumen del Mensaje 5 - MessageDigest Algorithm 5 (MD5) --Usuario actual. Representa el valor numrico con D decimales, utiliza redondeo.
10.- Ejercicios
No. EJERCICIOS #Crear la siguiente tabla: 1.-
2.-
CREATE TABLE `test`.`usuarios` ( `nombusr` varchar(10) character set latin1 collate latin1_spanish_ci default '_empty_', `apellusr` varchar(10) character set latin1 collate latin1_spanish_ci default '_empty_', `correo` varchar(50) character set utf8 collate utf8_general_ci NOT NULL, `fechaing` date default '2011-01-01', `pagoserv` double default 100 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; #Insertar los valores siguientes: INSERT INTO test.usuarios(nombusr, apellusr, correo, fechaing, pagoserv) VALUES ('NOMBRX001','APELLXY001','@SOLONOMBRE.COM','2009-01-01',250.454), ('NOMBRX002','APELLYZ002','@NOMBREYAPELL.COM','2010-01-01',255.400), ('NOMBRX003','APELLXY003','@SOLOAPELLIDO.COM','2009-02-02',100.500), ('NOMBRX004','APELLXY004','@NOMBREYAPELL.COM','2009-03-03',250.454);
3.4.5.6.7.8.9.-
Todos los nombres de usuarios deben quedar de la forma: NOMBRE0x, donde x es el nmero de secuencia 1..4. Todos los apellidos deben quedar APELLIDOx, donde x es un nmero aleatorio entre 1 y 100. Reconstruya todas las direcciones de correo de forma que se unen los nombres y apellidos separados por un .antes del arroba. Listar de la columna correo solo los nombres y apellidos, omitiendo todo el resto luego de aparecer el arroba. Actualice los correos electrnicos de forma que solo pondr antes del arroba, solo el nombre, solo el apellido o ambos de acuerdo a cada dominio. Sumar a la fecha de ingreso el nmero de meses de acuerdo al ltimo dgito de acuerdo a cada apellido. Aadir a cada pago por servicio un inters aleatorio entre el 1..20% del monto ya pagado.
11.- Bibliografa
Manual de referencia espaol: http://dev.mysql.com/doc/refman/5.0/es/ Manual de referencia ltima versin: http://dev.mysql.com/doc/refman/5.6/en/