MySQL 5.0

Post on 25-Jan-2016

35 views 0 download

description

MySQL 5.0. Milton Labanda 1000ton.lab@gmail.com UNIVERSIDAD NACIONAL DE LOJA Carrera de Ingeniería en Sistemas Enero 2006. Objetivos. Actualizar conocimientos relacionados al currículum. Revisar algunas novedades en la v 5.0 Explotar el uso de herramientas relacionadas. - PowerPoint PPT Presentation

Transcript of MySQL 5.0

MySQL 5.0

Milton Labanda

1000ton.lab@gmail.com

UNIVERSIDAD NACIONAL DE LOJA

Carrera de Ingeniería en Sistemas

Enero 2006

Objetivos

Actualizar conocimientos relacionados al currículum.

Revisar algunas novedades en la v 5.0 Explotar el uso de herramientas relacionadas

¿Ventajas de MySQL?

Es un Sistema Gestor de Bases de Datos disponible en la mayoría de plataformas.

El servidor de Bases de Datos Open Source más popular.

Liviano y rápido: adecuado para aplicaciones Web.

Cuenta con APIs disponibles para C, C++, Perl, PHP, Python, Java, .NET

Estado de MySQL

Anterior versión estable: 4.0 y 4.1

Actual versión estable: 5.0

Futura versión estable: 5.1

Se sigue utilizando las versiones 4.0 y 4.1

Novedades de la Versión 5.0

Múltiples Instancias del Servidor Stored Procedures (Procedimientos

Almacenados) Triggers (Disparadores) Views (Vistas) Acceso al Metadata de las BD

Configuración de Múltiples Instancias Archivo ‘my.ini’

######################################## Servidor 1 #######################################[mysqld1]datadir = "C:/mydata1/"port = 3307enable-named-pipesocket = pipe1

######################################## Servidor 2 ########################################[mysqld2]datadir = "c:/mydata2/"port = 3308enable-named-pipesocket = pipe2

Configuración de Múltiples Instancias Instalación de las instancias como servicios de

windows: mysqld-nt - -install mysqld1 mysqld-nt - -install mysqld2

Arranque de las Instancias del servidor: NET START mysqld1 NET START mysqld2

Stored Procedures

Un procedimiento almacenado es una rutina (procedimiento o función) que es almacenada dentro de la base de datos.

Sentencias:CREATE PROCEDURE/FUNCTIONALTER PROCEDURE/FUNCTIONDROP PROCEDURE/FUNCTION

Stored Procedures: Sintaxis

Sintaxis de Creación:

CREATE PROCEDURE nombre_proc([parametro …])[característica …]cuerpo_proc

CREATE FUNCTION nombre_func([parametro …])RETURNS tipo_dato[característica …]cuerpo_func

Stored Procedures

Cuerpo de la Rutina Especifica que es lo que hará la rutina Puede contener una o más sentencias SQL Puede incluir sentencias DECLARE

Sintaxis del cuerpoBEGIN

[DECLARE variables, cursores, condiciones][Sentencias SQL]

END

Stored Procedures: Ejemplos

CREATE PROCEDURE p1 ()

BEGIN

DECLARE v1 INT DEFAULT 10;

SET v1 = 5;

INSERT INTO t VALUES (v1);

END;

Stored Procedures: Ejemplos

CREATE PROCEDURE copiar () BEGIN DECLARE var1 VARCHAR(34);

DECLARE c1 CURSOR FOR SELECT name FROM test.t; OPEN c1; REPEAT FETH c1 INTO var1;

….END;

Stored Procedures

