8.- Primeros pasos con MySQL

INTRODUCCIÓN

Para este capítulo vamos a seguir a Kevin Yank, aquellos que sepáis inglés os recomiendo que os compréis el libro, y os leáis todos los artículos suyos que podáis encontrar. Si consiguió hacerme aprender php y MySQL a mí, cualquiera puede aprender.

En este tema vamos a ver cómo conectarnos a MySQL, crearemos una base de datos y varias tablas, luego borraremos alguna base de datos y algunas tablas para ver cómo se hace.

Una de las cosas que más me costó a mí fue comprender el concepto de las bases de datos relacional es, a lo largo de este capítulo y del siguiente iremos introduciendo el concepto poco a poco, de forma que vaya entrando en la mollera lentamente, porque si sois como yo, os costará. Paciencia y paso a paso. Smile

QUÉ ES UNA BASE DE DATOS

Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrarla fácilmente y utilizarla para hacer maravillas Smile

Por ejemplo, supongamos que queremos hacer una web sobre el Refranero español. Con una base de datos como MySQL podríamos guardar todos los refranes y luego, utilizando php extraer los refranes de la base de datos para mostrarlos cuando los vayamos necesitando.

Así podríamos tener toda una web llena de refranes y mostrarlos fácilmente. Además, si necesitamos corregir o añadir un nuevo refrán, no tendríamos que tocar el html para nada, bastaría con hacer la corrección o añadir un nuevo refrán a la base de datos.

¿CÓMO FUNCIONA UNA BASE DE DATOS?

Una base de datos se compone de una y más TABLAS . Cada tabla guarda un conjunto de datos. En nuestro ejemplo de la web de refranes, tendríamos una tabla llamada refranes, que contendría nuestra lista de refranes.

Cada tabla tiene una o más COLUMNAS o CAMPOS. Cada columna guarda una parte de la información sobre cada elemento que queramos guardar en la tabla.

En nuestro ejemplo, la tabla refranes tendría con una columna para guardar el texto del refrán, y otra para la fecha.

Cada refrán que añadamos a nuestra base de datos será ocupará una fila en nuestra tabla. A cada una de estas filas que guarda los datos relativos a un elemento, se le llama REGISTRO.

Image

Además de una columna para el refrán (refran_txt) y otra para la fecha (fecha), hemos incluido una columna ID. Con esta columna asignamos un número único a cada refrán de forma que luego podamos seguirles la pista y saber cuál es cual.

Resumiendo la tabla que hemos visto tiene 3 columnas y 3 filas, cada fila contiene un id para identificar el registro, el texto del refrán y la fecha en que fue añadido a la bd.

QUÉ ES MYSQL

MySQL es un “servidor” de bases de datos, un programa que nos permite tener múltiples bases de datos.

Una base de datos de MySQL nos permite guardar mucha información de una forma tan organizada que luego resulta muy fácil extraer esos datos utilizando un lenguaje de programación como php.

MySQL es GNU General Public License (GPL) y podéis descargarla gratuitamente de la página de MySQL.

CÓMO INSTALAR MYSQL

Si no tenéis un hosting que os dé mysql, váis a tener que instalarlo así que en tanto teminamos algún tutorial sobre cómo instalar mysql aquí dos dejo unos cuantos:

– Kevin yank, de sitepoint, te dice como hacerlo tanto en linux/Unix como en Windows. (Excelente pero en inglés)

– Rubén Álvarez, de desarrolloweb os cuenta como instalarlo bajo windows.

– Fabian Muller, de WebExperto también cuenta la instalación bajo windows.

CÓMO CONECTAR CON MYSQL

Aquí nos podemos encontrar con dos situaciones:

a) Que nuestro ISP nos haya proporcionado ya una base de datos, en este caso lo normal es que os proporcionen una herramienta tipo phpMyAdmin para administrar vuestra base datos. En estos casos, lo normal es que no os dejen crear nuevas bases de datos a vosotros, pero a veces sí. Si este es vuestro caso. Tenéis que preguntarle a vuestro proveedor los siguientes datos:

  • URL de la herramienta de administración de la base de datos.
  • Nombre de la base de datos
  • Nombre de usuario para acceder a la base de datos
  • Contraseña para acceder a la base de datos.

Sólo vuestro proveedor puede daros esos datos, los foros están llenos de gente preguntando este tipo de datos, pero afortunadamente para vosotros, nosotros no podemos averiguarlos, preguntad a vuestro proveedor.

