- 1. 24-10-2007 Interplanet MySQL 5.x Hugo Alfonso Palma
Garca
2.
- Panormica del sistema de gestin de base de datos MySQL
- Las principales caractersticas de MySQL
- Qu hay de nuevo en MySQL 5.0x
-
- Procedimientos almacenados y funciones
3. Panormica del sistema de gestin de base de datos MySQL
- MySQL,es el sistema de gestin de bases de datos SQL Open Source
ms popular, lo desarrolla,distribuye y soporta MySQL AB.
- MySQL es un sistema de gestin de bases de datos
relacionales.
- MySQL usa SQL estndar, llmese estndar al ms actual que es el
2003.
- El servidor de base de datos MySQL es muy rpido, fiable y fcil
de usar.
4. Panormica del sistema de gestin de base de datos MySQL
- MySQL Server se desarroll originalmente para tratar grandes
bases de datos mucho ms rpido que soluciones existentes.
- MySQL Server trabaja en entornos cliente/servidor o
incrustados.
- Una gran cantidad de software de contribuciones est disponible
para MySQL.
- La forma oficial de pronunciar "MySQL" es "My Ess Quiu Ell" (no
"my sicuel").
5.
- Interioridades y portabilidad
-
- Escrito en C y en C++. Probado con un amplio rango
decompiladores diferentes
-
- Funciona en diferentes plataformas.
-
- Usa GNU Automake, Autoconf, y Libtool para portabilidad.
-
- APIs disponibles para C, C++, Eiffel, Java, Perl, PHP,Python,
Ruby, y Tcl.
-
- Uso completo de multi-threaded mediante threads delkernel.
-
- Proporciona sistemas de almacenamiento transaccionales y no
transaccionales.
Las principales caractersticas de MySQL 6.
-
- Usa tablas en disco B-tree ( MyISAM ) muy rpidas concompresin
de ndice.
-
- Relativamente sencillo de aadir otro sistema de
almacenamiento.
-
- Un sistema de reserva de memoria muy rpido basado en
threads.
-
- Joins muy rpidos usando un multi-join de un
pasooptimizado.
-
- Tablas hash en memoria, que son usadas como
tablastemporales.
Las principales caractersticas de MySQL 7.
-
- Las funciones SQL estn implementadas usando una librera
altamente optimizada.
-
- Se prueba que el cdigo MySQL no ocasione prdida de memoria con
software comercial.
-
- El servidor est disponible como un programa separadopara usar
en un entorno de red cliente/servidor o biencomo biblioteca y puede
ser incrustado en aplicacionesautnomas.
Las principales caractersticas de MySQL 8.
-
- Diversos tipos de columnas.
-
- Registros de longitud fija y longitud variable.
-
- Un sistema de privilegios y contraseas que es muyflexible y
seguro, y que permite verificacin basada en elhost.
-
- Todo intercambio de informacin esta cifrada.
Las principales caractersticas de MySQL 9.
-
- Soporte a grandes bases de datos.
-
- Se permiten hasta 64 ndices por tabla y 32 antes deMySQL
4.1.2.
-
- Un ndice puede usar prefijos de una columna para lostipos de
columnaCHAR ,VARCHAR ,BLOB , oTEXT .
Las principales caractersticas de MySQL 10.
-
- Los clientes pueden conectar con el servidor MySQL usando
sockets TCP/IP en cualquier plataforma.
-
- La interfaz para el conector ODBC (MyODBC).
-
- La interfaz para el conector J MySQL.
Las principales caractersticas de MySQL 11.
-
- El servidor puede proporcionar mensajes de error enmuchos
idiomas.
-
- Soporte completo para distintos conjuntos de caracteres.
-
- Todos los datos se guardan en el conjunto de caracteres
elegido.
-
- Todas las comparaciones para columnas normales decadenas de
carcteres son case-insensitive.
Las principales caractersticas de MySQL 12.
-
- MySQL server tiene soporte para comandos SQL para chequear,
optimizar, y reparar tablas.
-
- Todos los programas MySQL pueden invocarse con las
opciones--helpo-?para obtener asistencia en lnea.
Las principales caractersticas de MySQL 13. Nuevas bondades
deMySQL 5.0x 14. Que hay de nuevo en MySQL 5.0x
Tipo Bytes Valor Mnimo Valor Mximo BIT 1 1 64 15. Que hay de
nuevo en MySQL 5.0x
-
- La longitud mxima deVARCHARes 65,532 bytes.
-
- No se cortan espacios en blanco consecutivos
-
- Almacena los valores usando slo los carcteresnecesarios, ms un
byte adicional para la longitud (dosbytes para columnas que se
declaran con una longitudsuperior a 255).
16. Que hay de nuevo en MySQL 5.0x
-
- El soporte para INFORMATION_SCHEMA est disponible en MySQL
5.0.2 y posterior.
-
- Proporciona acceso a los metadatos de la base de datos.
-
- Ventajas deSELECT contra el show.
-
-
- El comando SELECT ... FROM INFORMATION_SCHEMA es una forma ms
consistente de proporcionar acceso a la informacinproporcionada por
los comandos SHOW.
-
-
- Cumple las reglas de Codd.
17. Que hay de nuevo en MySQL 5.0x
-
-
- Nadie necesita aprender una nueva sintaxis. Conocen cmofunciona
SELECT, pero si aprender los nombres de los objetos.
-
-
- El implementador no tiene que preocuparse de palabras
clave.
-
-
- Hay millones de variaciones de la salida, en lugar de slo
una.Esto proporciona flexibilidad a las aplicaciones
conrequerimientos cambiantes acerca de los metadatos
quenecesitan.
-
-
- La migracin es ms fcil ya que todos los otros DBMS funcionan
as.
18. Que hay de nuevo en MySQL 5.0x
- El gestor de instancias de MySQL.
-
- Este es el demonio que corre en el puerto TCP/IP.
-
- Est disponible para sistemas operativos basados enUnix.
-
- MySQL (IM) se incluye en las distribuciones de MySQLdesde la
versin 5.0.3.
19. Que hay de nuevo en MySQL 5.0x
- Creacin de cuentas de usuario
-
- El IM almacena su informacin de usuario en un ficherode
contraseas. La localizacin por defecto para el fichero de
contraseas es /etc/mysqlmanager.passwd
-
- Las entradas para las contraseas se parecen a
lassiguiente:
-
- petr:*35110DC9B4D8140F5DE667E28C72DD2597B5C848
-
- Para generar una entrada as debe invocarse IM con laopcin
passwd y rediccionar la salida al archivo de lascontraseas.
20. Que hay de nuevo en MySQL 5.0x
- Ejemplo de registro de usuario.
-
- ./mysqlmanager --passwd >> /etc/mysqlmanager.passwd
-
- Creating record for new user.
-
- La siguiente lnea se aade a /etc/mysqlmanager.passwd:
-
- mike:*00A51F3F48415C7D4E8908980D443C29C69B60C9
-
- Si no hay entradas en el fichero /etc/mysqlmanager.passw
-
- no puede conectarse al IM.
21. Que hay de nuevo en MySQL 5.0x
-
- La matemtica de precisin se basa en dos cambios
deimplementacin:
-
-
- La introduccin de nuevos modos SQL en MySQL 5.0.2 quecontrolan
lo estricto que es el servidor para aceptar o rechazardatos
invlidos.
-
-
- La introduccin en MySQL 5.0.3 de una biblioteca para aritmtica
de punto fijo.
22. Que hay de nuevo en MySQL 5.0x
-
- Estos cambios tienen varias implicaciones para operaciones
numricas:
-
-
- Para nmeros exactos, los clculos no introducen error en coma
flotante.
-
-
- Comportamiento bien definido para el redondeo.
-
-
- Independencia de plataforma mejorada.
-
-
- Control sobre tratamiento de datos invlidos.
-
-
- Desbordamiento y divisin por cero pueden detectarse y tratarse
como errores.
-
-
- Un resultado importante de estos cambios es que MySQL
proporciona un mejor cumplimiento del estndar SQL.
23. Que hay de nuevo en MySQL 5.0x
- Cambios en el tipo de datos DECIMAL
-
- Formato de almacenamiento
-
- Las extensiones MySQL no estndar al rango superior de
columnasDECIMAL
-
- El rango de valores para los argumentos de DECIMAL ha
cambiado.
-
- La extensin no estndard MySQL del rango superior
decolumnasDECIMALno se soporta.
-
- Los carcteres precedentes ' + ' y ' 0 ' no se almacenan.
24. Que hay de nuevo en MySQL 5.0x
-
- Se soportan cursores simples dentro de procedimientos y
funciones almacenadas.
-
- Sirven para almacenar valores retornados por unSELECT en
procedimientos almacenados.
25. Que hay de nuevo en MySQL 5.0x
- CREATE PROCEDURE curdemo()
- DECLARE done INT DEFAULT 0;
- DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
- DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
- DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done =
1;
- INSERT INTO test.t3 VALUES (a,b);
- INSERT INTO test.t3 VALUES (a,c);
26. Que hay de nuevo en MySQL 5.0x
- Procedimientos almacenados y funciones
-
- Un procedimiento almacenado es un conjunto decomandos SQL que
pueden almacenarse en el servidor.
-
-
- Situaciones en las que los procedimientos almacenados puedenser
muy tiles:
-
-
-
- Cuando mltiples aplicaciones cliente se escriben en distintos
lenguajes o funcionan en distintas plataformas.
-
-
-
- Cuando la seguridad es muy importante.
-
-
-
- Pueden mejorar el rendimiento.
-
-
-
- MySQL sigue la sintaxis SQL:2003 para
procedimientosalmacenados, que tambin usa IBM DB2.
-
-
-
- La implementacin en MySQL an est en progreso.
27. Que hay de nuevo en MySQL 5.0x
-
- mysql> CREATE PROCEDURE simpleproc (OUT param1INT)
-
- ->SELECT COUNT(*) INTO param1 FROM t;
28. Que hay de nuevo en MySQL 5.0x
-
- mysql> CALL simpleproc(@a);
29. Que hay de nuevo en MySQL 5.0x
-
- mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS
CHAR(50)
-
- -> RETURN CONCAT('Hello, ',s,'!');
30. Que hay de nuevo en MySQL 5.0x
-
- mysql> SELECT hello('world');
31. Que hay de nuevo en MySQL 5.0x
- ALTER PROCEDURE y ALTER FUNCTION
-
- Este comando cambia las caractersticas de unprocedimiento o
funcin almacenada.
- DROP PROCEDURE y DROP FUNCTION
-
- Este comando borrar un procedimiento o funcinalmacenado.
32. Que hay de nuevo en MySQL 5.0x
- SHOW CREATE PROCEDURE y SHOW CREATE FUNCTION
-
- Retorna la cadena exacta que puede usarse para recrear la
rutina nombrada.
- SHOW PROCEDURE STATUS y SHOW FUNCTION STATUS
-
- Retorna caractersticas de rutinas, como el nombre de la base de
datos, nombre, tipo, creador y fechas de creacin y
modificacin.
-
- Tambin puede obtener informacin de rutinas almacenadas de la
tablaROUTINESenINFORMATION_SCHEMA .
33. Que hay de nuevo en MySQL 5.0x
-
- A partir de MySQL 5.0.2 se incorpor el soporte bsicopara
disparadores (triggers).
-
- Un disparador es un objeto con nombre dentro de unabase de
datos el cual se asocia con una tabla y se activa cuando ocurre en
sta un evento en particular.
34. Que hay de nuevo en MySQL 5.0x
-
- momento_dispes el momento en que el disparador entra en accin.
Puede serBEFORE(antes) oAFTER(despues).
-
- evento_dispindica la clase de sentencia que activa al
disparador. Puede serINSERT ,UPDATE , oDELETE . Por ejemplo, un
disparadorBEFOREpara sentenciasINSERTpodra utilizarse para validar
los valores a insertar.
35. Que hay de nuevo en MySQL 5.0x
-
- No puede haber dos disparadores en una misma tablaque
correspondan al mismo momento y evento.
-
- sentencia_dispes la sentencia que se ejecuta cuando se activa
el disparador. Si se desean ejecutar mltiplessentencias, deben
colocarse entreBEGIN ... END , elconstructor de sentencias
compuestas.
-
- Antes de MySQL 5.0.10, los disparadores no podancontener
referencias directas a tablas por su nombre. Apartir de MySQL
5.0.10, se pueden escribir disparadorescomo el llamadotestref , que
se muestra en el siguienteejemplo:
36. Que hay de nuevo en MySQL 5.0x
-
- CREATE TRIGGER testref BEFORE INSERT ON test1
-
- INSERT INTO test2 SET a2 = NEW.a1;
-
- DELETE FROM test3 WHERE a3 = NEW.a1;
-
- UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
37. Que hay de nuevo en MySQL 5.0x
-
- Las columnas de la tabla asociada con el disparadorpueden
referenciarse empleando los aliasOLDyNEW .
-
- Actualmente, los disparadores no son activados poracciones
llevadas a cabo en cascada por las restricciones de claves
extranjeras
38. Que hay de nuevo en MySQL 5.0x
-
- Define lo que se ejecutar cada vez que el disparador se active,
lo cual ocurre una vez por cada fila afectada por la sentencia
activadora.
-
- El disparador no puede referirse a tablas directamente por su
nombre, incluyendo la misma tabla a la que estasociado. Sin
embargo, se pueden emplear las palabrasclaveOLDyNEW .
39. Que hay de nuevo en MySQL 5.0x
- El disparador no puede invocar procedimientosalmacenados
utilizando la sentenciaCALL .
- El disparador no puede utilizar sentencias queinicien o
finalicen una transaccin.
- En un disparador paraINSERT , solamente puedeutilizarseNEW.
nom_col.
40. Que hay de nuevo en MySQL 5.0x
- En un disparador paraDELETEslo puedeemplearseOLD. nom_col
.
- En un disparador paraUPDATEse puede emplearOLD. nom_col yNEW.
nom_colpara referirse a lascolumnas del registro luego de
actualizarlo.
- Una columna precedida porOLDes de slo lectura.
41. Que hay de nuevo en MySQL 5.0x
- Una columna precedida porNEWpuede serreferenciada si se tiene
el privilegioSELECTsobre ella. En un disparadorBEFORE , tambin es
posible cambiar su valor conSET NEW. nombre_col=valorsi se tiene el
privilegio deUPDATEsobre ella.
- En un disparadorBEFORE , el valor deNEWparauna
columnaAUTO_INCREMENTes 0.
42. Que hay de nuevo en MySQL 5.0x
- Si falla es un disparadorBEFORE , no se ejecuta la operacin en
el correspondiente registro.
- Un disparadorAFTERse ejecuta solamente si el
disparadorBEFORE(de existir) y la operacin seejecutaron
exitosamente.
- Un error durante la ejecucin de un disparadorBEFOREoAFTERderiva
en la falla de toda lasentencia que provoc la invocacin del
disparador.
43. Que hay de nuevo en MySQL 5.0x
- En tablas transaccionales, la falla de un disparador(y por lo
tanto de toda la sentencia) debera causarla cancelacin (rollback)
de todos los cambiosrealizados por esa sentencia
44. Que hay de nuevo en MySQL 5.0x
-
- Las vistas (incluyendo vistas actualizables) fueron
introducidas en la versin 5.0 del servidor de base de datos
MySQL
-
- Las vistas son tiles para permitir acceder a los usuarios a un
conjunto de relaciones (tablas) como si fueran una sola, y limitar
su acceso a las mismas.
45. Que hay de nuevo en MySQL 5.0x
-
-
- Esta sentencia crea una vista nueva o reemplaza una existente
si se incluye la clusulaOR REPLACE.
-
-
-
- CREATE VIEW v1 AS SELECT * FROM t1 WHERE a < 2 WITH CHECK
OPTION;
CREATE VIEW v1 AS SELECT * FROM t1 WHERE a < 2 -> WITH
CHECK OPTION; 46. Que hay de nuevo en MySQL 5.0x
-
-
- La definicin de una vista est sujeta a las siguientes
limitaciones:
-
-
-
- La sentenciaSELECTno puede contener una subconsulta en su
clusulaFROM .
-
-
-
- La sentenciaSELECTno puede hacer referencia a variables del
sistema o del usuario.
-
-
-
- La sentenciaSELECTno puede hacer referencia a parmetros de
sentencia preparados.
-
-
-
- Dentro de una rutina almacenada, la definicin no puede hacer
referencia a parmetros de la rutina o a variables locales.
-
-
-
- Cualquier tabla o vista referenciada por la definicin debe
existir.
47. Que hay de nuevo en MySQL 5.0x
-
- Algunas vistas son actualizables.
-
-
- La opcionWITH CHECK OPTIONpuede utilizarse en una vista
actualizable para evitar inserciones o actualizaciones excepto en
los registros en que la clusulaWHEREde lasentencia_selectse evale
como true.
-
-
- En la clusulaWITH CHECK OPTIONde una vista actualizable, las
palabras reservadasLOCALyCASCADEDdeterminan el alcance de la
verificacin
48. Que hay de nuevo en MySQL 5.0x
-
-
- Esta sentencia modifica la definicin de una vista
existente
-
-
- Esta sentencia se introdujo en MySQL 5.0.1.
-
-
- Elimina una o ms vistas de la base de datos.
49. Que hay de nuevo en MySQL 5.0x