Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Todo lo que usted necesita para Comenzar con MySQL

by
Difficulty:IntermediateLength:LongLanguages:

Spanish (Español) translation by Rodney Martinez (you can also view the original English article)

Desarrollar aplicaciones web usando un almacenamiento de datos estáticos donde los datos deben ser actualizados, almacenados y manipulados frecuentemente, puede ser una tarea complicada. Sin embargo, este artículo le presentará al mundo de las bases de datos relacional, lo que le permitirá maximizar su potencial de datos.

Introducción

Con esta constante expansión de aplicaciones web y de los sitios web dirigidos orientados a usuarios, se convierte en una necesidad tener una manera para guardar los datos en una
manera organizada, y que pueda ser recuperada y manipulada al mismo tiempo, algo que es imposible con el contenido estático.
¡Para lograr esto, es que debemos usar una base de datos!
Una base de datos en su forma más simple es la colección de datos en un manera organizada, ya sea si ésta es utilizada para un archivador o un base de datos computarizada.
Integrando una base de datos en su sitio web o una aplicación web que le permita guardar y extraer datos usando instrucciones específicas.
Para este artículo estaremos usando paquete de sistema gestión de bases de datos relacional llamado MySQL.
Este es un software de código abierto disponible bajo la licencia pública general GNU (por sus siglas en inglés) que por supuesto, lo hace de forma gratuita.
El sitio web MySQL, lo puede encontrar en la siguiente dirección  http://www.mysql.com/ y cualquier palabra que usted vea subrayada en este artículo indica una función MySQL, usted puede encontrar una documentación completa sobre estas funciones en el sitio web MySQL.

CONSEJO: Para buscar una función en el sitio web MySQL, simplemente agregue el nombre de la función a la URL del sitio MySQL, por ejemplo: http://www.mysql.com/SELECT este ejemplo buscaría la función SELECT.

He realizado una versión modificada del marcador de búsquedas de Google de Jesse Ruderman para buscar la documentación MySQL 5.1 Para usar esto sólo resalte la palabra subrayada y luego presione el marcador para que lo lleve a los resultados de búsqueda. De manera alternativa, ejecute el marcador con nada resaltado para mostrarle una ventana de la instrucción prompt pidiéndole que escriba lo que desea buscar.
Marcador: >MySQL SEARCH

Comprender una base de datos

Para guardar datos en una base de datos, en primer lugar, se debe crear una base de datos. Esta base de datos, entonces puede guardar muchas tablas (imagine un archivador guardando muchos archivos), cada tabla debe tener columnas definidas y estas columnas son creadas para guardar datos específicos (imagine un formulario de entrada de datos). Es posible limitar lo que puede ser insertado en éstas tales como datos numéricos o limites de caracteres por ejemplo.
Una vez que un dato a sido insertado en la base de datos, éste será almacenado en una tabla correspondiente, así que la tabla consistirá de filas y columnas, parecido a una hoja de cálculo, a como un dato es guardado y mostrado en una forma tabular. MySQL puede gestionar múltiples bases de datos que pueden contener múltiples tablas. Los niveles de acceso pueden ser otorgados para diferentes usuarios para proporcionar o anular privilegios específicos.
MySQL usa comandos/funciones en base a SQL (lenguaje de consulta estructurado). Esto nos permite usar palabras claves para especificar qué dato deseamos devolver. MySQL, entonces implementa algunas funciones adicionales para aumentar la funcionalidad disponible. Las palabras claves, por lo general, son fáciles de comprender y, a menudo, se refieren a una frase o palabra en Inglés (por ejemplo, SELECT, UPDATE, WHERE)

Empecemos