Salvo por el tema de crear y borrar bases de datos que en el 99% de los proveedores no está permitido, con phpMyAdmin podéis “hablar” con vuestro MySQL, exactamente igual que si lo tuvierais en local. Dirigios a la pestaña “SQL” y donde pone “Run SQL query/queries on database” ó “Ejecute la/s consulta/s SQL en la base de datos” seguis las instrucciones cual si de la consola se tratara.

b) Que tengamos el servidor en nuestro ordenador. Recomiendo a todo el mundo que se lo instale, porque así veréis una base de datos MySQL como es en realidad y además no andaréis haciendo burradas en vuestro servidor (no, no os estoy llamando burros, pero cuando estamos aprendiendo, todos cometemos errores). Si tienes la MySQL en tu ordenador para conectar tienes que abrir una consola (pulsa sobre Inicio > ejecutar y escribe cmd, pulsa enter)

Una vez en la consola ejecutar el cliente de MySQL. Asi que dirigete a c:\MySQL\bin (o donde tu tengas instalado tu MySQL).

NOTA PARA LOS QUE NO HAN USADO MSDOS EN SU VIDA:

Para cambiar de disco duro: Nombre de la unidad: por ejemplo estás en c:\> y necesitas ir a d:\> escribes “d:” (sin comillas) y pulsas ENTER.

Para cambiar de directorio: CD Nombre_del_directorio por ejemplo para ir de C:\> a c:\mysql escribes “CD mysql” (sin comillas) y pulsas ENTER

Para subir un directorio: CD.., por ejemplo estás en c:\mysql\bin y quieres ir a c:\mysql escribes “cd..” (sin comillas) y pulsas ENTER.

c) Una vez en nuestro directorio escribimos

MySQL –u usuario –p

Si te dice que nones, tecleaa MYSQL pulsa enter y vuelve a escribir MySQL –u usuario –p

-p sirve para decirle a MySQL que te pida una contraseña. Cuando te la pida, dale la contraseña que hayas establecido (si no has establecido ninguna, tu nombre de usuario será root, y no tendrás contraseña así que cuando te la pida pulsa enter).

Verás un mensaje como:

“Welcome to the MySQL monitor. Comands end with ; or g. …..”

CÓMO VER QUÉ BASES DE DATOS TENGO EN MYSQL

Bien ya estamos, como ya hemos dicho, MySQL es un servidor de bases de datos por lo que puede haber más de una base de datos en nuestro servidor. Lo primero que vamos a hacer es ver qué bases de datos tenemos:

MySQL > show databases;

Cuando pulses enter verás una lista de las bases de datos que tengas y más o menos tendrá esta apariencia:

Image

NOTA: muy importante el “;” si se os olvida MySQL pasará de vosotros.

CÓMO ESCRIBIR UNA ORDEN UTILIZANDO VARIAS LINEAS EN VEZ DE UNA MUY LARGA

Mientras no escribáis ; MySQL entenderá que todavía no habéis terminado. Lo cual resulta útil si se trata de una query muy larga, porque podéis escribirla en varias líneas. Cuando pulsas ENTER sin haber escrito el ; en vez de myql > veréis -> por ejemplo:

MySQL> show
-> Databases;

CÓMO CANCELAR UNA ORDEN

Si estás a mitad de una orden y te das cuenta de que te has equivocado, escribe “\C” y pulsa ENTER. Y todo lo que hayas escrito hasta ese momento se cancelará por ejemplo

MySQL> shew
-> Data\c;
y te volverá a salir
MySQL>

A la espera de tus órdenes.

CÓMO SALIR DE MYSQL

con “Exit” ó con “quit”

MySQL> exit;
bye

QUÉ ES EL SQL

SQL son las siglas en inglés de Structured Query Language (lenguaje de consultas estructurado). Es el lenguaje que se utiliza para “hablar” con la mayoría de las bases de datos. Las ordenes que damos a la base de datos se llaman “QUERYS”, consultas.

CÓMO SE CREA UNA BASE DE DATOS

Vamos a crear la base de datos “refranes” que es el ejemplo con el que vamos a trabajar a lo largo de este artículo.

MySQL> CREATE DATABASE refranes;

Si estáis trabajando con un ISP, lo más probable es que el nombre de la base de datos os haya sido “dado” previamente, por lo que me temo que os tendréis que aguantar con él.

Ahora que ya tenemos nuestra base de datos, tenemos que utilizala así que vamos a ello:

MySQL> USE refranes;

Nota: MySQL distingue entre mayúsculas y minúsculas, por lo que no es lo mismo “refranes” que “Refranes”.

CÓMO SE CREA UNA TABLA

Esta parte ya es aplicable a los que estáis en el servidor, porque las tablas si que no os las dan hechas.

