Equipos Programas Media Internet Telecomunicaciones Seguridad Base de Datos Programación Calidad Desarrollo Empresa

Ruta: >Base de Datos

Base de Datos MySQL

Tabla de Contenido

  1. Introducción a MySQL
  2. Requerimientos
  3. Directorios y Archivos en aplicación MySql
  4. Instalación
    1. Instalar MySQL en Windows
    2. Instalar MySQL en Linux
    3. Instalar MySQL en el DSN del sistema (MyODBC)
  5. Ejecución
    1. Ejecutar MySQL en Linux
    2. MySQLadmin
  6. Operaciones
    1. Operaciones básicas desde el promt
    2. Desde la consola MySQL
      1. Operaciones básicas
      2. Operaciones con Bases de datos
      3. Operaciones con Tablas
      4. Operaciones con Columnas
      5. Operaciones con Datos
      6. Operaciones con Índices
  7. Tipos de Datos
    1. Introducción
    2. Datos numéricos
    3. Cadenas de texto
    4. Misceláneos
  8. Metodología
    1. Tablas
      1. Cómo introducir datos en una tabla de manera rápida
      2. Cómo modificar una columna
      3. Cómo estructurar una tabla
      4. Cómo editar una tabla
      5. Cómo usar los índices (index)
    2. Bases de Datos
      1. Cómo importar datos desde Access
      2. Cómo importar datos desde ODBC
      3. Cómo automatizar tareas usando scripts
      4. Cómo establecer coincidencias de patrones
    3. Seguridad e Importación
      1. Cómo hacer copias de seguridad en MySQL
      2. Cómo asegurar MySQL
      3. Cómo exportar una base de datos MySQL a XML
      4. ¿Se puede importar a MySQL desde un archivo XML?
  9. Interfaces de usuario
    1. MySQL-Front
      1. MySQL-Front: GUI para MySQL
    2. PHPMyAdmin
      1. Instalación de PHPMyAdmin
      2. Archivo config.inc.php (texto)
      3. Exportar datos a XML
  10. Utilidades
    1. Utilidades que acompañan a MySQL
  11. Referencias
    1. Tutorial MySQL (Castellano)
    2. Teach yourself MySQL in 21 days (PDF, Inglés)

