Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Para hacerte una idea de lo que es una base de datos, imagínate una tabla.
No, no una tabla de madera no, me refiero a algo como esto:
Columna 1 Columna 2 Columna 3
Fila 1 dato 1 dato 2 dato 3
Fila 2 dato 4 dato 5 dato 6
Fila 3 dato 7 dato 8 dato 9
Fila 4 dato 10 dato 11 dato 12
Esto de arriba es una tabla de datos. Solo tiene dos características y son el
disponer de unas cuantas filas (4 en el ejemplo) y unas cuantas columnas (3 en
este caso). Una fila es toda una línea de datos horizontal mientras que una
columna es lo mismo pero en vertical. Recuerda las columnas romanas, que
siempre van de arriba a abajo (bueno hay algunas en ruinas que se han caido,
pero esas no cuentan...).
Estos inventos nos van a servir para guardar datos y usarlos más tarde. Estos
datos pueden haber sido colocados por nosotros mismos o bien podemos dejar
a los visitantes (quizás solo a los registrados o quizás a todo el mundo que
quiera) que añadan datos a nuestra tabla.
Imagina por ejemplo que a partir de un formulario pedimos a los visitantes
sus datos personales. Una buena forma de guardarlos es usando una tabla como
esta. Cuáles serían los datos personales que nos pueden interesar? Seguramente
su nombre, apellido, dirección e-mail, dirección de página web y si está
registrado o no.
En una tabla de datos, las columnas representan cada uno de los datos que
pediremos a los visitantes, mientras que en cada fila se almacenan todos los
datos de un visitante en concreto.
La tabla del ejemplo, vacia, sería como esta:
Id nombre apellido dirección email dirección web Está registrado?
PhpMyAdmin
El Phpmyadmin es un programa que suele estar instalado en los servidores
decentes y que nos ayuda a crear y modificar bases de datos e incluso consultar,
añadir, modificar o eliminar los datos guardados en ellas con mucha facilidad.
No todos los servidores gratuitos disponen de este programa, de hecho algunos
no te ofrecen ni siquiera una base de datos, con lo cuál no te haría falta el
Phpmyadmin, claro. Pero cada día que pasa son más lo que ya lo están
ofreciendo. En cuanto a los servidores de pago, casi todos te ofrecen algunas
bases de datos para usar y acceso al Phpmyadmin. En la sección Hosting y
Dominios de CCTW puedes ver algunos servicios de hosting que sí te ofrecen
todo esto. En cualquier caso, puedes consultar con tu hosting actual si dispones
estas cosas.
Para acceder al Phpmyadmin has de entrar primero al panel de control de tu
servicio de hosting. Con suerte el panel será del tipo Cpanel que es el que vamos
a explicar en CCTW. De todas formas, si es otro distinto no variará mucho y te
servirán igual todas estas explicaciones. El Phpmyadmin es el mismo sea cual
sea el panel de control del hosting.
Para acceder entonces al Phpmyadmin hay que entrar antes al panel de
control de tu servidor. Normalmente puedes acceder a tu panel de control
Cpanel escribiendo la dirección de tu web seguida de /cpanel. Si lo escribes en
tu navegador te aparecerá una ventana preguntándote el nombre de usuario y
la contraseña de tu hosting.
Si has adivinado tu contraseña entrarás a tu Cpanel y verás a la derecha un
montón de iconos. Busca y haz clic en el que te señalo aquí debajo:
Al hacer clic allí te aparezca otra pantalla del Cpanel desde la que puedes
crear una base de datos y un usuario con clave para acceder a la misma. La
pantalla es esta:
Escribe ese nombre para la base de datos y pulsa sen "Create Database". Tras
unos segundos Cpanel te comunica que la base de datos ha sido creada con este
mensaje:
Ale, usuario creado. Después de pulsar de nuevo en "Go Back", que ya sabes
lo que significa, verás como aparece el usuario... pero... anda! Igual que ocurre
con la base de datos, al usuario se le antepone también el nombre de usuario
del panel de control seguido de un guión bajo. Recuérdalo vale? En este ejemplo
por tanto el usuario creado tiene el nombre cartago_pepe.
Pasamos a la tercera parte. Ahora hay que decir qué usuario puede acceder
a qué base de datos y qué poderes va a tener sobre ella. Ahora mismo esto no
tiene mucho sentido, pues solo tenemos una base de datos y un solo usuario,
pero cuando tienes varias bases y usuarios tiene su sentido.
Esto se hace en la siguiente ventana de aquí abajo:
Esto es fácil también, donde pone "user" eliges el usuario (solo tienes uno, te
será fácil saber cuál escoger, no?), donde pone "database" escoges la base de
datos a la que quieres que pueda acceder ese usuario y debajo te aparecen
todas las cosas que le dejas hacer, los permisos que va a tener. Normalmente
este usuario es para tí, por lo que te puedes y debes dar todos los poderes. Y
como en inglés todo se escribe "All", marcas esa casilla y listo, es como si
hubieras marcado todas las de la derecha.
Quizás en un futuro quieras crear otro usuario para que acceda un amigo, o
un visitante. En ese caso puedes volver a hacer lo mismo pero limitando los
permisos, marcándo solo lo que le dejas hacer en la parte de la izquierda, donde
están todas esas opciones. Te comento rápidamente lo que significa cada una,
pero no creo que lo uses, al menos por ahora.
Select es para seleccionar datos solamente, insert para insertar datos en la
base de datos, update para cambiar el valor de los datos, delete para elimimar,
create permite crear tablas, drop creo que vaciarlas, lock bloquearlas y el
resto.... aún no lo se... ;( para qué te voy a engañar, no?
Tras activar la casilla de All haz clic en "Add User To Database" que significa
"Asociar al usuario a la base de datos" y listo, todo preparado para continuar.
Acceder al PhpMyAdmin
Bueno, ahora que sabemos un poquito de Php y tenemos la base de datos
creada podemos ya aprender a insertar datos en ella. Primero veremos cómo
incluir datos usando el PhpMyAdmin y más tarde crearemos unos formularios en
Php para hacer lo mismo pero de un modo más cómodo, desde nuestra propia
web.
Para acceder al PhpMyAdmin tienes que entrar en el panel de control de tu
servidor. Si dispone de Cpanel encontrarás el icono de acceso a PhpMyAdmin
que es como este (el de abajo de la imagen):
Ufff, esto si que suena a chino, ja ja ja ja. Nos aparecen un montón de datos
a rellenar para cada uno de esos 5 campos que queremos para la nueva tabla.
En la imagen de arriba puedes ver unos cuantos, pero si mueves la barra de
desplazamiento de tu navegador en tu PhpMyAdmin hacia la derecha aún verás
unos pocos más. Vamos a ver lo que significa cada uno de esos huecos para
poder rellenarlos, oki? Una vez relleno no hay que tocarlo más, así que merece
la pena seguir.
Campo
En esta primera columna escribiremos el nombre que queremos para
identificar a ese campo concreto. Nosotros queríamos crear los campos nombre
de usuario, dirección de correo, dirección de la página web del usuario y si está
activo o no (por si queremos desactivar a alguno que se porte mal.... je je je)
por tanto los nombres que pondremos serán estos:
Al igual que con los nombres de las tablas, los escribiremos en mayúsculas y
sin espacios en blanco. Cuando sea necesario separar lo haremos con guiones
bajos pero intentaremos evitarlo. El primero de los campos lo he llamado ID (de
Identificador) y es donde guardaremos el número de usuario.
Tipos
Los datos que podemos guardar en una base se pueden clasificar en distintos
tipos. Como no se consideran igual una fecha, que un número, ni un texto de
unas pocas letras a un texto largo, ni un número entero que uno decimal, se
han creado varios tipos distintos. En esta columna de PhpMyAdmin debemos
seleccionar el tipo que queremos para cada uno de los campos creados.
El asignar un tipo a cada campo es para optimizar la base de datos y agilizarla.
Al igual que es una tonteria tener un garaje para guardar un patinete, sería un
desperdicio reservar un hueco grande de memoria para almacenar un dato que
suele ser pequeño. Es por eso que interesa asignar a cada campo el tipo
adecuado, para no desaprovechar.
Vamos a ver de una pasada rápida estos tipos:
Juas!!! De verdad que yo ceia que había menos tipos de tipos! ja ja ja, me he
asustado cuando he abierto el desplegable, madre mía... Bueno, si te parece
bien (dí que sí por favor, ja ja ja) solo explicaré aquí los que vamos a usar en
este ejemplo e iremos viendo algún otro conforme lo usemos más adelante. Si
no no terminamos las explicaciones nunca, je je je, qué disparate.
Bueno, pues por eso de aprovechar al máximo, daremos a cada uno de esos
campos el tipo de dato adecuado al máximo valor que cada campo pueda tener,
o lo que es lo mismo, si el coche más grande que puedo llegar a tener puede
tener 5 metros de largo, escogeré un garaje de 5 metros de largo como mucho,
para no desperdiciar espacio.
El campo ID va a ser entonces un número entero (entero significa sin parte
decimal, sin comas) y como mucho imagino que tendremos unos 9999 usuarios
registrados (no estaría mal para empezar verdad? je je je). Le asignamos
entonces un tipo de dato que acepte números enteros de hasta 9.999, es decir,
números de hasta cuatro cifras. Un tipo correcto para este dato será SMALLINT
que significa "pequeño entero" y acepta valores de números enteros hasta el
65535... y eso que es SMALL! je je je.
Al campo NOMBRE le asignaremos un tipo de dato que acepte letras y como
máximo tendrá unos 50 carácteres (espacios) así que le daremos el tipo
VARCHAR. Es un tipo de dato que admite valores de hasta 255 carácteres de
largo y que ocupará un espacio proporcional a la cantidad de letras que tenga.
El campo EMAIL solo se diferencia del anterior en la arroba, y como se admite
como carácter usaremos también el tipo VARCHAR para él. Aplicaremos también
VARCHAR para el campo URL.
El campo ESTADO es solo para saber si el usuario está activo (si puede entrar
en la web) o si por el contrario ha sido desactivado, por mal comportamiento o
por lo que sea. Para saber el estado solo necesito dos valores que pueden ser
"Activo" e "Inactivo" por lo que usaremos el tipo ENUM. Los tipos ENUM se usan
cuando se va poder elegir de entre una serie de valores ya conocidos, en nuestro
caso, Activo e Inactivo nada más.
Por ahora nos quedamos con con solo esos tipos, ya veremos otros más
adelante. La columna donde asignamos los tipos a cada campo quedará
entonces así:
Longitud y Valores
Esta columna no es tan complicada. Aquí se coloca la longitud máxima que
puede llegar a tener un dato de cada uno de los campos. Existen casos en los
que podemos elegir qué valores concretos puede tomar un campo. Por ejemplo,
aceptar solo los valores "soltero", "casado", "viudo", "divorciado" y "separado".
En esos casos sería aquí también donde se indicarían esos valores posibles, pero
eso lo vemos mejor con el ejemplo del ESTADO Activo e Inactivo.
Colocamos aquí entonces la longitud máxima del valor más largo que creemos
que podemos llegar a tener. No se refiere al valor máximo, sino a lo largo que
va a ser el datos más largo en ese campo. Por ejemplo, el número 10000 es 5
cifras de largo, el 3 es de una cifra de largo, la palabra "capicúa" es de 7
carácteres de largo, no? Pues ese es el dato a poner en esta tabla, el largo
máximo que podría llegar a tener un valor.
Si te fijas en lo que hemos puesto en el último campo verás que en lugar de
la longitud hemos escrito todos los valores que permitimos que pueda tener el
campo ESTADO, es decir, Activo e Inactivo. Para escribir en ese hueco los
valores posibles hay que hacerlo separando cada uno con una coma y
encerrando cada uno con comillas simples, que se escriben con la tecla que hay
junto al cero en el teclado. Ahora ya sabe que si intentas poner otro valor
distinto a esos te saldrá un error.
Qué, a que parece que se mucho de esto? Ja ja ja, lo cierto es que lo acabo
de leer en la parte de abajo de esa misma pantalla del PhpNyAdmin, je je je
je. Mira, pone esto:
Cotejamiento
Esta palabra tan rara es para indicar qué tipo de codificación queremos usar
para los valores de estos campos. Si fueras chino necesitarias codificar los datos
con un tipo de cotejamiento que admitiera los símbolos chinos, al igual que si
fueras musulman o en definitiva si quisieras escribir con signos raros. Nosotros
no somos tan normales tampoco, pues querremos aceptar la ñ o los acentos en
nuestros valores (aunque no suelas usarlos... je je je), así que tendremos que
escoger el tipo de cotejamiento adecuado.
Si abres el desplegable verás que se muestran un montón de tipos que por
supuesto no voy a explicar uno por uno, je je je. Nos conformaremos con saber
que tomando uno de ellos no tendremos problemas con nuestros valores.
Escogeremos el tipo de cotejamiento "utf8_spanish_ci" quedando así nuestro
ejemplo:
Atributos
Atributos es el nombre de la siguiente columna. Si haces clic en su
desplegable verás los valores que podemos dar en esa columna a cada campo.
Nos son demasiados, gracias a.... Rasmus Lerdorf!!, creador del PHP. Qué cultos
somos en CCTW verdad? (y que bueno es saber buscar en Google, je je je je je).
Predeterminado
Esta tampoco es dificil. En la columna de "predeterminado" podemos escribir
el valor que queremos que tenga cada campo cuando aún no le hemos escrito
otro distinto. Por ejemplo, si usamos esta tabla para pedir la información a los
usuarios a través de un formulario, los valores que no escriba el visitante en el
formulario serán sustituidos por los valores por defecto o predeterminados que
señalemos aquí.
Optaremos por colocar Activo de forma predeterminada en el campo ESTADO
de forma que a menos que cambiemos el valor por Inactivo, el usuario será
Activo de forma predeterminada. Además escribimos http:// en el campo URL.
En el resto no se me ocurre poner nada ahora mismo. Quedaría así entonces:
Extra, AI o AutoIncremento
No sufras, ya queda menos, je je je. Míralo por el lado bueno, y es que ya has
aprendido un montón de cosas de bases de datos, no? En la columna "Extra" solo
tenemos una opción que tomar. Si abres el desplegable verás que solo podemos
escoger el valor "auto_increment". Esta característica indica que cada vez que
se introduzca un valor en la tabla, este valor se generará automáticamente
sumando uno al último valor que existe en la base de datos.
Según la versión de PhpMyAdmin que tengas, quizás no te aparezca eso de
Extra, sino otro campo llamado A_I o AutoIncrement. Pero todas ellas significan
y funcionan del mismo modo.
Por ejemplo, si uno de los campos es un número y le activamos el
"auto_increment", si el primer valor de la tabla tiene el número uno el siguiente
que introduzcamos tomará el número dos automáticamente y así
sucesivamente. Lo usaremos en el campo ID. Así, sin necesidad de darle ningún
valor, el servidor le irá dando números consecutivos, desde el 001.
En el resto de campos no tiene sentido así que lo dejamos en blanco para el
resto.
Y los Comentarios
No, no es que os vaya a comentar algo ahora, ya he escrito bastante, no? Je
je je. Comentarios es el nombre de la última (por fin!) columna de valores que
hay que definir al crear una tabla nueva. Afortunadamente esta columna no es
obligatorio completarla. Se usa para añadir alguna nota tuya que te sirva para
aclararte un poco. Por el momento no la vamos a utilizar, ya está bien, y
tenemos ganas de terminar esta parte de una vez, verdad) ja ja ja. Pues eso,
la dejamos en blanco.