En este episodio abarcaremos:

  • Instalar MySQL en su máquina local (Windows)
  • Configurar la instalación de su MySQL local (Windows
  • Conectarse a su base de datos local
  • Conectarse a una base de datos remota
  • Escribir y formatear consultas
  • Formatear y registrar los resultados
  • Respaldar una base de datos
  • Restaurar una base de datos

Para usar MySQL, es necesario para nosotros tener instalado, ya sea, en su sistema local o en un servidor web remoto. Sin embargo, para conectarse, debemos, en primer lugar, tener una interfaz para usarla.

Hoy, estaremos usando los paquetes esenciales que están disponibles en el sitio web MySQL, en http://dev.mysql.com/downloads/.
Al momento de escribir este artículo, la versión estable es 5.1 y, estaré comentando cómo instalarla en el sistema operativo windows. Primero, localice el software que usted requerirá, yo estaré usando la versión para window de 64 bit, sin embargo, usted puede escoger otra dependiendo de la arquitectura de su sistema. Para este artículo he escogido usar los paquetes esenciales, debido a que incluyen todas las características necesarias. Si lo desea puede comparar las diferencias entre las versiones par windows en http://dev.mysql.com/doc/refman/5.1/en/windows-choosing-package.html.

Instalando MySQL en su máquina local.

Una vez que haya descargado la instalación ejecutable adecuada, haga clic sobre ella para ejecutarla y, a continuación, se le hará una solicitud con la ventana anterior. Como puede ver, yo estoy usando la versión 5.1.30. Pulse el botón Next (Siguiente) para avanzar a la siguiente pantalla.

He escogido quedarme con la instalación típica, sin embargo, siéntase libre de seleccionar que componentes quiere usted instalar. Usted necesitará el servidor MySQL y los archivos de datos, si usted está trabajando en su máquina local, sin embargo, si usted tiene una base de datos remota y disponible para usted y la desea usar, usted puede seleccionar no instalar estas funcionalidades. Usted necesitará la linea de comandos shell de MySQL, ya que ésta es la aplicación que estaremos usando. Nuevamente, si usted no está usando una base de datos local, entonces puede pasar por alto las utilidades de las lineas de Comandos y la configuración de la instancia del servidor.  Este artículo no abarcará usar C con MySQL, no obstante, si usted está desarrollando usando C, usted puede elegir instalar esto. Pulse el botón Next (Siguiente) para avanzar hacia la siguiente pantalla.

Luego, se le pedirá que confirme sus opciones, pulse Install si es que está contento de lo contrario presione el botón Back (regresar) para hacer cualquier cambio.

Su instalación empezará, en este punto puede ser interrumpida por un anti virus o por el Control de las Cuentas de Usuario de Windows Vista, indicará que un programa está pidiendo permiso para ser instalado o tener acceso a archivos específicos. Esto será registrado por MySQL AB, esta es la empresa que opera y mantiene MySQL, sobre lo cual puede leer más en la siguiente dirección http://www.mysql.com/about/.

Una vez que esté instalado, ahora asegúrese de que tiene marcado la opción Configure del MySQL Server (si está instalado) y después presione terminar. Felicitaciones, ha instalado con éxito los componentes de MySQL Server. A continuación, el Asistente para la Configuración de las Instancias del servidor MySQL deberán cargar. Sin embargo, sino se ejecutan, no se preocupe, porque usted puede tener acceso a ella a través de la carpeta programas de MySQL (si está instalado).

Configurando su instalación MySQL local.

Ahora vamos a configurar su instalación (si tiene instalado el servidor), pulse Next (Siguiente) para avanzar a la siguiente pantalla.

Ahora tiene la opción de usar una configuración estándar, sin embargo, yo estaré usando una configuración detallada que me permitirá personalizar diferentes aspectos de mi instalación.

He optado por esta como una máquina de desarrollo, no obstante, usted puede escoger la opción que prefiera. La máquina desarrollador le permitirá tener acceso completo al uso, sin embargo, evitará que demasiados recursos sean usados. Pulse el botón Next (Siguiente) para avanzar a la siguiente ventana.

Como esta instalación está destinada para propósitos de desarrollo y no para un proyecto en específico, yo escogí una base de datos múltifuncional que permite usar el motor de almacenamiento InnoDB y MyISAM. Usted puede leer acerca de los motores de almacenamiento en la siguiente dirección electrónica: http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html. Después, pulse el botón Next (Siguiente) para avanzar a la siguiente pantalla.

Ahora debe seleccionar dónde quiere guardar el archivo de datos InnoDB, dependiendo del espacio de almacenamiento que usted tenga disponible, usted puede cambiar esto si tiene disponible un dispositivo con una capacidad más grande o más rápida. Pulse el botón Next (Siguiente) para avanzar a la siguiente pantalla.

Ahora debe ajustar la cantidad de conexiones simultaneas que usted va a tener conectado a su base de datos en un momento dado. Elegir DSS le permite más de 100 conexiones, pero supone un promedio de 20 conexiones simultaneas.  La opción OLTP, permite más de 500 conexiones simultaneas. Sin embargo, para nuestra máquina de desarrollo a menudo sólo vamos a estar haciendo una sola conexión, por lo tanto, yo ajuste la configuración manual a 5. Luego, pulse el botón Next (Siguiente) para avanzar a la siguiente pantalla.

Ahora se le da la opción de personalizar las configuraciones TCP/IP. Yo tengo sin marcar el recuadro de la opción para desactivar esto. Desactivar esto evita conexiones remotas a la base de datos. Luego, puede ajustar el modo del servidor, yo deje está casilla marcada (pero usted puede leer más acerca de los modos servidores con más detalles en la siguiente dirección electrónica: http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html). Pulse el botón Next (Siguiente) para avanzar a la siguiente pantalla.

Ahora vamos a seleccionar entre las opciones de caracteres: set/encoding, cuál vamos a estar usando. Yo escogí UTF8, debido a que permite diferentes idiomas sean ingresados (lectores internacionales). Pulse el botón Next (Siguiente) para avanzar a la siguiente pantalla.

Ahora se le da la opción de decidir si usted quiere "correr" el servidor como un servicio, usted puede personalizar el nombre del servicio por medio de la ventana menú desplegable. Instalar MySQL como un servicio, hará que por defecto el servidor empezará automáticamente y se reiniciará incluso si llegará a fallar. Yo recomiendo usar la configuración anterior. Además, usted consigue la opción para incluir los archivos MySQL Bin en la ruta de Windows. Esto nos permite llamar directamente MySQL desde la linea de comandos y, también, recomiendo hacer esto. Pulse el botón Next (Siguiente) para avanzar a la siguiente pantalla.

Ahora se le ha proporcionado una clave para la cuenta root. Esta es la cuenta "master" que cuenta con todos los privilegios (el nombre de usuario de la cuenta será "root"), ¡y no recomiendo dejar esto en blanco! La opción que permite acceso desde las máquinas root está sin marcar por defecto, lo he conservado de esta forma debido a que había desactivado las configuraciones TCP/IP, pero esto demuestra un alto riesgo de seguridad potencial si los detalles caen en las manos equivocadas. Además, desactive la opción para permitir una cuenta anónima, ya que esta base de datos, tiene como destino el uso personal. Pulse el botón Next (Siguiente) para avanzar a la siguiente pantalla.

Ahora está lista la configuración de su instalación para ser aplicada, sólo presione ejecutar para empezar el proceso.
Luego deberá recibir un mensaje de configuración indicando que todo está correcto. Una vez que el proceso esté completado, pulse terminar para salir del asistente. Ahora a completado con éxito la configuración.
Si usted está instalando MySQL en un sistema operativo diferente o si desea volver atrás a la documentación oficial, bueno, está la puede encontrar en http://dev.mysql.com/doc/refman/5.1/en/installing.html.

Conectando con su base de datos local.

Ahora que ya tiene el servidor instalado, ¡ya podemos conectarlo!

Voy a estar usando el Window CLI (interfaz de linea de comando) para inicializar la conexión, pero usted puede usar MySQL CLI, que lo puede encontrar en la carpeta de programas de MySQL.
En primer lugar, debe abrir la línea de comandos del sistema para abrir la ventana de diálogo que la encuentra en el menú inicio y luego escriba CMD y presione la tecla [ENTER] de su teclado, tras lo cual a usted se le presentará un ventana parecida a la siguiente.

El primer comando que vamos a escribir para conectar al servidor con nuestro nombre de usuario y clave.
Hay varias maneras de conectarse con el servidor, aunque todas ellas hacen lo mismo.
El comando de conexión de MySQL usa la siguiente sintaxis:

Cada uno de estos argumentos puede ser trasmitido al comando mysql así como sigue:

  • --host=host o -hhost
  • --port=port o -P
  • --username=username o -uusername
  • --password=password o -ppassword
  • la base de datos es dada simplemente como un string (por ejemplo: db_name).

Nota: al suministrar la cadena de la clave completa como ésta será visible en la pantalla, así que si lo prefiere, simplemente puede suministrar el comando -p  o -password sin password, con un mensaje para la contraseña que está oculto.  Además, no necesitamos una terminación de comando ya que estamos escribiendo en el CLI de Window en este momento y no en MySQL.

Por lo tanto, ya que deseamos conectar nuestra computadora local, podemos eliminar el argumento del host (vea conectar a un host remoto más tarde en este mismo artículo). Queremos conectarnos con nuestra cuenta root para darnos todos los privilegios, así que vamos a necesitar nuestro nombre de usuario y nuestra contraseña, como actualmente no hemos configurado ninguna base de datos entonces tampoco suministraremos el argumento para la base de datos.
Estaré conectado con la cuenta de usuario "root" en mi máquina local con la clave de "secret" usando el siguiente comando:

Éste conecta a MySQL usando el usuario root con la contraseña de secret. Los siguientes comando conseguirán el mismo resultado.

La cuenta de usuario "root" es la cuenta MySQL master que fue creada durante la instalación, este es el mismo usuario  con el que usted debería estar conectado. Sin embargo, por favor, note que no está recomendado deja una cuenta root activada en una instalación web, así que, por favor, consulte las cuentas de usuarios y los privilegios en el sitio web MySQL para mayor información. (http://dev.mysql.com/doc/refman/5.1/en/adding-users.html)

Conectando con una base de datos remota

(salte este paso si usted está conectado con una base de datos local) Para conectar a su base de datos remota, a menudo suministrada por un proveedor del servicio de hosting, usted debe de conocer la dirección IP o el nombre del host de su base de datos (y, además, posiblemente el número de puerto si ha sido cambiado el 3306 que está por defecto). Usted se conectaría a éste como lo haría a una base de datos local, es decir, sólo con reemplazar el host y los argumentos del puerto dependiendo de su configuración de hosting.

Desconectando

Para desconectar de la sesión MySQL, envié el comando QUIT (o \q).

Formateando consultas y resultados

Ahora que estamos conectados (después de recibir el mensaje "Bienvenido al monitor MySQL") entonces estamos listo para enviar nuestras instrucciones, sin embargo hay algunos puntos que debemos tener en cuenta.

MySQL permite el uso de espacio en blanco sin afectar las instrucciones introducidas. Esto se vuelve útil en hacer nuestras consultas tan legibles como sea posible (ver la imagen de abajo). Estas dos consultas producen el mismo resultado, sin embargo, la segunda es mucho más fácil de leer.

Nota: Esta consulta no funcionará debido a que no tenemos una base de datos configurada, ¡ésta es para solamente para un propósito de demostración!
Puedes ver el código que use abajo, las dos consultas introducidas son idénticas, sin embargo, al presionar la tecla [ENTER] el CLI de Windows nos permite continuar la instrucción en una línea separada. MySQL ha implementado un función para cancelar una entrada si su comando abarca múltiples líneas, simple emita el comando limpiar (clear) "\c".

No obstante, esto significa que un comando especial debe ser enviado para indicar que es el final del comando. Podemos usar cualquiera de las siguientes opciones:

  • ;
  • \g
  • \G

Los primeros dos exterminadores son idénticos, sin embargo cuando use el tercero dentro de una consulta que devuelve datos, muestra los resultados en una tabla vertical en lugar de una en forma vertical. Es magnífico tener en mente esto si estamos devolviendo información desde una tabla que tiene muchas columnas y que puede volverse ilegible.

Restaurando una Base de datos

A continuación estaremos importando un archivo SQL, este es el mismo proceso que usted haría si estuviera restaurando un respaldo de una base de datos. Este archivo simplemente tiene las instrucciones necesarias para hacer un duplicado de la base de datos en el momento de respaldo dado.
Lo ideal sería que hiciéramos nuestra propia base de datos, sin embargo, hacer una base de datos puede ser una tema muy complejo debido a las relaciones, convenciones de nombres, motores de almacenamiento y el ajuste de los campos que está más allá del alcance de este tutorial.

Vamos a estar usando una base de datos pre-preparada que está disponible en http://dev.mysql.com/doc/#sampledb empiece a desplazarse hacia abajo hasta que vea los ejemplos de las bases de datos y quiere continuar y descargue la base de datos con el nombre world.

(world.sql).

Una vez que esté conectado a MySQL, vamos a restaurar la base de datos world, ya que ésta es un respaldo de una base de datos anterior. Este archivo es, simplemente, una lista de comando de MySQL que será ejecutada para hacer la base de datos nueva. Este archivo SQL solamente contiene tabla de datos y no almacena información en la base de datos, por lo tanto, primero debemos crear una base de datos para guardar las tablas en ella (consulte la analogía que está al inicio de éste artículo).
Nota: para guardar la longitud de este artículo, yo estaré colocando múltiples instrucciones en los fragmentos de código, pero usted puede separar estas instrucciones o ponerlos juntos para buscar las terminaciones de las instrucciones mostrados anteriormente. También debe estar consciente de que las funciones de MySQL no distingue mayúsculas y minúsculas, así que SELECT es el mismo "selec" y "SeLEcT". En lo personal escribo con mayúsculas las funciones MySQL para hacer mis consultas tan fáciles de leer como sea posible, a medida que las consultas se vuelven más largas y más complejas, esto pasa a ser una característica valiosa junto con el espacio en blanco.

Para hacer la base de datos vamos a publicar el comando CREATE DATABASE, una vez creado, luego vamos a utilizar el comando USE, para usar la base de datos.

Es hora de importar el respaldo y hay muchas formas de hacer esto, es conocido como procesamiento por lotes (http://dev.mysql.com/doc/refman/5.0/en/batch-commands.html). Desde que ya estamos conectados a MySQL vamos a usar el comando SOURCE seguido por nuestro nombre de archivo. He extraído el archivo "world.sql" desde la carpeta zip y lo he colocado en la raíz de mi dispositivo en C: usted necesitará saber la ruta de su archivo fuente. Si usted ofrece solamente su nombre de archivo, entonces MySQL buscará el recurso en la carpeta desde la que usted ejecutó su comando prompt (C:\USERS\USERNAME en Windos vista C:\Documents and Settings\Username
en XP). Usted no puede navegar a un directorio diferente mientras está usando la interfaz MySQL, así que asegúrese de que suministró la ruta adecuada. Después de expedir este comando, la ventana CLI emitirá cada uno de las instrucciones dentro del archivo SQL, una vez que este completo, usted será llevado de regreso a mysql> prompt.

Ahora usted tiene una base de datos funcional a su disposición. ¡Sin embargo, todavía no sabemos lo que contiene! Vamos a explorar un poco más a fondo, vamos a usar las siguientes instrucciones:

  • SHOW TABLES, este comando muestra las tablas en la base de datos actual.
  • DESCRIBE tbl_name; éste muestra qué campos existen en la tabla especificada.

Después de publicar el comando ya sabemos que la base de datos contiene tres tablas: "city" (ciudad), "country" (país) y "countrylanguage" (idioma del país). Después vamos a encontrar cuales campos guarda esta tabla. Para ello usted tendrá que publicar el comando DESCRIBE tbl_name para cada una de las tablas.

Después de publicar el comando DESCRIBE para la tabla "country", entonces usted verá que devuelve un desastre, así que para resolver esto simplemente use el terminador \G en vez de ;.

Ahora tenemos toda la información que necesitamos para manipular las tablas a como deseemos, tenemos el nombre de usuario de la base de datos, la contraseña, el nombre de la base de datos, los nombres de las tablas y los nombres de los campos, si está desarrollando en un lenguaje de programación diferente tal como PHP, esta es la información que usted requeriría para devolver datos a su sistema (vea http://php.net/mysql).

Registrando resultados

Podemos elegir la opción de registrar las salidas de la interfaz MySQL, hacemos esto para enviar el comando \T nombredearchivo.txt. Para detener el registro emitimos el comando \t. El ejemplo que está abajo guarda un archivo llamado log.txt en la ruta del directorio del disco duro E: En mi máquina este es un disco duro con mucho espacio, pero por favor, note que debe tener permiso para tener acceso a este disco duro, ya que de lo contrario usted no podrá escribir en sus ventanas de instalación de la ruta a su disco en Windows Vista sin ejecutar MySQL desde un comando prompt.

Respaldando una base de datos

El monitor MySQL viene con una extensión llamada mysqldump; y como usted podría esperar desechar la información desde la base de datos para poder hacer una replica exacta. El comando mysqldump usa la siguiente sintaxis:

Para ejecutar esto, usted deberá estar conectado desde la sesión MySQL.

El siguiente código se conecta a la sesión MySQL con la ruta de la cuenta de usuario con la contraseña "secret", luego desecha la tabla db_world al archivo db_worldbak.sql.

Conclusión

Después de leer este artículo, espero que usted haya ganado un conocimiento sólido de cómo interactuar con la interfaz mysql en un nivel de línea de comando. Algo que puede probar lo útil que los comandos pueden ser enviados directamente a la base de datos MySQL en lugar de otro lenguaje de programación. Pero no se detenga aquí, http://dev.mysql.com/doc/, esto es un estupendo recurso y en poco tiempo usted estará haciendo su propia base de datos. A continuación, he escrito algunas consultas básicas para buscar en la base de datos world y algunos ejemplos para que usted lo intente. Vamos a ver si usted puede entenderlos, si no puede, bueno, ahora ya sabe donde está la documentación.

En Inglés esta consulta SELECT y retorna el Nombre y la Población FROM (desde) la tabla "city" WHERE (donde) el código es GBR, luego los resultados están filtrados usando el comando ORDER BY Población ASC (población ordenada en forma ascendente) y después está LIMIT (limitada) a devolver los primeros 5 resultados. Esta consulta muestra el nombre y la población de las última 5 ciudades habitadas en Gran Bretaña.

Y una más para el camino....

En Inglés esta consulta SELECT (seleccionar) datos, que CONCAT concatene Nombre de la tabla city e Idioma de la tabla countrylanguage y muestre el resultados AS como detalles, además, la consulta SELECT selecciona la Población desde la tabla city. Esta consulta SELECT selecciona su dato FROM desde la tabla city y la tabla countrylanguage, esto retorna datos desde el código del país de la ciudad es el mismo que el código del idioma del país. El dato es filtrado para mostrar los países WHERE donde el código de país es GBR AND el Idioma es Inglés, después, esto es ORDER ordenado BY por el incremento de la población, y los resultados están LIMIT limitados a mostrar los resultados desde 6 hasta 10. Esta consulta es conocida como un INNER JOIN, ya que dos tablas son enlazadas dentro de la consulta. Esta consulta mostrará el 6to. y hasta la 10ma. ciudad habitada con el código de país GBR  y que hablan Inglés.

¡Cómo sé que datos escribir para hacer esas consultas, entonces pida! Al ejecutar la siguiente consulta SELECT, esta usa el caracter comodín para seleccionar todos los campos y devolver todos los datos en la tabla especificada. Desde los resultados de la consulta es que ya tengo una mejor comprehensión de lo que fue incluido e hice algunos escenarios que quiero consultar.

Aquí están algunas funciones que tal vez usted quiera mirar con más detenimiento para comenzar:

  • SELECT
  • FROM
  • WHERE
  • LIMIT
  • ORDER BY
  • AND
  • OR
  • CONCAT
  • SHOW DATABASES
  • USE
  • CREATE
  • SHOW TABLES
  • DESCRIBE
  • UPDATE

Busque el siguiente tutorial sobre cómo extraer y manipular datos. Siéntase libre de hacer una pregunta en los comentarios y haré lo todo lo posible para contestarlas. ¡Asegúrese de empezar una pregunta con #Q para que yo pueda encontrarla!

  • Suscribase a NETTUS RSS Feed para más tutoriales y artículos diarios sobre desarrollo web.


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.