Contenido

  • Introducción a MySQL

  • Requerimientos

  • Directorios y Archivos en aplicación MySql

    MySQL, crea en el directorio de instalación ej.: f:\BaseDatos\mysql\data

    • un directorio por cada base de datos.
    • Tres archivos por tabla, con las terminaciones: frm, MYD, MYI
  • Instalación

    • Instalar MySQL en Windows

      Pasos a seguir

      • Desargando MySQL:
        • Ir a http://www.mysql.com/downloads y elegir la versión deseada.
        • Las versiones MySQL Max permiten transacciones, mientras que MySQL no.
        • Con programas como GetRight o Download acelerator no se descargan los archivos. Lo mejor es desactivarlos y bajar los archivos con el navegador directamente.
        • Para trabajar más comodamente se recomienda descargar un interfaz de usuario gráfico (GUI) para MySQL, como puede ser MySQL-Front.

      • Instalación:
        • Descomprimir el archivo ZIP.
        • Ejecutamos SETUP.ZIP
        • Elegimos la carpeta donde queremos instalarla (en ocasiones con el botón 'browse...' no se pueden ver todas las unidades disponibles, pero puede cambiarse la unidad donde se instalará a mano).
        • Elegimos la opción de instalación 'Custom' y después la opción 'Full'.
        • Una vez instalado vamos a la carpeta donde hemos instalado MySQL. Entramos en la carpeta /bin y ejecutamos winmysqladmin.exe. Es conveniente que hagamos un acceso directo a este archivo para poder ejecutarlo más directamente'.
        • Introducimos el nombre de usuario y contraseña.

      Instalación rápida de MySQL en Windows

      • Instalación:
        • Ejecutamos SETUP.EXE. (MySQL Max 3.23.49)
        • Seleccionamos la carpeta donde se instalará MySQL.
        • Seleccionamos la instalación típica.

      • Puesta en marcha:
        • Entrar en la carpeta /MySQL/bin y ejecutamos mysqld.exe para arrancar el demonio (servicio) de MySQL.
        • Ejecutando mysql.exe podemos acceder a la consola de MySQL.
        • Podemos ejecutar mysqlshow.exe para probar que el servidor MySQL está en marcha. Si está activo nos mostrará las bases de datos disponibles.

        Si se desea también puede instalarse PHPMyAdmin para gestionar las bases de datos MySQL a traves de la web.

    • Instalar MySQL en Linux

      Pasos a seguir

      • Abrimos una consola.
      • Escribimos mysql_install_db.
        • Es posible que de un error:
          • Sorry, the host 'Linux' could not be looked up.
            Please configure the 'hostname' command to return a correct hostname.
            If you want to solve this at a later stage, restart this script with
            the --force option
        • En este caso vamos a la configuración de red (por ejemplo, entrando en el control panel/Network configuration) y cambiamos el nombre del host de locahost a otro (por ejemplo Linux).

      • En el caso de que funcione correctamente, se verá un texto como el que sigue:
        • [root@Linux root]# mysql_install_db
          Preparing db table
          Preparing host table
          Preparing user table
          Preparing func table
          Preparing tables_priv table
          Preparing columns_priv table
          Installing all prepared tables
          021010 17:15:34 /usr/libexec/mysqld: Shutdown Complete

          To start mysqld at boot time you have to copy support-files/mysql.server
          to the right place for your system

          PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
          This is done with:
          /usr/bin/mysqladmin -u root -p password 'new-password'
          /usr/bin/mysqladmin -u root -h Linux -p password 'new-password'
          See the manual for more instructions.

          You can start the MySQL daemon with:
          cd /usr ; /usr/bin/safe_mysqld &

          You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
          cd sql-bench ; run-all-tests

          Please report any problems with the /usr/bin/mysqlbug script!

          The latest information about MySQL is available on the web at
          http://www.mysql.com
          Support MySQL by buying support/licenses at https://order.mysql.com

      • Podemos probar MySQL ejecutando un test.
      • Para ello vamos a /usr/bin y ejecutamos mysqltest
        • Podemos obtener un error como este:

          • mysqltest: Failed in mysql_real_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

        • Posible solución 1:
          • ERROR 2002: ..cannot connect to local MySQL server' I solved it by changing permissions on mysql.sock(chmod 777 mysql.sock),then i got an error about host.frm. I found that host.frm and again changed permissions,made it available for anyone. Then... I was done, I got an mysql is alive

        • Posible solución 2:
          • For all of you who get this error 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'. Check that mysqld is running and that the socket: '/tmp/mysql.sock exists'..... I would try this, it worked for me, run these commands updatedb; locate mysql.sock it should show you something like /var/lib/mysql/mysql.sock now type MYSQL_UNIX_PORT=/var/lib/mysql/mysql.sock this tells mysql to use the mysql.sock in the /var/lib/mysql directory by default its checking for /tmp/mysqld.sock now type export MYSQL_UNIX_PORT then go back to your mysql directory and do bin/safe_mysqld & and finally you should be able to bin/mysqladmin ping showing you mysqld is alive note: when you reboot your machine this setting will be lost, to fix this do this edit /etc/profile and add the line MYSQL_UNIX_PORT=/var/lib/mysql/mysql.sock somewhere near the top then look down to the end of this file and you'll probably see a line that starts something like export PATH USER blah blah change this so it it has MYSQL_UNIX_PORT on the end, so it may look like this now export PATH USER MYSQL_UNIX_PORT now when you restart and load mysql is should work fine hope this helps

      • Escribiendo service mysqld start arrancamos el servicio.
      • Si arranca correctamente indicara [OK].
      • A continuación deberiamos cambiar la contraseña del administrador o root. Para ello usamos el siguiente comando:
        • /usr/bin/mysqladmin -u root -p password 'new-password'
    • Instalar MySQL en el DSN del sistema (MyODBC)

      Cómo instalar MySQL en el DSN de sistema

      • Podemos instalar MySQL como origen de datos de sistema ODBC para, por ejemplo, conectar a las bases de datos de manera remota.
      • Para ello necesitamos añadir esa base de datos al DSN del sistema.


      • Los pasos para hacer esto son:
        • Instalar controladores ODBC para MySQL: MyODBC.
        • Añadir la base de datos que queramos a la lista de DSN de sistema

      • El ejemplo siguiente es aplicable a plataformas Microsoft Windows 2000.

      Instalar controladores ODBC para MySQL: MyODBC

      • Descargamos los controladores MyODBC de Internet.
      • Descomprimimos el archivo y ejecutamos SETUP.EXE
      • Seguimos las instrucciones en pantalla hasta concluir la instalación.

      Añadir la base de datos MySQL al DSN de sistema

      • Vamos a Inicio\Configuración\Panel de control\Herramientas administrativas\Orígenes de datos (ODBC).
      • Se abre la ventana 'Administrador de orígenes de datos ODBC'.
      • Pulsamos la pestaña 'DNS de sistema'.
      • Pulsamos 'Agregar'.
      • Como controlador para el origen de los datos elegimos 'MySQL' y pulsamos finalizar.
      • Se abre la ventana 'TDX MySQL driver default configuration'.
        • En 'Windows DSN name' ponemos el nombre que queremos dar a esa conexión. Ej: Musica2002.
        • En 'MySQL database name' ponemos el nombre de la base de datos MySQL que queremos añadir al DSN (la base de datos debe existir previamente). Ej: Musica2002.
        • En principio, los demás campos pueden dejarse en blanco.

      • Pulsamos 'OK'. La base de datos debe aparecer entonces en la lista de DSN de sistema.
  • Ejecución

    • Ejecutar MySQL en Linux

      Pasos a seguir

      • En primer lugar debemos arrancar el servicio MySQL si es que no está funcionando.
      • Escribiendo mysql entramos en la consola de MySQL.
      • Escribiendo status nos informa del estado de MySQL.
    • MySQLadmin

      Operaciones y comandos de MySQLadmin

      Operación Comando (linux) Comando (Windows)
      Crear base de datos mysqladmin -p create BASEDEDATOS
      Eliminar base de datos mysqladmin -p drop BASEDEDATOS
      - -
  • Operaciones

    • Operaciones básicas desde el promt

      Operaciones básicas desde el promt, no desde la consola MySQL

      Operación Comando (linux) Comando (Windows)
      Arrancar el servidor safe_mysqld & winmysqladmin, mysqld-nt o mysqld
      Parar el servidor mysqladmin -p shutdown mysqladmin shutdown
      Reiniciar el servidor mysqld
      Ejecutar archivo script mysql -p </RutaAlArchivo/Archivo.sql
    • Desde la consola MySQL

      • Operaciones básicas

        Operación Comando
        Entrar a la consola de MySQL mysql
        Entrar a la consola de MySQL como el usuario usuario mysql -u usuario -p
        Salir de la consola de MySQL \q
        Ayuda de la consola (hay que estar en ella) \help o \h
      • Operaciones con Bases de datos

        Operación Comando
        Crear base de datos create database basededatos ;
        Eliminar base de datos drop database basededatos ;
        Mostrar las bases de datos disponibles show databases ;
        Trabajar sobre con una base de datos use basededatos ;
      • Operaciones con Tablas

        Operación Comando
        Mostrar tablas de la BD show tables from basededatos ;
        Muestra los campos de la tabla show columns from tabla ; o describe tabla ;
        Crear tabla create table nombretabla (columna1 tipodato, columna2 tipodato...) ;
        Crear tabla temporal create temporary table nombretabla (columna1 tipodato);
        Crear tabla verificando que no existe create table inf not exists nombretabla (columna1 tipodato, columna2 tipodato...) ;
        Eliminar tabla drop table nombretabla ;
        Editar tabla alter table nombretabla operacion ;
        Cambiar nombre a tabla alter table nombretablaviejo rename nombretablanuevo;
        Bloquea tabla lock nombretabla1, nombretabla2... ;
        Desbloquea tabla unlock nombretabla1 READ|WRITE, nombretabla2 READ|WRITE... ;
        - -
      • Operaciones con Columnas

        Operación Comando
        Añadir columna alter table nombretabla ADD nombrecolumna tipodato;
        Cambia el tipo de dato de la columna alter table nombretabla change nombrecolumna nombrecolumna nuevotipodato;
        Cambiar el nombre de la columna alter table nombretabla change nombrecolumnaviejo nombrecolumnanuevo tipodato;
        Eliminar columna alter table nombretabla drop nombrecolumna;
        Añadir índice a columna create index nombreíndice on nombretabla (nombrecolumna1,...);
        ó alter table nombretabla add index (nombrecolumna);
        Añadir campo clave (key) create primary key on nombretabla (nombrecolumna1,...); ó
        alter table nombretabla add primary key (nombrecolumna);
        Eliminar campo clave (key) alter table nombretabla drop primary key;
      • Operaciones con Datos

        Operación Comando
        Insertar nuevo dato en tabla insert into nombretabla values (valorcampo1,'valorcampo2',valorcampo3...);
        Importar archivo de datos a tabla load data infile 'archivo.txt' into table nombretabla;
        Seleccionar datos de una tabla select nombrecampo1, nombrecampo2... from nombretabla where condición
        Borrar todos los datos de una tabla (conserva la tabla con sus campos) delete from nombretabla;
        Actualizar un dato del campo1 update nombretabla SET nombrecampo1='nuevovalorcampo' WHERE nombrecampo2='valorcampo2';
        Contar registros que cumplen un criterio select count(campos) from nombretabla;
      • Operaciones con Índices

        Operación Comando
        Crear índice create index nombreindice on nombretabla(listanombrescolumnas);
        Elimina índice drop index indexname on tablename; o alter table nombretabla drop index nombreindice;
        Mostrar claves show keys from nombretabla ; o show index from nombretabla;
  • Tipos de Datos

    • Introducción

      Los tipos de datos

      • Indican el tipo de datos que se guardarán en una determinada columna.
      • Tipos suportados por MySQL:
        • Numéricos: enteros, hexadecimales, científicos, etc.
        • Cadenas de texto o 'strings': Caracteres alfanuméricos entre comillas.
        • Misceláneos: tiempo, hora, etc.

      Recomendaciones

      • *MySQL en realidad guarda los elementos como números (aunque nosotros veremos la cadena de texto que hemos introducido), para aumentar la eficiencia de la base de datos.
      • Al ser almacenados como números también podemos tratarlos como números.
        • Ej: SELECT * FROM Personas WHERE Sexo='Hombre'
          sería lo mismo que SELECT * FROM Personas WHERE Sexo=1

      • Como puede observarse MySQL no posee el tipo de datos booleano (Yes/No, Sí/No).
      • Para sustituirlo podemos usar, por ejemplo, el tipo INT, usando únicamente los valores 0 y -1. Este es importante, por ejemplo, a la hora de importar datos desde Microsoft Access.
      • A los estos tipos se les pueden aplicar modificadores de columna.
    • Datos numéricos

        A los tipos numéricos se les pueden aplicar modificadores de columna: UNSIGNED, AUTO_INCREMENT y ZEROFILL.

      Tipo Bytes de memoria Rango de valores 'Unsigned' (solo valores +)
      TINYINT 1 -128 a 127 0-255
      SMALLINT 2 -32768 a 32767 0-65535
      MEDIUMINT 3 -8388608 a 8388607 0-16777215
      INT 4 -2147483648 a 2147483647 0-4294967295
      BIGINT 8 -9223372036854775808 a 9223372036854775807 0-18446744073709550615
      FLOAT(M,D) 4 Varía según el valor
      DOUBLE(M,D) 8 Varía según el valor
      DECIMAL(M,D) M + 2 bytes Varía según el valor
    • Cadenas de texto

        Sus valores siempre van entre 'comillas'.

        A los estos tipos se les pueden aplicar modificadores de columna.

      Tipo Tamaño max Espacio de almacenamiento Descripción
      CHAR(tamaño) 255 bytes tamaño bytes Tamaño fijo: siempre se ocupan los X caracteres.
      VARCHAR(tamaño) 255 bytes tamaño + 1 bytes Tamaño variable: se ocupan los caracteres introducidos + 1
      TINYTEXT 255 bytes tamaño + 1 bytes
      TINYBLOB 255 bytes tamaño + 2 bytes
      TEXT 65535 bytes tamaño + 2 bytes Para guardar imágenes, documentos, mucho texto...
      BLOB 65535 bytes tamaño + 2 bytes Para guardar imágenes, documentos, mucho texto...
      MEDIUMTEXT 1.6 MB. tamaño + 3 bytes
      MEDIUMBLOB 1.6 MB. tamaño + 3 bytes
      LONGTEXT 4.2 GB. tamaño + 4 bytes
      LONGBLOB 4.2 GB. tamaño + 4 bytes
    • Misceláneos

      Tipo Descripción Comentario Ejemplo
      DATE Fecha (formato aaaa-mm-dd) Debe especificarse entre comillas 'valor' '2000-01-01'
      ENUM Lista enumerada: solo puede contener los valores indicados. El campo solo puede contener uno de ellos. Permite 65535 elementos* CREATE TABLE Personas (Sexo ENUM('Hombre','Mujer'),Raza ENUM('Negra,'Blanca'));
      SET Lista enumerada: solo puede contener los valores indicados. El campo solo puede contener más de un valor. Permite 64 elementos* CREATE Table Medio(Formato SET('Web','TV','Radio'));
  • Metodología

    • Tablas

      • Cómo introducir datos en una tabla de manera rápida

        Pasos a seguir

        • Para introducir datos uno a uno en tablas usamos el comando:
          • insert into nombretabla values (valorcampo1,'valorcampo2',...);

        • Poniendo entre 'comillas' los campos de tipo string y fecha. Ej:
          • INSERT INTO mascota VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

        • Sin embargo, la manera más rápida de introducir datos en una tabla ya existente es hacerlo mediante la importación de un archivo de texto en el cual hemos introducido los registros por líneas.
          • Ej: base de datos de un zoológico.

            Puedes crear un fichero de texto 'animal.txt' conteniendo un registro por línea, con valores separados por tabuladores, y dados en el orden en el que las columnas fueron listadas en la sentencia CREATE TABLE.

            nombre propietarioespeciesexonacimientomuerte
            FluffyHaroldgatof1993-02-04
            ClawsGwengatom1994-03-17
            BuffyHaroldperrof1989-05-13
            FangBennyperrom1990-08-27
            BowserDianeperrom1998-08-311995-07-29
            ChirpyGwenpájarof1998-09-11
            Whistler Gwenpájaro1997-12-09
            SlimBennyserpientem1996-04-29


        • Para valores perdidos (como sexos desconocidos, o fechas de muerte de animales que aún están vivos), puedes usar valores NULL.
        • Para representar estos en tu fichero de texto, usa \N.
          • Por ejemplo, el registro para el pájaro Whistler sería algo como esto (donde el espacio en blanco entre valores es un simple caracter de tabulación):

            Whistler Gwen pájaro \N1997-12-09\N


        • Para cargar el fichero de texto 'mascota.txt' en la tabla mascotas, usa este comando:
          • LOAD DATA INFILE 'animal.txt' INTO TABLE mascotas;


        • Si solo ponemos el nombre del archivo a importar, MySQL buscará el archivo en la carpeta en la que se encuentra esa base de datos MySQL. Ej: MySQL\Data\Mascotas.
        • También podemos dar la ruta al archivo que importaremos de manera absoluta o mediante el uso de una dirección relativa.
        • Aquí hay algunos ejemplos de direcciones relativas al archivo:
          • Estructura carpetas: C:\MySQL\Data\Mascotas

            LOAD DATA INFILE 'animal.txt' INTO TABLE mascotas; (Busca el archivo en la carpeta Mascotas)

            LOAD DATA INFILE './animal.txt' INTO TABLE mascotas; (Busca el archivo en la carpeta DATA)

            LOAD DATA INFILE './../animal.txt' INTO TABLE mascotas; (Busca el archivo en la carpeta MySQL)

            LOAD DATA INFILE './../../animal.txt' INTO TABLE mascotas; (Busca el archivo en la carpeta C:)


        • Puedes especificar el valor de separación de columna y el marcador de final de línea explícitamente en la sentencia LOAD DATA si lo deseas, pero por defecto equivalen a TAB y LF (intro).
        • Estos valores por defecto son suficientes para que la sentencia que lee el fichero 'mascota.txt' funcione correctamente.
      • Cómo modificar una columna

        Modificador Descripción Se aplica a
        UNSIGNED No permite números negativos Numéricos
        AUTO_INCREMENT Al introducir un nuevo registro, en esta columna se introduce el valor que tenia el registro anterior + 1 Tipos INT
        ZEROFILL Se ponen ceros a la izquierda del valor hasta completar el campo Ej: Introducimos 23 en un campo INT(5) y en el campo se pone 00023 Numéricos
        BINARY Se tratan como cadenas binarias, es decir, que es 'case sensitive' (distingue mayúsculas de minúsculas). CHAR, VAR
        DEFAULT Permite definir el valor por defecto de una columna si este no existe.Ej:
        CREATE TABLE Destinos(Ciudad char(2) NOT NULL DEFAULT 'NY'); Los registros vacios o con valor NULL en el campo Ciudad tendrán el valor por defecto NY (Nueva York).
        Todos excepto BLOB y TEXT
        NOT NULL No se permiten registros vacíos en esa columna. Todos
        NULL Se permiten registros vacíos en esa columna. Todos
        PRIMARY KEY Índice de valores únicos. Dichos campos no pueden estar vacíos. Cada tabla debería tener uno. Todos
        UNIQUE Los valores de esa tabla no pueden repetirse. Todo
      • Cómo estructurar una tabla

        Estructura de las tablas

        Field Type Null Key Default Extra
        ID INT(11) PRI NULL Auto increment
        Nombre VARCHAR(20) YES NULL
        Apellido VARCHAR(20) YES NULL


        Contenido de la tabla

        ID Nombre Apellido
        1 Juan Martín
        2 Pedro Santos
        3 María Plata


        Tablas temporales

        • Tablas existentes únicamente durante la sesión actual.
        • Son útiles para comparar resultados o guardar resultados de querys para su uso posterior.
        • Ej: CREATE TEMPORARY TABLE SELECT * FROM Customers ;

      • Cómo editar una tabla

        Editar una tabla

        • Para poder editar una tabla es necesario que esta ya exista.
        • Editamos la tabla usando el comando: alter table nombretabla operacion ;
        • En operacion podemos incluir:

        Operaciones disponibles Descripción Ejemplo
        ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
        ADD [COLUMN] (create_definition, create_definition,...)
        ADD INDEX [index_name] (index_col_name,...)
        ADD PRIMARY KEY (index_col_name,...)
        ADD UNIQUE [index_name] (index_col_name,...)
        ADD FULLTEXT [index_name] (index_col_name,...)
        ADD [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...) [reference_definition]
        ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
        CHANGE [COLUMN] old_col_name create_definition [FIRST | AFTER column_name]
        MODIFY [COLUMN] create_definition [FIRST | AFTER column_name]
        DROP PRIMARY KEY
        DROP INDEX index_name
        DISABLE KEYS
        ENABLE KEYS
        ORDER BY col
        table_options
      • Cómo usar los índices (index)

        Descripción

          (Ha de revisarse esta información)

        • El índice es un fichero estructurado en forma de árbol que facilita el acceso a datos.
        • Actúa de manera similar a las pestañas con las letras del abecedario en nuestra agenda de teléfono. Es decir nos permite hacer algo parecido a secciones con los datos.
        • Permite aumentar la velocidad de los querys con SELECT, si bien puede disminuir la velocidad con la que se realizan los INSERT, UPDATE y DELETE.
        • Los índices (index) no son campos llave (key). Los campos llave ayudan a definir la estructura de la base de datos, el índice afecta al rendimiento de la base de datos.
        • Por defecto, MySQL hace los campos llave también como índices, si bien esto no es necesario.
        • Pueden definirse hasta 16 índices por tabla.
        • Los índices suelen usarse sobre todo en los campos que van a usarse detras del WHERE a la hora de hacer un query con SQL. Es decir, que suelen usarse en los campos que se usarán como filtros.
        • Los índices son más eficientes si se usan en campos cuyos valores son únicos.

        ¿Como se crea un índice?

        • Usando el comando:
        • CREATE INDEX nombreindice ON nombretabla (listanombrescolumnas);

        ¿Como se crea un índice en una columna?

        • Usando el comando:
        • ALTER TABLE nombretabla ADD INDEX nombrecolumna);

    • Bases de Datos

      • Cómo importar datos desde Access

        Importar datos desde Access

        • Para importar datos desde una base de datos Microsoft Access usaremos MySQL 3.23.49 y el front-end gratuito MySQL-Front 2.2 en una plataforma Windows.
        • Los pasos a seguir son:

          • Respecto a la base de datos Access:
            • Asegurarse que la base de datos Access se creó siguiendo las convenciones de nombrado, pues de lo contrario pueden encontrarse errores en la importación.
            • Si no se respetaron dichas convenciones debería corregirse la base de datos. Ej: Si los nombres de tablas contienen espacios no se importarán.
            • Si vamos a crear bases de datos Access para usar sus datos posteriormente con MySQL conviene usar campos de tipo numérico en lugar de campos de tipo booleano (Sí/No).
            • Los Sí se cambiarán por -1 y los No por 0, por lo que la base de datos funcionará perfectamente.
            • Debemos hacer esto debido a que MySQL no soporta tipos de datos booleanos (Sí/No, Yes/No...) y al importar dichos campos Access de tipo booleano se produciría un error.
            • Recuerda que en MySQL el formato para el tipo de dato DATE es aaaa-mm-dd. El formato de fecha usado en Access es distinto.
            • Edita el formato en Access para corregirlo o bien pon ese campo como tipo VARCHAR al importarlo a MySQL.
            • Si vas a importar fechas que solo presentan el valor del año usa el tipo YEAR de MySQL, especificando el número de cifras del dato (4 para '1989' o 2 para '89').

          • Respecto a MySQL:
            • El demonio (servicio) de MySQL debe estar corriendo.
            • MySQL-Front debe estar ejecutándose.
      • Cómo importar datos desde ODBC

        Importar datos a traves de ODBC

        • Creamos una base de datos vacía en MySQL, donde importaremos los datos de Access.
        • Para ello en MySQL-Front entramos en el menú 'Tools' y pulsamos 'Create Database'. Introducimos el nombre y pulsamos OK.
        • Vamos al menú Im-/Export de MySQL-Front y pulsamos sobre 'ODBC import'.


        • En la ventana ODBC import seleccionamos:
          • 'Source: Ms Access file' si queremos importar directamente de un archivo Access. Pulsamos en el icono de la carpeta para navegar hasta el archivo Access que deseamos importar.
          • 'Data Source' si queremos obtener los datos de una base de datos externa. Desplegamos la lista para elegir la fuente de los datos.

        • Se abre la ventana 'Database Login', donde se nos pide el usuario y la contraseña para acceder a la base de datos Access.
        • En el caso de que no hayamos restringido el acceso a la base de datos Access dejamos ambos campos en blanco y pulsamos OK.
        • Se nos muestran las tablas y consultas disponibles para importar, así como los campos que contiene cada una, con su tipo y otra información.
        • Algunos consejos antes de importar los datos:

          • Los campos a los que MySQL asigna el tipo de dato SET (normalmente hace esto con los campos Access de tipo booleano) conviene cambiarlos a INT, pues sino se producirán errores en la importación.
          • Los campos que en Access eran de tipo MEMO conviene que en MySQL sean de tipo LONGTEXT. Por defecto MySQL suele asignar a esos campos el tipo VARCHAR, lo cual suele dar problemas en la importación.

        • Seleccionamos las tablas que deseamos importar y pulsamos 'Import!'.
        • Una vez se haya terminado la importación pulsamos 'Close'.
      • Cómo automatizar tareas usando scripts

        Automatizar tareas mediante scripts

        • Realiza automáticamente por nosotros tareas repetitivas.
        • También podemos usar los scripts como plantillas modificables para editar tablas, etc.
        • Por ejemplo: Crear una base de datos con una tabla. En dicha tabla introducimos una fila de datos:


            CREATE DATABASE Prueba ;

            USE DATABASE Prueba ;

            CREATE TABLE Clientes
            (Cliente_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
            Cilente_Nombre VARCHAR(30),
            Cliente_Apellido VARCHAR(30)
            Cliente_Fecha DATETIME) ; INSERT INTO Clientes
            (Cliente_ID, Cliente_Nombre, Cliente_Apellido, Cliente_Fecha)
            VALUES
            (NULL, 'Pedro','Rubio','2000-01-01') ;

        Cómo crear el script

        • Puede crearse con cualquier editor de texto.
        • En el documento introducimos los comandos que introduciriamos normalmente 'a mano' en la consola de MySQL.
        • Guardamos el documento con la extensión .sql (es posible que pueda guardarse también con otra extensión, pero se recomienda esta porque es muy descriptiva). Ej: Ejemplo.sql

        Cómo usar el script

        • El demonio (servicio) de MySQL debe estar en marcha.
        • Debemos estar en el directorio de MySQL.
        • Para ejecutar el contenido del script debemos escribir:
          mysql < /RutaAlArchivo/Ejemplo.sql ó mysql -p < /RutaAlArchivo/Ejemplo.sql
      • Cómo establecer coincidencias de patrones

        Coincidencia de patrones

        Caracter Descripción Ejemplo Resultado
        '%' Cualquier número variable de caracteres SELECT * FROM clientes WHERE nombre LIKE 'Pe%'; Pedro, Pepe, Penélope...
        '_' Cualquier carácter único SELECT * FROM clientes WHERE nombre LIKE 'Pep_n'; Pepín, Pepón
        '.' Cualquier carácter único SELECT * FROM clientes WHERE nombre LIKE 'To..'; Tony, Toto
        '[abG]' Cadenas que contienen los carateres especificados entre corchetes: a, b, y G (Sin incluir A, B y g) (Se debe usar REGEXP en el SQL) SELECT * FROM clientes WHERE nombre REGEXP '[abG]'; Juan, Gilda, Toby
        '[a-d]' Cadenas que contienen el rango de caracteres contenidos en los cochetes: a, b, c y d (Sin incluir A, B, C y D) (Se debe usar REGEXP en el SQL) SELECT * FROM clientes WHERE nombre REGEXP '[a-d]'; Juan, Toby, Nacho, Fido
        '*' Cualquier conjunto de caracteres SELECT * FROM clientes (Lista completa de nombres)
        '^B' Palabras que comiencen con B (Se debe usar REGEXP en el SQL) SELECT * FROM clientes WHERE nombre REGEXP '^[bB]';
        Bob, Bilma, bulba, beatriz
        'n$' Palabras que terminen con n (Se debe usar REGEXP en el SQL) SELECT * FROM clientes WHERE nombre REGEXP 'n$';
        Ramón, Simón, John
    • Seguridad e Importación

      • Cómo hacer copias de seguridad en MySQL

        Copias de seguridad en MySQL

        • Si queremos hacer una copia de seguridad de una base de datos MySQL (tanto datos como estructura) basta utilizar el comando (desde el promt):
        • mysqldump nombreBD > nombreBD.txt

        • Para restaurar el contenido de esa copia de seguridad a MySQL solo debemos escribir:
        • mysql < nombreBD.txt

      • Cómo asegurar MySQL

        Asegurar MySQL

          Usuarios

        • Tras la instalación de MySQL estos son los usuarios creados y sus privilegios sobre la base de datos (vista con PHPMyAdmin):
        Acción servidor Usuario Contraseña Privilegios
        Editar Borrar Permisos % cualquiera No Sin Privilegios
        Editar Borrar Permisos % root No Select Insert Update Delete Create Drop Reload Shutdown Process File Grant References Index Alter
        Editar Borrar Permisos localhost cualquiera No Select Insert Update Delete Create Drop Reload Shutdown Process File Grant References Index Alter
        Editar Borrar Permisos localhost administrador Si Select Insert Update Delete Create Drop Reload Shutdown Process File Grant References Index Alter
        Editar Borrar Permisos localhost root No Select Insert Update Delete Create Drop Reload Shutdown Process File Grant References Index Alter
        Editar Borrar Permisos localhost usuario Si Select Insert Update Delete Create Drop Reload Shutdown Process File Grant References Index Alter

          Debemos borrar los usuarios más críticos para la seguridad de la base de datos.

      • Cómo exportar una base de datos MySQL a XML

        Exportar una base de datos MySQL a XML

        • A partir de la versión de MySQL 3.23.48 se pueden exportar bases de datos, tablas, consultas, etc. de MySQL a un archivo XML mediante el uso de mysqldump.
        • A partir de la versión MySQL 4 podemos usar mysql para exportar XML.


        • El archivo generado tendrá una estructura XML de tipo 'bien formada' como esta:
        •   <nombretabla1>
              <nombrecampo1>dato1</nombrecampo1>
              <nombrecampo2>dato1</nombrecampo2>
              <nombrecampo3>dato1</nombrecampo3>
              <nombrecampo1>dato2</nombrecampo1>
              <nombrecampo2>dato2</nombrecampo2>
              <nombrecampo3>dato2</nombrecampo3>
            </nombretabla1>
          
            <nombretabla2>
           ...
            </nombretabla2>
           ...

        • Para ello usamos la utilidad mysqldump que se encuentra en la carpeta /bin como se describe a continuación:
          • Para exportar la base de datos en su totalidad:
            mysqldump --xml basedatos > nombrearchivo.xml


          • Para exportar algunas tablas de la base de datos:
            mysqldump --xml basedatos nombretabla1 nombretabla2...>nombrearchivo.xml

        • Si no usamos la parte de la expresión >nombrearchivo.xml simplemente se mostrará en pantalla el contenido que tendría el archivo XML sin que este se guarde en ningún archivo.
        • Si no se especifica la ruta donde se creará el archivo este se creará en la carpeta /bin.
        • *NOTA: En la versión 3.23.49 de Windows parece que hay un bug en mysqldump que hace que al exportar a XML, los tags de cierre de campos de tipo numérico son los únicos que se crean convenientemente. Los tag de cierre de campos de tipo texto no se cierran correctamente. Por ejemplo:

          
               <Titulo>Mistaken identity<Titulo>
               <Ano>1996</Ano>
               <Original>-1</Original>
               <Presentacion>Caja<Presentacion>
               <Prestado>0</Prestado>
               <Persona><Persona>
               <CDAudio>-1</CDAudio>
               <Frecuencia>0</Frecuencia>
               <Bits>0</Bits>
               <Ident>1</Ident>
              

          Sin embargo podemos exportar fácilmente y de manera correcta los datos a XML si tenemos instalado el GUI (phpmyadmin/exp_xml.htm)PHPMyAdmin.

      • ¿Se puede importar a MySQL desde un archivo XML?

        Importar a MySQL desde un archivo XML

  • Interfaces de usuario

    • MySQL-Front

      • MySQL-Front: GUI para MySQL

        Descripción

        • MySQL-Front es una interfaz de usuario gráfica (GUI) para MySQL en su versión Windows.
        • Esto nos permite trabajar sobre MySQL sin tener que recurrir al uso de los comandos de la consola.
        • MySQL-Front es gratuito y bastante completo.

        Descarga

        Instalación

        • Una vez descargado ejecutamos el archivo .EXE.
        • Elegimos la carpeta donde queremos instalar MySQL-Front.

        Configuración

        • Al ejecutar por primera vez MySQL-Front se nos abre la ventana 'Connection to MySQL-host', donde especificamos el host MySQL al que nos conectaremos.
        • Pulsamos en 'New'.
        • Damos un nombre a la conexión.
        • Si el MySQL al que conectaremos va a estar en nuestro ordenador en 'host' dejamos puesto 'localhost'. Los demás campos no es necesarios cambiarlos (a no ser que sea necesario otro usuario y contraseña, etc.).
        • Para una mayor comodidad para moverse por los registros desactivar la casilla 'Limit', pues por defecto siempre se muestran los registros de 50 en 50.
        • Una vez dentro de MySQL-Front, ir a 'Tools/Preferences' y activar en la pestaña 'Miscelaneous' la casilla 'Show native field-contents for text and flow text' para que los campos de tipo texto y blob muestren su contenido verdadero en lugar de el valor 'MEMO'.
    • PHPMyAdmin

      • Instalación de PHPMyAdmin

        PHPMyAdmin Versión 2.3.0 rc1

        • Descomprimimos el archivo phpMyAdmin-2.3.0-rc1-php.zip en el directorio raíz del servidor web (en este caso Apache).
        • En dicha carpeta editamos el archivo config.inc.php (se visualizará mal si usamos el bloc de notas. Usar mejor el editor de msdos).
        • Añadimos la siguiente línea justo antes del ?> que cierra el archivo config.inc.php:
          $cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin/';
      • Archivo config.inc.php (texto)

        config.inc.php

          <?php
          /* $Id: config.inc.php,v 1.110 2002/06/19 13:11:38 rabus Exp $ */
          
          
          /**
           * phpMyAdmin Configuration File
           *
           * All directives are explained in Documentation.html
           */
          
          /**
           * Sets the php error reporting - Please do not change this line!
           */
          $old_error_rep = error_reporting(E_ALL);
          
          
          /**
           * Your phpMyAdmin url
           *
           * Complete the variable below with the full url ie
           *    http://www.your_web.net/path_to_your_phpMyAdmin_directory/
           *
           * It must contain characters that are valid for a URL, and the path is
           * case sensitive on some Web servers, for example Unix-based servers.
           */
          $cfg['PmaAbsoluteUri'] = ';
          
          
          /**
           * Server(s) configuration
           */
          $i = 0;
          // The $cfg['Servers'] array starts with $cfg['Servers'][1].  Do not use $cfg['Servers'][0].
          // You can disable a server config entry by setting host to '.
          $i++;
          $cfg['Servers'][$i]['host']          = 'localhost'; // MySQL hostname
          $cfg['Servers'][$i]['port']          = ';          // MySQL port - leave blank for default port
          $cfg['Servers'][$i]['socket']        = ';          // Path to the socket - leave blank for default socket
          $cfg['Servers'][$i]['connect_type']  = 'tcp';       // How to connect to MySQL server ('tcp' or 'socket')
          $cfg['Servers'][$i]['controluser']   = ';          // MySQL control user settings
                                                              // (this user must have read-only
          $cfg['Servers'][$i]['controlpass']   = ';          // access to the 'mysql/user'
                                                              // and 'mysql/db' tables)
          $cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (config, http or cookie based)?
          $cfg['Servers'][$i]['user']          = 'root';      // MySQL user
          $cfg['Servers'][$i]['password']      = ';          // MySQL password (only needed
                                                              // with 'config' auth_type)
          $cfg['Servers'][$i]['only_db']       = ';          // If set to a db-name, only
                                                              // this db is displayed
                                                              // at left frame
                                                              // It may also be an array
                                                              // of db-names
          $cfg['Servers'][$i]['verbose']       = ';          // Verbose name for this host - leave blank to show the hostname
          
          $cfg['Servers'][$i]['pmadb']         = ';          // Database used for Relation, Bookmark and PDF Features
                                                              // - leave blank for no support
          $cfg['Servers'][$i]['bookmarktable'] = ';          // Bookmark table - leave blank for no bookmark support
          $cfg['Servers'][$i]['relation']      = ';          // table to describe the relation between links (see doc)
                                                              //   - leave blank for no relation-links support
          $cfg['Servers'][$i]['table_info']    = ';          // table to describe the display fields
                                                              //   - leave blank for no display fields support
          $cfg['Servers'][$i]['table_coords']  = ';          // table to describe the tables position for the PDF
                                                              //   schema - leave blank for no PDF schema support
          $cfg['Servers'][$i]['column_comments']              // table to store columncomments
                                               = ';
                                                              // - leave blank if you don't want to use this
          $cfg['Servers'][$i]['pdf_pages']     = ';          // table to describe pages of relationpdf
          $cfg['Servers'][$i]['AllowDeny']['order']           // Host authentication order, leave blank to not use
                                               = ';
          $cfg['Servers'][$i]['AllowDeny']['rules']           // Host authentication rules, leave blank for defaults
                                               = array();
          
          
          $i++;
          $cfg['Servers'][$i]['host']            = ';
          $cfg['Servers'][$i]['port']            = ';
          $cfg['Servers'][$i]['socket']          = ';
          $cfg['Servers'][$i]['connect_type']    = 'tcp';
          $cfg['Servers'][$i]['controluser']     = ';
          $cfg['Servers'][$i]['controlpass']     = ';
          $cfg['Servers'][$i]['auth_type']       = 'config';
          $cfg['Servers'][$i]['user']            = 'root';
          $cfg['Servers'][$i]['password']        = ';
          $cfg['Servers'][$i]['only_db']         = ';
          $cfg['Servers'][$i]['verbose']         = ';
          $cfg['Servers'][$i]['pmadb']      = ';
          $cfg['Servers'][$i]['bookmarktable']   = ';
          $cfg['Servers'][$i]['relation']        = ';
          $cfg['Servers'][$i]['table_info']      = ';
          $cfg['Servers'][$i]['table_coords']    = ';
          $cfg['Servers'][$i]['column_comments'] =';
          $cfg['Servers'][$i]['pdf_pages']       = ';
          $cfg['Servers'][$i]['AllowDeny']['order']
                                                 = ';
          $cfg['Servers'][$i]['AllowDeny']['rules']
                                                 = array();
          
          $i++;
          $cfg['Servers'][$i]['host']            = ';
          $cfg['Servers'][$i]['port']            = ';
          $cfg['Servers'][$i]['socket']          = ';
          $cfg['Servers'][$i]['connect_type']    = 'tcp';
          $cfg['Servers'][$i]['controluser']     = ';
          $cfg['Servers'][$i]['controlpass']     = ';
          $cfg['Servers'][$i]['auth_type']       = 'config';
          $cfg['Servers'][$i]['user']            = 'root';
          $cfg['Servers'][$i]['password']        = ';
          $cfg['Servers'][$i]['only_db']         = ';
          $cfg['Servers'][$i]['verbose']         = ';
          $cfg['Servers'][$i]['pmadb']      = ';
          $cfg['Servers'][$i]['bookmarktable']   = ';
          $cfg['Servers'][$i]['relation']        = ';
          $cfg['Servers'][$i]['table_info']      = ';
          $cfg['Servers'][$i]['table_coords']    = ';
          $cfg['Servers'][$i]['column_comments'] =';
          $cfg['Servers'][$i]['pdf_pages']       = ';
          $cfg['Servers'][$i]['AllowDeny']['order']
                                                 = ';
          $cfg['Servers'][$i]['AllowDeny']['rules']
                                                 = array();
          
          // If you have more than one server configured, you can set $cfg['ServerDefault']
          // to any one of them to autoconnect to that server when phpMyAdmin is started,
          // or set it to 0 to be given a list of servers without logging in
          // If you have only one server configured, $cfg['ServerDefault'] *MUST* be
          // set to that server.
          $cfg['ServerDefault'] = 1;              // Default server (0 = no default server)
          $cfg['Server']        = ';
          unset($cfg['Servers'][0]);
          
          
          /**
           * Other core phpMyAdmin settings
           */
          $cfg['OBGzip']                = TRUE;   // use GZIP output buffering if possible
          $cfg['PersistentConnections'] = FALSE;  // use persistent connections to MySQL database
          $cfg['ExecTimeLimit']         = 300;    // maximum execution time in seconds (0 for no limit)
          $cfg['SkipLockedTables']      = FALSE;  // mark used tables, make possible to show
                                                  // locked tables (since MySQL 3.23.30)
          $cfg['ShowSQL']               = TRUE;   // show SQL queries as run
          $cfg['AllowUserDropDatabase'] = FALSE;  // show a 'Drop database' link to normal users
          $cfg['Confirm']               = TRUE;   // confirm 'DROP TABLE' & 'DROP DATABASE'
          $cfg['LoginCookieRecall']     = TRUE;   // recall previous login in cookie auth. mode or not
          $cfg['UseDbSearch']           = TRUE;   // whether to enable the 'database search' feature
                                                  // or not
          
          // Left frame setup
          $cfg['LeftFrameLight']        = TRUE;   // use a select-based menu and display only the
                                                  // current tables in the left frame.
          $cfg['ShowTooltip']           = TRUE;   // display table comment as tooltip in left frame
          
          // In the main frame, at startup...
          $cfg['ShowStats']             = TRUE;   // allow to display statistics and space usage in
                                                  // the pages about database details and table
                                                  // properties
          $cfg['ShowMysqlInfo']         = FALSE;  // whether to display the 'MySQL runtime
          $cfg['ShowMysqlVars']         = FALSE;  // information', 'MySQL system variables', 'PHP
          $cfg['ShowPhpInfo']           = FALSE;  // information' and 'change password' links for
          $cfg['ShowChgPassword']       = FALSE;  // simple users or not
          
          // In browse mode...
          $cfg['ShowBlob']              = FALSE;  // display blob field contents
          $cfg['NavigationBarIconic']   = TRUE;   // do not display text inside navigation bar buttons
          $cfg['ShowAll']               = FALSE;  // allows to display all the rows
          $cfg['MaxRows']               = 30;     // maximum number of rows to display
          $cfg['Order']                 = 'ASC';  // default for 'ORDER BY' clause (valid
                                                  // values are 'ASC', 'DESC' or 'SMART' -ie
                                                  // descending order for fields of type
                                                  // TIME, DATE, DATETIME & TIMESTAMP,
                                                  // ascending order else-)
          
          // In edit mode...
          $cfg['ProtectBinary']         = 'blob'; // disallow editing of binary fields
                                                  // valid values are:
                                                  //   FALSE  allow editing
                                                  //   'blob' allow editing except for BLOB fields
                                                  //   'all'  disallow editing
          $cfg['ShowFunctionFields']    = TRUE;   // Display the function fields in edit/insert mode
          
          // For the export features...
          $cfg['ZipDump']               = TRUE;   // Allow the use of zip/gzip/bzip
          $cfg['GZipDump']              = TRUE;   // compression for
          $cfg['BZipDump']              = TRUE;   // dump files
          
          
          /**
           * Link to the official MySQL documentation
           * Be sure to include no trailing slash on the path
           */
          $cfg['ManualBaseShort'] = 'http://www.mysql.com/doc';
          
          
          /**
           * Language settings
           */
          // Default language to use, if not browser-defined or user-defined
          $cfg['DefaultLang'] = 'en';
          
          /**
           * Charset conversion settings
           */
          // Default charset to use for recoding of MySQL queries, does not take
          // any effect when charsets recoding is switched off by
          // $cfg['AllowAnywhereRecoding'] or in language file
          // (see $cfg['AvailableCharsets'] to possible choices, you can add your own)
          $cfg['DefaultCharset'] = 'iso-8859-1';
          
          // Allow charset recoding of MySQL queries, must be also enabled in language
          // file to make harder using other language files than unicode.
          $cfg['AllowAnywhereRecoding'] = TRUE;
          
          // Force: always use this language - must be defined in
          //        libraries/select_lang.lib.php
          // $cfg['Lang']     = 'en';
          // Loads language file
          require('./libraries/select_lang.lib.php');
          
          
          /**
           * Customization & design
           */
          $cfg['LeftWidth']           = 150;          // left frame width
          $cfg['LeftBgColor']         = '#D0DCE0';    // background color for the left frame
          $cfg['LeftPointerColor']    = '#CCFFCC';    // color of the pointer in left frame
                                                      // (blank for no pointer)
          $cfg['RightBgColor']        = '#F5F5F5';    // background color for the right frame
          $cfg['RightBgImage']        = ';           // path to a background image for the right frame
                                                      // (leave blank for no background image)
          $cfg['Border']              = 0;            // border width on tables
          $cfg['ThBgcolor']           = '#D3DCE3';    // table header row colour
          $cfg['BgcolorOne']          = '#CCCCCC';    // table data row colour
          $cfg['BgcolorTwo']          = '#DDDDDD';    // table data row colour, alternate
          $cfg['BrowsePointerColor']  = '#CCFFCC';    // color of the pointer in browse mode
                                                      // (blank for no pointer)
          $cfg['BrowseMarkerColor']   = '#FFCC99';    // color of the marker (visually marks row
                                                      // by clicking on it) in browse mode
                                                      // (blank for no marker)
          $cfg['TextareaCols']        = 40;           // textarea size (columns) in edit mode
                                                      // (this value will be emphasized (*2) for sql
                                                      // query textareas)
          $cfg['TextareaRows']        = 7;            // textarea size (rows) in edit mode
          $cfg['LimitChars']          = 50;           // max field data length in browse mode
          $cfg['ModifyDeleteAtLeft']  = TRUE;         // show edit/delete links on left side of browse
                                                      // (or at the top with vertical browse)
          $cfg['ModifyDeleteAtRight'] = FALSE;        // show edit/delete links on right side of browse
                                                      // (or at the bottom with vertical browse)
          $cfg['DefaultDisplay']      = 'horizontal'; // default display direction (horizontal|vertical)
          $cfg['RepeatCells']         = 100;          // repeat header names every X cells? (0 = deactivate)
          
          $cfg['UseSyntaxColoring']   = TRUE;         // use syntaxcoloring on output of SQL, might be a little slower
          $cfg['colorFunctions']      = '#FF0000';    // Colors used for Syntaxcoloring of SQL Statements
          $cfg['colorKeywords']       = '#990099';
          $cfg['colorStrings']        = '#008000';
          $cfg['colorColType']        = '#FF9900';
          $cfg['colorAdd']            = '#0000FF';
          
          /**
           * Available charsets for MySQL conversion. currently contains all which could
           * be found in lang/* files and few more.
           *
           * Charsets will be shown in same order as here listed, so if you frequently
           * use some of these move them to the top.
           */
          
          $cfg['AvailableCharsets'] = array(
              'iso-8859-1',
              'iso-8859-2',
              'iso-8859-3',
              'iso-8859-4',
              'iso-8859-5',
              'iso-8859-6',
              'iso-8859-7',
              'iso-8859-8',
              'iso-8859-9',
              'iso-8859-10',
              'iso-8859-11',
              'iso-8859-12',
              'iso-8859-13',
              'iso-8859-14',
              'iso-8859-15',
              'windows-1250',
              'windows-1251',
              'windows-1252',
              'windows-1257',
              'koi8-r',
              'big5',
              'gb2312',
              'utf-8',
              'utf-7',
              'x-user-defined',
              'euc-jp',
              'ks_c_5601-1987',
              'tis-620',
              'SHIFT_JIS'
          );
          
          /**
           * MySQL settings
           */
          // Column types;
          // varchar, tinyint, text and date are listed first, based on estimated popularity
          $cfg['ColumnTypes'] = array(
             'VARCHAR',
             'TINYINT',
             'TEXT',
             'DATE',
             'SMALLINT',
             'MEDIUMINT',
             'INT',
             'BIGINT',
             'FLOAT',
             'DOUBLE',
             'DECIMAL',
             'DATETIME',
             'TIMESTAMP',
             'TIME',
             'YEAR',
             'CHAR',
             'TINYBLOB',
             'TINYTEXT',
             'BLOB',
             'MEDIUMBLOB',
             'MEDIUMTEXT',
             'LONGBLOB',
             'LONGTEXT',
             'ENUM',
             'SET'
          );
          
          // Atributes
          $cfg['AttributeTypes'] = array(
             ',
             'BINARY',
             'UNSIGNED',
             'UNSIGNED ZEROFILL'
          );
          
          // Available functions
          if ($cfg['ShowFunctionFields']) {
              $cfg['Functions'] = array(
                 'ASCII',
                 'CHAR',
                 'SOUNDEX',
                 'LCASE',
                 'UCASE',
                 'NOW',
                 'PASSWORD',
                 'MD5',
                 'ENCRYPT',
                 'RAND',
                 'LAST_INSERT_ID',
                 'COUNT',
                 'AVG',
                 'SUM',
                 'CURDATE',
                 'CURTIME',
                 'FROM_DAYS',
                 'FROM_UNIXTIME',
                 'PERIOD_ADD',
                 'PERIOD_DIFF',
                 'TO_DAYS',
                 'UNIX_TIMESTAMP',
                 'USER',
                 'WEEKDAY',
                 'CONCAT'
              );
          } // end if
          
          if($cfg['UseSyntaxColoring']) {
              $cfg['keywords']=array(
                  'SELECT',
                  'INSERT',
                  'LEFT',
                  'INNER',
                  'UPDATE',
                  'REPLACE',
                  'EXPLAIN',
                  'FROM',
                  'WHERE',
                  'LIMIT',
                  'INTO',
                  'ALTER',
                  'ADD',
                  'DROP',
                  'GROUP',
                  'ORDER',
                  'CHANGE',
                  'CREATE',
                  'DELETE',
                  'VALUES'
              );
          } // end if
          if($cfg['UseSyntaxColoring']) {
              $cfg['additional']=array(
                  'TABLE',
                  'DEFAULT',
                  'NULL',
                  'NOT',
                  'INDEX',
                  'PRIMARY',
                  'KEY',
                  'UNIQUE',
                  'BINARY',
                  'UNSIGNED',
                  'ZEROFILL',
                  'AUTO_INCREMENT',
                  'AND',
                  'OR',
                  'DISTINCT',
                  'DISTINCTROW',
                  'BY',
                  'ON',
                  'JOIN',
                  'BETWEEN',
                  'IN',
                  'IF',
                  'ELSE',
                  'SET'
              );
          }
          /**
           * Unset magic_quotes_runtime - do not change!
           */
          set_magic_quotes_runtime(0);
          
          /**
           * Restore old error_reporting mode - do not change either!
           */
          error_reporting($old_error_rep);
          unset($old_error_rep);
          
          /**
           * File Revision - do not change either!
           */
          $cfg['FileRevision'] = '$Revision: 1.110 $';
          
          /* Línea que indica la ubicacion
           * de la carpeta de phpmyadmin
           * en el servidor web
          */
          
          $cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin/';
          
          ?>
          
      • Exportar datos a XML

        Pasos a seguir

        • Abrimos PHPMyAdmin.
        • Seleccionamos la base de datos a exportar en el menú de la izquierda.
        • En la zona superior de la página principal pulsamos sobre EXPORTAR.
        • Seleccionamos la tabla/tablas a exportar (manteniendo la tecla CTRL pulsada podemos elegir varias tablas).
        • Seleccionamos la casilla EXPORTAR A FORMATO XML.
        • Se nos muestra en la página principal el código de lo que será el archivo XML.
        • Seleccionamos todo el contenido de esa página (a mano, o bien usando la operación SELECCIONAR TODO presente en el menú contextual del botón derecho del ratón o en el menú EDITAR del navegador) y lo copiamos.
        • Creamos un archivo de texto en la ubicación que deseemos y pegamos el texto que habíamos copiado, eliminando o metiendo entre comentarios la primera línea, ya que sino se nos mostrará un error. Dicha línea viene a ser algo parecido a esto:
            Base De Datos nombrebasedatos ejecutandose en host
        • Renombramos el archivo, cambiando la extensión txt a xml, para que el archivo pueda ser procesado por el navegador.
  • Utilidades

    • Utilidades que acompañan a MySQL

      Utilidades de MySQL

      • Una serie de utilidades se incluyen con MySQL en la carpeta /bin.
      Nombre Descripción Ejemplo
      mysqlimport Permite importar datos a MySQL desde archivos de texto
      mysqldump Permite exportar datos de MySQL a un archivo de texto (incluye las sentencias SQL para facilitar la importación desde MySQL). Hace una replica completa de la base de datos. También permite hacer la Exportar datos a XML. mysqldump nombreBD > nombreBD.txt
  • Referencias


Página generada automáticamente desde la Base de Datos: BDatosVarios/ el 27/5/2008 19:49:22