CREATE FUNCTION saludar (nombre CHAR(20)) RETURNS CHAR (40)BEGIN DECLARE saludo CHAR(40); SET saludo = CONCAT('Hola, ‘ ,UPPER(nombre), ',

como estas?'); RETURN saludo;END

Stored Procedures

Invocar a un Procedimiento almacenado: call nombre_proc([params, …]) Ejemplo:

CALL proc1( );

Invocar a una función almacenada: Generalmente: select nombre_func([params, …]) Ejemplo:

SELECT saludar(‘Enrique’);

Stored Procedures: Sentencias de Control IF – si <condicion> hacer <acción> CASE – selección alternativa, dependiente LOOP – hacer <acción> repetidamente LEAVE – terminación de un bucle o bloque ITERATE – reinicia un bucle REPEAT – repetir <acción> hasta

<condición> sea verdadera WHILE – repetir <action> mientras

<condición> sea verdadera

Stored Procedures

Ventajas:Mejorar el DesempeñoAhorrar tiempo, dinero y recursos

Triggers

Un Trigger es una acción en cadena que empieza cuando un evento específico ocurre sobre una tabla específica.

Triggers: Sintaxis

CREATE TRIGGER nombre_trigger

{BEFORE | AFTER}

{INSERT | UPDATE | DELETE} ON nombre_table

FOR EACH ROW acción_trigger | sentencias SQL

Triggers: Usos

Registrar, auditar y monitorear la actividad de cambio de datos

Validar datos, cambiando o negando acciones como INSERT, UPDATE, DELETE en una tabla

Preservar la consistencia y claridad de los datos ejecutando acciones relacionadas en tablas relacionadas

Triggers: Ejemplos

CREATE TRIGGER info

AFTER INSERT ON test.t

FOR EACH ROW

SET @ultimo = NEW.id;

Triggers: Ejemplos

CREATE TRIGGER update_check BEFORE UPDATE ON test.t

FOR EACH ROW BEGIN IF LENGTH(NEW.name) = 0 THEN SET NEW.name = 'Nombres'; END IF;

END;

Vistas

Una Vista es una tabla virtual Provee otra manera de buscar en los

datos existentes No usan espacio extra en disco La sintaxis de las Vistas MySQL son

100% compatibles con el SQL standard.

Vistas: Sintaxis

CREATE [OR REPLACE]

VIEW nombre_vista

[(lista_columnas)]

AS sentencia_select

[WITH [CASCADED | LOCAL] CHECK OPTION]

Vistas: Ejemplos

Vistas: Ejemplos

WITH CHECK OPTION

CREATE VIEW v1 ASSELECT col1 FROM t1 WHERE col1 <> 'A'WITH CHECK OPTION;

mysql> UPDATE v1 SET col1 = 'A';ERROR 1369 (HY000): CHECK OPTION failed ‘test.v1'

Vistas: Ejemplos

WITH LOCAL CHECK OPTION

CREATE VIEW v2 ASSELECT * FROM v1 WHERE col1 <> 'B'WITH LOCAL CHECK OPTION;

mysql> INSERT INTO v2 VALUES ('B');ERROR 1369 (HY000): CHECK OPTION failed ‘test.v2'

mysql> INSERT INTO v2 VALUES ('A');Query OK, 1 row affected (0.01 sec)

Vistas: Ejemplos

WITH CASCADED CHECK OPTION

CREATE VIEW v3 ASSELECT * FROM v2 WHERE col1 <> 'C'WITH CASCADED CHECK OPTION;

mysql> INSERT INTO v3 VALUES ('B');ERROR 1369 (HY000): CHECK OPTION failed ‘test.v3'-- porque las condiciones de v2 no permiten 'B' y v3 depende de v2

mysql> INSERT INTO v3 VALUES ('A');ERROR 1369 (HY000): CHECK OPTION failed ‘test.v3'-- porque las condiciones de v1 no permiten 'A' and v3 depende de v1 y

v2

Vistas: Actualización

Una Vista actualizable puede aceptar sentencias UPDATE, DELETE

Algunas vistas pueden permitir INSERT Los cambios de los datos se propagan

automáticamente a la tabla base.

Vistas: Usos

Las vistas pueden ser usadas en lugar de definir restricciones utilizando por ejemplo NOT NULL, BETWEEN, etc.

Pueden usarse en la reestructuración de tablas, ocultando o moviendo columnas.

Permiten implementar seguridad en los datos al ocultar registros.

INFORMATION_SCHEMA

El Esquema de Información es la forma SQL standard para acceder el metadata de la base de datos. Contiene una serie de tablas que describen

los objetos de la base de datosEs una base de datos virtual visible a través

de sentencias SELECT

INFORMATION_SCHEMA

Ventajas:Standarización del manejo del metadata,

quedando atrás el uso de comandos SHOW específicos de MySQL

No se necesita aprender un nuevo conjunto de comandos para acceder el metadata.

INFORMATION_SCHEMA

Visualización:

INFORMATION_SCHEMA

Objetos mas importantes:SCHEMATATABLESVIEWSROUTINESCOLUMNS

INFORMATION_SCHEMA

Objetos mas importantes:

MySQL Tips Mostrar resultados verticalmente: \G

MySQL Tips

Prevenir resultados inesperados al usar sentencias de modificación:Usar la opción -U al conectarse

C:>mysql –u usuario –p –U

Obliga a usar la cláusula WHERE al realizar un UPDATE O DELETE.

MySQL Tips

Cambiar la contraseña del superusuario ‘root’ y renombrar el usuario

c:> mysqladmin -u root password ‘nueva_clave’

mysql> update mysql.user -> set user = ‘admin’-> where user = ‘root’

MySQL Tips

Proteger el directorio de instalación del acceso de otros usuarios.

Apegarse al ANSI SQL si se requiere portabilidad

No mezclar el código de la interfaz del usuario con código de bases de datos.

Usar pool de conexiones en Servidores Web y Servidores a Aplicaciones

MySQL Tips

Ejecutar sentencias sin entrar al cliente mysqlC:> mysql –u root –p –e “select * from test.t”

Exportar a XMLC:> mysql –u user –p –e “sentencias” –X > archivo.xml

Exportar a HTMLC:> mysql –u user –p –e “sentencias” –H > archivo.html

GRACIAS!