¡Bienvenidos a otra clase del Taller de PHP! Seguimos con el tema de MySQL. La clase pasada vimos qué era phpMyAdmin; hoy vamos a ver cómo crear las tablas usándolo (esto siempre y cuando ya tengamos la Base de datos creada).
Además veremos cómo crear una tabla en la base de datos, declarando la longitud y los tipos de datos que manejaremos. Por último conoceremos qué son los Ãndices y cómo se relacionan con la tabla creada. ¡Comencemos!
Como primer medida apenas entramos al sistema vamos a ver una pantalla como la siguiente:

FÃjense que a la izquierda (en el sector más oscuro) esta el listado de base de datos y a la derecha hay una serie de información.
Si la base de datos (a partir de ahora la llamaremos db, por data base, base de datos en ingles) ya existe hacemos clic en la misma, caso contrario, escribimos en el formulario de la derecha donde dice crear nueva base de datos o en inglés create new database con el nombre que nosotros queremos y hacemos clic en el botón crear.
Perfecto, en este momento nuestra db no contiene ninguna tabla, para ver como creamos tablas, vamos a crear una tabla que contenga datos de contactos de personas amigas (una agenda).
¿Cómo crear una tabla?
En realidad esta parte es la más fácil de todas, simplemente vamos al formulario donde dice crear nueva tabla en la base de datos e incluimos el nombre que queremos usar, para nuestro caso práctico va a ser agenda, en el siguiente campo del formulario debemos incluir el numero de campos que queremos que contenga nuestra tabla, que va a ser 5.
Se nos abre un nuevo formulario con los 5 campos para completar, en donde dice campo o field dependiendo el idioma en que tengan phpMyAdmin, vamos a poner el nombre que queremos que tengan nuestros campos. En tipo o type vamos a poner el tipo de dato que vamos a usar.
Los más utilizados son varchar, char, int, tinyint, text, datetime, timestamp y enum, jaja, ustedes a esta altura del partido ya me habrán sacado la ficha y sabrán que yo los hago esperar un poquito antes de explicar qué es cada cosa, pero están equivocados, se los voy a explicar ahora mismo.
varchar y char son similares, pero a su vez bastante diferentes, jeje. Siempre que se utilicen estos dos tipos, hay que declarar la longitud de los mismos, si prestan atención al lado de declarar el tipo, tienen que declarar también la longitud. Los char tienen un máximo de 255 caracteres (los varchar también). Por ejemplo si declaramos un char de 30, se añadirán espacios a la derecha hasta la longitud especifica si lo que se incluye es algo menos a estos caracteres. De todas formas cuando se recuperan los datos, estos espacios se borran.
Los varchar también son cadenas de caracteres pero la diferencia es que la longitud es variable. También posee un máximo de 255 caracteres (para las versiones anteriores a MySql 5.0.3 y de 65.535 para las superiores), pero la diferencia principal con los char es que solo se almacenan los caracteres utilizados, si yo declaro un campo con 255 caracteres pero almaceno solo la palabra “Hernán”, no voy a ocupar el resto del espacio.
En los dos casos, si asignan un valor mayor al declarado, la cadena de caracteres se trunca. Y esto me da pie para explicar el Text.
Text es también una cadena de texto pero esta permite almacenar mucha más información incluidos espacios en blanco y saltos de linea. Estos campos son utilizados en general para almacenar información recibida a través de campos de tipo “textarea” (recuerden la clase de formularios).
Los int y tinyint son para almacenar números enteros, el rango con signo del tinyint es de -128 a 127 y sin signo de 0 a 255. Y los “int” son bastante más grandes, con signo van del -2147483648 a 2147483647 y sin signo de 0 a 4294967295.
Entre los tipos de datos de fecha y hora los dos más comunes son datetime y timestamp. La diferencia practicamente esta en la forma en que guarda la información, datatime para el valor 0 la guarda como ‘0000-00-00 00:00:00′ y timestamp como ‘00000000000000′.
La diferencias practicas entre uno u otro es que por ejemplo TIMESTAMP admite fechas entre 1970 y 2037 solamente, a diferencia de DATETIME que admite desde el rango 1001-01-01 00:00:00 al 9999-12-31 23:59:59. Una de las ventajas que puede tener TIMESTAMP es que el campo se puede poner que se actualice al momento de cambiar cualquier otro valor almacenado, es muy común utilizar este tipo para guarda la fecha de modificación de una lÃnea.
Por último me queda explicar enum que también corresponde al tipo de datos de caracteres, como el char y el varchar, la diferencia es que hay que especificar que valores queremos que se puedan utilizar, y solo se va a poder completar el campo con estos valores.
Bueno, ahora que expliqué cada tipo de dato, ya podemos crear nuestra tabla agenda, para ello vamos a crear el primer campo con el nombre idAgenda, este campo va a ser un int ya que va a ser el valor de identificación único de cada lÃnea que agreguemos, y como no sabemos el tamaño que tendrá nuestra agenda, por las dudas le ponemos un largo de 10, o sea, es un campo llamado idAgenda del tipo int(10). Por último, como es el identificador primario y se auto incrementa, vamos a tener que seleccionar en “extra” el valor “auto_increment” y marcar el primer radio button con el iconito con una llave que dice “Primaria” o “Primary”. Esto le indica que es la llave primaria de la tabla, el valor único que nos ayudara a identificar una fila almacenada.
El segundo campo lo llamaremos “nombres” y va a ser un varchar(255). El tercero va a ser para almacenar los números de teléfono. Acá es donde surge la duda. ¿Es un int o es un varchar? Yo elegirÃa varchar, ya que puede ser que se almacenen números de teléfono con letras, o es posible separar un teléfono en conjunto de dÃgitos, por ejemplo 4547-6789, en este caso si se hubiese elegido int, no serÃa un dato válido para la tabla. El cuarto campo vamos a llamarlo “email”, puede ser un varchar(100) y el último un “enum” llamado “grupo”, aquà en el campo “longitud/valores” vamos a incluir los grupos posibles de la siguiente forma: ‘familia’, ‘trabajo’, ‘amigos’.
Finalmente hacemos clic en “save” y listo, ya tenemos nuestra tabla creada.