Ahora tenemos una base de datos vacía, así que necesitamos crear tablas en la que guardar nuestros refranes.

Todo lo que hemos visto hasta ahora ha sido bastante simple, pero con las tablas, ya la cosa cambia. Para crear una tabla la orden básica es

CREATE TABLE nombre_de_la_Tabla (

Nombre_columna_1 tipo_de_datos detalles,
Nombre_columna_2 tipo_de_datos detalles,

)…

Nosotros en nuestra tabla de refranes ¿que vamos a tener?

Un campo “ID”, que es un número que identificará cada uno de nuestros refranes de forma unívoca. Para no equivocarnos y no repetir números ni saltarnos uno, le diremos a la base de datos que meta ella sola este número y que lo vaya incrementando.
Un campo refran que es el texto de nuestro refrán.
Un campo fecha, que es la fecha en que se añadió el refrán a nuestra base de datos.

Así que ya tenemos nuestros tipos de datos (un número, un texto y una fecha). Ahora necesitamos los detalles.

¿QUÉ ES ESO DE LOS “TIPOS DE DATOS”?

Una cosa que se nos olvida siempre a casi todos, es que los ordenadores son tontos. En el fondo lo que estás guardando en cada campo de MySQL es un conjunto de caracteres. Tú que eres muy listo y llevas muchos años estudiando, sabes que “2003-06-05” es una fecha, pero MySQL sólo sabe que son 10 caracteres, pero no sabe qué significan. Así que, si luego quieres poder hacer cosas con tus datos (por ejemplo sumar dos cantidades), tienes que decírle claramente: esto es un número, esto es un texto, esto de más allá es una fecha….

Para ver los tipos de datos, podéis leer este artículo de desarrolloweb que es bastante exhaustivo.

PD: “Cadena” para los informáticos (que son unos tipos muy raros) significa texto (más o menos Razz)

MySQL> CREATE TABLE refranero(
-> ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> refran TEXT,
-> fecha DATE NOT NULL);

Y pulsamos enter:

En MySQL veremos:

Query OK, 0 rows affected (0.01 sec)

En phpMyAdmin veremos:

Su consulta ha sido ejecutada con éxito

CREATE TABLE refranero ( crea una tabla que se llame refranero.
ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, queremos que tenga una columna llamada “ID”, que es un número entero. Esta columna no se puede dejar en blanco (NOT NULL), si no especificamos un valor para esta columna, queremos que MySQL introduzca un valor que sea el inmediatamente superior al más alto que se haya introducido hasta el momento (AUTO_INCREMENT), esta columna va a funcionar como un identificador específico de los datos que se introduzcan en esta tabla, por lo que los datos de esta columna no se pueden repetir (PRIMARY KEY).

refran TEXT, una segunda columna llamada “Refran” en la que vamos a introducir texto (TEXT).

fecha DATE (NOT NULL); La tercera columna se llama “Fecha”, en la que introduciremos datos del tipo “fecha” (DATE) y no puede quedarse vacío (NOT NULL)

Ya tenemos nuestra primera tabla

CÓMO VER LAS TABLAS QUE TENEMOS EN UNA BASE DE DATOS

Igual que lo hacíamos con las tablas:

MySQL> show tables;

+————————–+
| Tables in Refranes |
+————————–+
| refranero |
+————————–+
1 row in set

CÓMO PODEMOS VER LAS CARACTERÍSTICAS DE UNA TABLA

utilizando DESCRIBE refranero;

Image

Ahora esto parece chino, pero poco a poco de acostumbrarás a verlo. Con phpMyAdmin los resultados parecen algo más legibles Smile

Image

CÓMO SE BORRA UNA TABLA

MySQL> DROP TABLE nombre_de_la_tabla;

No te pide ni confirmación ni nada, así que cuidado que no tiene uno oportunidad de arrepentirse.

CÓMO SE BORRA UNA BASE DE DATOS

MySQL> DROP DATABASE nombre_de_la_BASE_DE_DATOS;

Al igual que en el caso anterior, no pide confirmación, así que cuidadín.

Y con esto y un bizcocho hasta mañana a las ocho Smile

Volver an índice

3 responses to “8.- Primeros pasos con MySQL

  1. Muchas gracias por el post, me ha servido para perder un poco el miedo y, al menos, saber por dónde empezar!!. Si tienes algún otro post de continuación…🙂

    Saludos!!

  2. esta pagina me encanta apesar de que ya lleve un semestres base de datos no habia entendido tan bien como seguir estos ejemplos

  3. Camilo rivera

    Me ha servido bastante este ejemplo de mysql. Aunque en lugar de usar phpmyadmin, me gusta mas usar HeidiSQL.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s