Exposicion Mysql

6,439 views
6,268 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,439
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
315
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Exposicion Mysql

  1. 1. 24-10-2007 Interplanet MySQL 5.x Hugo Alfonso Palma García
  2. 2. <ul><li>Temario </li></ul><ul><li>Panorámica del sistema de gestión de base de datos MySQL </li></ul><ul><li>Las principales características de MySQL </li></ul><ul><li>Qué hay de nuevo en MySQL 5.0x </li></ul><ul><ul><li>Tipo de dato BIT </li></ul></ul><ul><ul><li>Tipo de dato VARCHAR </li></ul></ul><ul><ul><li>INFORMATIONS_SCHEME </li></ul></ul><ul><ul><li>El gestor de instancias </li></ul></ul><ul><ul><li>Matemáticas de precisión </li></ul></ul><ul><ul><li>Cursores </li></ul></ul><ul><ul><li>Procedimientos almacenados y funciones </li></ul></ul><ul><ul><li>Disparadores </li></ul></ul><ul><ul><li>Vistas </li></ul></ul><ul><li>MySQL 5.x </li></ul>
  3. 3. Panorámica del sistema de gestión de base de datos MySQL <ul><li>MySQL, es el sistema de gestión de bases de datos SQL Open Source más popular, lo desarrolla, distribuye y soporta MySQL AB. </li></ul><ul><li>MySQL es un sistema de gestión de bases de datos relacionales. </li></ul><ul><li>MySQL usa “SQL estándar”, llámese estándar al más actual que es el 2003. </li></ul><ul><li>El servidor de base de datos MySQL es muy rápido, fiable y fácil de usar. </li></ul>
  4. 4. Panorámica del sistema de gestión de base de datos MySQL <ul><li>MySQL Server se desarrolló originalmente para tratar grandes bases de datos mucho más rápido que soluciones existentes. </li></ul><ul><li>MySQL Server trabaja en entornos cliente/servidor o incrustados. </li></ul><ul><li>Una gran cantidad de software de contribuciones está disponible para MySQL. </li></ul><ul><li>La forma oficial de pronunciar &quot;MySQL&quot; es &quot;My Ess Quiu Ell&quot; (no &quot;my sicuel&quot;). </li></ul>
  5. 5. <ul><li>Interioridades y portabilidad </li></ul><ul><ul><li>Escrito en C y en C++. Probado con un amplio rango de compiladores diferentes </li></ul></ul><ul><ul><li>Funciona en diferentes plataformas. </li></ul></ul><ul><ul><li>Usa GNU Automake, Autoconf, y Libtool para portabilidad. </li></ul></ul><ul><ul><li>APIs disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl. </li></ul></ul><ul><ul><li>Uso completo de multi-threaded mediante threads del kernel. </li></ul></ul><ul><ul><li>Proporciona sistemas de almacenamiento transaccionales y no transaccionales. </li></ul></ul>Las principales características de MySQL
  6. 6. <ul><ul><li>Usa tablas en disco B-tree ( MyISAM ) muy rápidas con compresión de índice. </li></ul></ul><ul><ul><li>Relativamente sencillo de añadir otro sistema de almacenamiento. </li></ul></ul><ul><ul><li>Un sistema de reserva de memoria muy rápido basado en threads. </li></ul></ul><ul><ul><li>Joins muy rápidos usando un multi-join de un paso optimizado. </li></ul></ul><ul><ul><li>Tablas hash en memoria, que son usadas como tablas temporales. </li></ul></ul>Las principales características de MySQL
  7. 7. <ul><ul><li>Las funciones SQL están implementadas usando una librería altamente optimizada. </li></ul></ul><ul><ul><li>Se prueba que el código MySQL no ocasione pérdida de memoria con software comercial. </li></ul></ul><ul><ul><li>El servidor está disponible como un programa separado para usar en un entorno de red cliente/servidor o bien como biblioteca y puede ser incrustado en aplicaciones autónomas. </li></ul></ul>Las principales características de MySQL
  8. 8. <ul><li>Tipos de columnas </li></ul><ul><ul><li>Diversos tipos de columnas. </li></ul></ul><ul><ul><li>Registros de longitud fija y longitud variable. </li></ul></ul><ul><li>Seguridad </li></ul><ul><ul><li>Un sistema de privilegios y contraseñas que es muy flexible y seguro, y que permite verificación basada en el host. </li></ul></ul><ul><ul><li>Todo intercambio de información esta cifrada. </li></ul></ul>Las principales características de MySQL
  9. 9. <ul><li>Escalabilidad y límites </li></ul><ul><ul><li>Soporte a grandes bases de datos. </li></ul></ul><ul><ul><li>Se permiten hasta 64 índices por tabla y 32 antes de MySQL 4.1.2. </li></ul></ul><ul><ul><li>Un índice puede usar prefijos de una columna para los tipos de columna CHAR , VARCHAR , BLOB , o TEXT . </li></ul></ul>Las principales características de MySQL
  10. 10. <ul><li>Conectividad </li></ul><ul><ul><li>Los clientes pueden conectar con el servidor MySQL usando sockets TCP/IP en cualquier plataforma. </li></ul></ul><ul><ul><li>La interfaz para el conector ODBC (MyODBC). </li></ul></ul><ul><ul><li>La interfaz para el conector J MySQL. </li></ul></ul>Las principales características de MySQL
  11. 11. <ul><li>Localización </li></ul><ul><ul><li>El servidor puede proporcionar mensajes de error en muchos idiomas. </li></ul></ul><ul><ul><li>Soporte completo para distintos conjuntos de caracteres. </li></ul></ul><ul><ul><li>Todos los datos se guardan en el conjunto de caracteres elegido. </li></ul></ul><ul><ul><li>Todas las comparaciones para columnas normales de cadenas de carácteres son case-insensitive. </li></ul></ul>Las principales características de MySQL
  12. 12. <ul><li>Clientes y herramientas </li></ul><ul><ul><li>MySQL server tiene soporte para comandos SQL para chequear, optimizar, y reparar tablas. </li></ul></ul><ul><ul><li>Todos los programas MySQL pueden invocarse con las opciones --help o -? para obtener asistencia en línea. </li></ul></ul>Las principales características de MySQL
  13. 13. Nuevas bondades de MySQL 5.0x
  14. 14. Que hay de nuevo en MySQL 5.0x <ul><li>Tipo de dato Bit </li></ul>Tipo Bytes Valor Mínimo Valor Máximo BIT 1 1 64
  15. 15. Que hay de nuevo en MySQL 5.0x <ul><li>Tipo de datos VARCHAR </li></ul><ul><ul><li>Soporte nativo VARCHAR . </li></ul></ul><ul><ul><li>La longitud máxima de VARCHAR es 65,532 bytes. </li></ul></ul><ul><ul><li>No se cortan espacios en blanco consecutivos </li></ul></ul><ul><ul><li>Almacena los valores usando sólo los carácteres necesarios, más un byte adicional para la longitud (dos bytes para columnas que se declaran con una longitud superior a 255). </li></ul></ul>
  16. 16. Que hay de nuevo en MySQL 5.0x <ul><li>INFORMATIONS_SCHEME </li></ul><ul><ul><li>El soporte para INFORMATION_SCHEMA está disponible en MySQL 5.0.2 y posterior. </li></ul></ul><ul><ul><li>Proporciona acceso a los metadatos de la base de datos. </li></ul></ul><ul><ul><li>Ventajas de SELECT contra el show. </li></ul></ul><ul><ul><ul><li>El comando SELECT ... FROM INFORMATION_SCHEMA es una forma más consistente de proporcionar acceso a la información proporcionada por los comandos SHOW. </li></ul></ul></ul><ul><ul><ul><li>Cumple las reglas de Codd. </li></ul></ul></ul>
  17. 17. Que hay de nuevo en MySQL 5.0x <ul><ul><ul><li>Nadie necesita aprender una nueva sintaxis. Conocen cómo funciona SELECT, pero si aprender los nombres de los objetos. </li></ul></ul></ul><ul><ul><ul><li>El implementador no tiene que preocuparse de palabras clave. </li></ul></ul></ul><ul><ul><ul><li>Hay millones de variaciones de la salida, en lugar de sólo una. Esto proporciona flexibilidad a las aplicaciones con requerimientos cambiantes acerca de los metadatos que necesitan. </li></ul></ul></ul><ul><ul><ul><li>La migración es más fácil ya que todos los otros DBMS funcionan así. </li></ul></ul></ul>
  18. 18. Que hay de nuevo en MySQL 5.0x <ul><li>El gestor de instancias de MySQL. </li></ul><ul><ul><li>Este es el demonio que corre en el puerto TCP/IP. </li></ul></ul><ul><ul><li>Está disponible para sistemas operativos basados en Unix. </li></ul></ul><ul><ul><li>MySQL (IM) se incluye en las distribuciones de MySQL desde la versión 5.0.3. </li></ul></ul>
  19. 19. Que hay de nuevo en MySQL 5.0x <ul><li>Creación de cuentas de usuario </li></ul><ul><ul><li>El IM almacena su información de usuario en un fichero de contraseñas. La localización por defecto para el fichero de contraseñas es /etc/mysqlmanager.passwd </li></ul></ul><ul><ul><li>Las entradas para las contraseñas se parecen a las siguiente: </li></ul></ul><ul><ul><li>petr:*35110DC9B4D8140F5DE667E28C72DD2597B5C848 </li></ul></ul><ul><ul><li>Para generar una entrada así debe invocarse IM con la opción –passwd y rediccionar la salida al archivo de las contraseñas. </li></ul></ul>
  20. 20. Que hay de nuevo en MySQL 5.0x <ul><li>Ejemplo de registro de usuario. </li></ul><ul><ul><li>./mysqlmanager --passwd >> /etc/mysqlmanager.passwd </li></ul></ul><ul><ul><li>Creating record for new user. </li></ul></ul><ul><ul><li>Enter user name: mike </li></ul></ul><ul><ul><li>Enter password: <password> </li></ul></ul><ul><ul><li>Re-type password: <password> </li></ul></ul><ul><ul><li>La siguiente línea se añade a /etc/mysqlmanager.passwd: </li></ul></ul><ul><ul><li>mike:*00A51F3F48415C7D4E8908980D443C29C69B60C9 </li></ul></ul><ul><ul><li>Si no hay entradas en el fichero /etc/mysqlmanager.passw </li></ul></ul><ul><ul><li>no puede conectarse al IM. </li></ul></ul>
  21. 21. Que hay de nuevo en MySQL 5.0x <ul><li>Matemáticas de precisión </li></ul><ul><ul><li>La matemática de precisión se basa en dos cambios de implementación: </li></ul></ul><ul><ul><ul><li>La introducción de nuevos modos SQL en MySQL 5.0.2 que controlan lo estricto que es el servidor para aceptar o rechazar datos inválidos. </li></ul></ul></ul><ul><ul><ul><li>La introducción en MySQL 5.0.3 de una biblioteca para aritmética de punto fijo. </li></ul></ul></ul>
  22. 22. Que hay de nuevo en MySQL 5.0x <ul><ul><li>Estos cambios tienen varias implicaciones para operaciones numéricas: </li></ul></ul><ul><ul><ul><li>Cálculos más precisos. </li></ul></ul></ul><ul><ul><ul><li>Para números exactos, los cálculos no introducen error en coma flotante. </li></ul></ul></ul><ul><ul><ul><li>Comportamiento bien definido para el redondeo. </li></ul></ul></ul><ul><ul><ul><li>Independencia de plataforma mejorada. </li></ul></ul></ul><ul><ul><ul><li>Control sobre tratamiento de datos inválidos. </li></ul></ul></ul><ul><ul><ul><li>Desbordamiento y división por cero pueden detectarse y tratarse como errores. </li></ul></ul></ul><ul><ul><ul><li>Un resultado importante de estos cambios es que MySQL proporciona un mejor cumplimiento del estándar SQL. </li></ul></ul></ul>
  23. 23. Que hay de nuevo en MySQL 5.0x <ul><li>Cambios en el tipo de datos DECIMAL </li></ul><ul><ul><li>Formato de almacenamiento </li></ul></ul><ul><ul><li>Las extensiones MySQL no estándar al rango superior de columnas DECIMAL </li></ul></ul><ul><ul><li>El rango de valores para los argumentos de DECIMAL ha cambiado. </li></ul></ul><ul><ul><li>La extensión no estándard MySQL del rango superior de columnas DECIMAL no se soporta. </li></ul></ul><ul><ul><li>Los carácteres precedentes ' + ' y ' 0 ' no se almacenan. </li></ul></ul>
  24. 24. Que hay de nuevo en MySQL 5.0x <ul><li>Cursores </li></ul><ul><ul><li>Se soportan cursores simples dentro de procedimientos y funciones almacenadas. </li></ul></ul><ul><ul><li>Sirven para almacenar valores retornados por un SELECT en procedimientos almacenados. </li></ul></ul>
  25. 25. Que hay de nuevo en MySQL 5.0x <ul><li>Ejemplo de cursor </li></ul><ul><li>CREATE PROCEDURE curdemo() </li></ul><ul><li>BEGIN </li></ul><ul><li>DECLARE done INT DEFAULT 0; </li></ul><ul><li>DECLARE a CHAR(16); </li></ul><ul><li>DECLARE b,c INT; </li></ul><ul><li>DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1; </li></ul><ul><li>DECLARE cur2 CURSOR FOR SELECT i FROM test.t2; </li></ul><ul><li>DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; </li></ul><ul><li>  OPEN cur1; </li></ul><ul><li>OPEN cur2; </li></ul><ul><li>  REPEAT </li></ul><ul><li>FETCH cur1 INTO a, b; </li></ul><ul><li>FETCH cur2 INTO c; </li></ul><ul><li>IF NOT done THEN </li></ul><ul><li>IF b < c THEN </li></ul><ul><li>INSERT INTO test.t3 VALUES (a,b); </li></ul><ul><li>ELSE </li></ul><ul><li>INSERT INTO test.t3 VALUES (a,c); </li></ul><ul><li>END IF; </li></ul><ul><li>END IF; </li></ul><ul><li>UNTIL done END REPEAT; </li></ul><ul><li>  CLOSE cur1; </li></ul><ul><li>CLOSE cur2; </li></ul><ul><li>END </li></ul>
  26. 26. Que hay de nuevo en MySQL 5.0x <ul><li>Procedimientos almacenados y funciones </li></ul><ul><ul><li>Un procedimiento almacenado es un conjunto de comandos SQL que pueden almacenarse en el servidor. </li></ul></ul><ul><ul><ul><li>Situaciones en las que los procedimientos almacenados pueden ser muy útiles: </li></ul></ul></ul><ul><ul><ul><ul><li>Cuando múltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas plataformas. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Cuando la seguridad es muy importante. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Pueden mejorar el rendimiento. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>MySQL sigue la sintaxis SQL:2003 para procedimientos almacenados, que también usa IBM DB2. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>La implementación en MySQL aún está en progreso. </li></ul></ul></ul></ul>
  27. 27. Que hay de nuevo en MySQL 5.0x <ul><li>Ejemplo de procedimiento </li></ul><ul><ul><li>mysql> delimiter // </li></ul></ul><ul><ul><li>mysql> CREATE PROCEDURE simpleproc (OUT param1 INT) </li></ul></ul><ul><ul><li>-> BEGIN </li></ul></ul><ul><ul><li>-> SELECT COUNT(*) INTO param1 FROM t; </li></ul></ul><ul><ul><li>-> END </li></ul></ul><ul><ul><li>-> // </li></ul></ul><ul><ul><li>mysql> delimiter ; </li></ul></ul>
  28. 28. Que hay de nuevo en MySQL 5.0x <ul><ul><li>Ejecución: </li></ul></ul><ul><ul><li>mysql> CALL simpleproc(@a); </li></ul></ul><ul><ul><li>mysql> SELECT @a; </li></ul></ul><ul><ul><li>| @a | </li></ul></ul><ul><ul><li>+------+ </li></ul></ul><ul><ul><li>| 3 | </li></ul></ul><ul><ul><li>+------+ </li></ul></ul>
  29. 29. Que hay de nuevo en MySQL 5.0x <ul><li>Ejemplo de función: </li></ul><ul><ul><li>mysql> delimiter // </li></ul></ul><ul><ul><li>mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50) </li></ul></ul><ul><ul><li>-> RETURN CONCAT('Hello, ',s,'!'); </li></ul></ul><ul><ul><li>-> // </li></ul></ul><ul><ul><li>mysql> delimiter ; </li></ul></ul>
  30. 30. Que hay de nuevo en MySQL 5.0x <ul><li>Ejecución: </li></ul><ul><ul><li>mysql> SELECT hello('world'); </li></ul></ul><ul><ul><li>+------------------+ </li></ul></ul><ul><ul><li>| hello('world') | </li></ul></ul><ul><ul><li>+------------------+ </li></ul></ul><ul><ul><li>| Hello, world! | </li></ul></ul><ul><ul><li>+------------------+ </li></ul></ul>
  31. 31. Que hay de nuevo en MySQL 5.0x <ul><li>ALTER PROCEDURE y ALTER FUNCTION </li></ul><ul><ul><li>Este comando cambia las características de un procedimiento o función almacenada. </li></ul></ul><ul><li>DROP PROCEDURE y DROP FUNCTION </li></ul><ul><ul><li>Este comando borrar un procedimiento o función almacenado. </li></ul></ul>
  32. 32. Que hay de nuevo en MySQL 5.0x <ul><li>SHOW CREATE PROCEDURE y SHOW CREATE FUNCTION </li></ul><ul><ul><li>Retorna la cadena exacta que puede usarse para recrear la rutina nombrada. </li></ul></ul><ul><li>SHOW PROCEDURE STATUS y SHOW FUNCTION STATUS </li></ul><ul><ul><li>Retorna características de rutinas, como el nombre de la base de datos, nombre, tipo, creador y fechas de creación y modificación. </li></ul></ul><ul><ul><li>También puede obtener información de rutinas almacenadas de la tabla ROUTINES en INFORMATION_SCHEMA . </li></ul></ul>
  33. 33. Que hay de nuevo en MySQL 5.0x <ul><li>Disparadores (triggers) </li></ul><ul><ul><li>A partir de MySQL 5.0.2 se incorporó el soporte básico para disparadores (triggers). </li></ul></ul><ul><ul><li>Un disparador es un objeto con nombre dentro de una base de datos el cual se asocia con una tabla y se activa cuando ocurre en ésta un evento en particular. </li></ul></ul>
  34. 34. Que hay de nuevo en MySQL 5.0x <ul><ul><li>momento_disp es el momento en que el disparador entra en acción. Puede ser BEFORE (antes) o AFTER (despues). </li></ul></ul><ul><ul><li>evento_disp indica la clase de sentencia que activa al disparador. Puede ser INSERT , UPDATE , o DELETE . Por ejemplo, un disparador BEFORE para sentencias INSERT podría utilizarse para validar los valores a insertar. </li></ul></ul>
  35. 35. Que hay de nuevo en MySQL 5.0x <ul><ul><li>No puede haber dos disparadores en una misma tabla que correspondan al mismo momento y evento. </li></ul></ul><ul><ul><li>sentencia_disp es la sentencia que se ejecuta cuando se activa el disparador. Si se desean ejecutar múltiples sentencias, deben colocarse entre BEGIN ... END , el constructor de sentencias compuestas. </li></ul></ul><ul><ul><li>Antes de MySQL 5.0.10, los disparadores no podían contener referencias directas a tablas por su nombre. A partir de MySQL 5.0.10, se pueden escribir disparadores como el llamado testref , que se muestra en el siguiente ejemplo: </li></ul></ul>
  36. 36. Que hay de nuevo en MySQL 5.0x <ul><ul><li>DELIMITER | </li></ul></ul><ul><ul><li>  </li></ul></ul><ul><ul><li>CREATE TRIGGER testref BEFORE INSERT ON test1 </li></ul></ul><ul><ul><li>FOR EACH ROW BEGIN </li></ul></ul><ul><ul><li>INSERT INTO test2 SET a2 = NEW.a1; </li></ul></ul><ul><ul><li>DELETE FROM test3 WHERE a3 = NEW.a1; </li></ul></ul><ul><ul><li>UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1; </li></ul></ul><ul><ul><li>END </li></ul></ul><ul><ul><li>| </li></ul></ul><ul><ul><li>  </li></ul></ul><ul><ul><li>DELIMITER ; </li></ul></ul>
  37. 37. Que hay de nuevo en MySQL 5.0x <ul><ul><li>Las columnas de la tabla asociada con el disparador pueden referenciarse empleando los alias OLD y NEW . </li></ul></ul><ul><ul><li>Actualmente, los disparadores no son activados por acciones llevadas a cabo en cascada por las restricciones de claves extranjeras </li></ul></ul>
  38. 38. Que hay de nuevo en MySQL 5.0x <ul><li>DROP TRIGGER </li></ul><ul><ul><li>Elimina un disparador. </li></ul></ul><ul><li>FOR EACH ROW </li></ul><ul><ul><li>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. </li></ul></ul><ul><li>OLD y NEW </li></ul><ul><ul><li>El disparador no puede referirse a tablas directamente por su nombre, incluyendo la misma tabla a la que está asociado. Sin embargo, se pueden emplear las palabras clave OLD y NEW . </li></ul></ul>
  39. 39. Que hay de nuevo en MySQL 5.0x <ul><li>El disparador no puede invocar procedimientos almacenados utilizando la sentencia CALL . </li></ul><ul><li>El disparador no puede utilizar sentencias que inicien o finalicen una transacción. </li></ul><ul><li>En un disparador para INSERT , solamente puede utilizarse NEW. nom_col. </li></ul>
  40. 40. Que hay de nuevo en MySQL 5.0x <ul><li>En un disparador para DELETE sólo puede emplearse OLD. nom_col . </li></ul><ul><li>En un disparador para UPDATE se puede emplear OLD. nom_col y NEW. nom_col para referirse a las columnas del registro luego de actualizarlo. </li></ul><ul><li>Una columna precedida por OLD es de sólo lectura. </li></ul>
  41. 41. Que hay de nuevo en MySQL 5.0x <ul><li>Una columna precedida por NEW puede ser referenciada si se tiene el privilegio SELECT sobre ella. En un disparador BEFORE , también es posible cambiar su valor con SET NEW. nombre_col = valor si se tiene el privilegio de UPDATE sobre ella. </li></ul><ul><li>En un disparador BEFORE , el valor de NEW para una columna AUTO_INCREMENT es 0. </li></ul>
  42. 42. Que hay de nuevo en MySQL 5.0x <ul><li>Si falla es un disparador BEFORE , no se ejecuta la operación en el correspondiente registro. </li></ul><ul><li>Un disparador AFTER se ejecuta solamente si el disparador BEFORE (de existir) y la operación se ejecutaron exitosamente. </li></ul><ul><li>Un error durante la ejecución de un disparador BEFORE o AFTER deriva en la falla de toda la sentencia que provocó la invocación del disparador. </li></ul>
  43. 43. Que hay de nuevo en MySQL 5.0x <ul><li>En tablas transaccionales, la falla de un disparador (y por lo tanto de toda la sentencia) debería causar la cancelación (rollback) de todos los cambios realizados por esa sentencia </li></ul>
  44. 44. Que hay de nuevo en MySQL 5.0x <ul><li>Vistas (Views) </li></ul><ul><ul><li>Las vistas (incluyendo vistas actualizables) fueron introducidas en la versión 5.0 del servidor de base de datos MySQL </li></ul></ul><ul><ul><li>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. </li></ul></ul>
  45. 45. Que hay de nuevo en MySQL 5.0x <ul><ul><li>CREATE VIEW </li></ul></ul><ul><ul><ul><li>Esta sentencia crea una vista nueva o reemplaza una existente si se incluye la cláusula OR REPLACE. </li></ul></ul></ul><ul><ul><ul><li>Ejemplo </li></ul></ul></ul><ul><ul><ul><ul><li>CREATE VIEW v1 AS SELECT * FROM t1 WHERE a < 2 WITH CHECK OPTION; </li></ul></ul></ul></ul>CREATE VIEW v1 AS SELECT * FROM t1 WHERE a < 2 -> WITH CHECK OPTION;
  46. 46. Que hay de nuevo en MySQL 5.0x <ul><ul><ul><li>La definición de una vista está sujeta a las siguientes limitaciones: </li></ul></ul></ul><ul><ul><ul><ul><li>La sentencia SELECT no puede contener una subconsulta en su cláusula FROM . </li></ul></ul></ul></ul><ul><ul><ul><ul><li>La sentencia SELECT no puede hacer referencia a variables del sistema o del usuario. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>La sentencia SELECT no puede hacer referencia a parámetros de sentencia preparados. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Dentro de una rutina almacenada, la definición no puede hacer referencia a parámetros de la rutina o a variables locales. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Cualquier tabla o vista referenciada por la definición debe existir. </li></ul></ul></ul></ul>
  47. 47. Que hay de nuevo en MySQL 5.0x <ul><ul><li>Algunas vistas son actualizables. </li></ul></ul><ul><ul><ul><li>La opcion WITH CHECK OPTION puede utilizarse en una vista actualizable para evitar inserciones o actualizaciones excepto en los registros en que la cláusula WHERE de la sentencia_select se evalúe como true. </li></ul></ul></ul><ul><ul><ul><li>En la cláusula WITH CHECK OPTION de una vista actualizable, las palabras reservadas LOCAL y CASCADED determinan el alcance de la verificación </li></ul></ul></ul>
  48. 48. Que hay de nuevo en MySQL 5.0x <ul><ul><li>ALTER VIEW </li></ul></ul><ul><ul><ul><li>Esta sentencia modifica la definición de una vista existente </li></ul></ul></ul><ul><ul><ul><li>Esta sentencia se introdujo en MySQL 5.0.1. </li></ul></ul></ul><ul><ul><li>DROP VIEW </li></ul></ul><ul><ul><ul><li>Elimina una o más vistas de la base de datos. </li></ul></ul></ul>
  49. 49. Que hay de nuevo en MySQL 5.0x <ul><li>FIN </li></ul>

×