¿Qué son los Ãndices?
Los Ãndices (Key, o INDEX) son un grupo de datos que MySQL asocia con una o varias columnas de la tabla. Prácticamente son usados para encontrar rápidamente los registros que tengan un determinado valor en alguna de sus columnas. Es como un Ãndice en un libro, sirve para avisarle por donde comenzar a buscar en lugar de tener que leer a través de toda la tabla para encontrar los registros que estábamos buscando.
Hay cuatro tipo de Ãndices, “primary key” (nuestro campo auto incremental es nuestra primary key, es el identificador de nuestra fila, cuando nos refiramos a la información guardada con idAgenda = 5, estamos buscando la información guardada en la fila donde coincida con el idAgenda), “unique”, “index” y “fulltext”, el unique es para indicarle que no se puede repetir ese valor en toda la tabla, por defecto el primary key ya es un Ãndice unique. El “index” es el Ãndice como lo explique antes y “fulltext” sirve para realizar búsquedas dentro del contenido con cadena de textos básicamente.
Bueno, eso es todo por hoy, a partir de la clase que viene ya vamos a comenzar a hacer consultas sobre nuestra tabla creada, hasta la semana que viene
| << CLASE ANTERIOR |








Lunes, 12 de Mayo de 2008 a las 20.20
Estoy muy agradecido con ustedes, al permitirme aprender estas tecnicas que pondre en practica, una vez considere que estoy debidamente preparado.
Domingo, 25 de Mayo de 2008 a las 20.38
Está todo super bueno el curso, de rápida lectura…me gustó
Sólo tengo un problema…no pude encontrar la forma de ejecutar el phpMyAdmin. Por favor falta, explicitar un poco más este punto…tengo instalado todo pero no se como llegar a la interfaz que muestras en la clase 17
Agradecido por todo
Jueves, 29 de Mayo de 2008 a las 21.04
Hola Mario S, si el servidor que tenés corriendo en tu máquina es XAMPP, podes accederlo ingresando en el navegador “http://localhost” y ahà te aparece una pantalla de XAMPP, elegÃs el idioma que querés y pasas a otra pantallita.
Ahà vas a tener un listado de opciones a la izquierda, una de esas es phpMyAdmin, haces clic ahà y listo.