Unidad II : Como crear una base de datos en MySQL

¿Cómo crear una base de datos en MySQL?



Es posible crear una base de datos MySQL de diferentes formas, ya sea desde la línea de comandos o desde aplicaciones de gestión de bases de datos como phpMyAdmin. Vamos a ver los métodos más comunes.

¿Crear una base de datos MySQL desde la línea de comandos?

Para crear la base de datos utilizaremos la aplicación mysql, mediante la cual podremos introducir las consultas necesarias. Debes seguir estos pasos:

  1. Accede a MySQL desde la línea de comandos como usuario root. Puedes hacerlo mediante este comando:
    mysql -u root -p
  2. Se te pedirá la contraseña de usuario root. Introdúcela y se mostrará el prompt de mysql.
  3. Para crear una base de datos escribe el siguiente comando, reemplazando base_de_datos por el nombre que le quieras dar a la base de datos:
    CREATE DATABASE base_de_datos;
  4. Para ejecutar consultas sobre esta base de datos debes seleccionarla ejecutando el siguiente comando, reemplazando base_de_datos por el nombre de la base de datos:
    USE base_de_datos;
  5. Ya puedes ejecutar consultas. A modo de ejemplo vamos a crear la siguiente tabla:
    CREATE TABLE IF NOT EXISTS empleados (
        id int(11) NOT NULL AUTO_INCREMENT,
        nombre varchar(50),
        apellido varchar(50),
        PRIMARY KEY (id)
    );
  6. Ahora vamos a ejecutar esta consulta para insertar algunos datos:
    INSERT INTO empleados ( id, nombre, apellido ) VALUES ( null, 'Diego', 'Rodriguez' );

Ya hemos creado la base de datos con una tabla, que utilizará el motor MySQL establecido por defecto. Si quieres especificar el motor MySQL de la tabla, puedes indicarlo agregando el modificador ENGINE al final de la sentencia CREATE TABLE. Veamos un ejemplo en el que asignamos el motor InnoDB:

CREATE TABLE IF NOT EXISTS empleados (...); ENGINE InnoDB;

Si no quieres especificar el motor cada vez que crees una tabla, consulta esta guía acerca de como cambiar el monitor MySQL por defecto.

Otra consideración es que no es recomendable que utilices el usuario root de MySQL, ya que es inseguro que esta contraseña esté en los aechivos de tu servidor. Por este motivo, también vamos a ver cómo crear un nuevo usuario en MySQL y cómo darle privilegios de acceso a la base de datos.

Para crear un usuario debes seguir estos pasos:

  1. Al igual que antes accede a MySQL como root.
    mysql -u root -p
  2. Utiliza el siguiente comando, reemplazando usuario por el nombre que le quieras dar al usuario y pass por la contraseña que escojas:
    CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'pass';
  3. Ahora debemos darle a este usuario permisos sobre la base de datos que hemos creado. Puedes hacerlo con este comando:
    GRANT ALL PRIVILEGES ON base_de_datos.* TO 'usuario'@'localhost'

Si lo prefieres, también puedes hacer que el usuario tenga ciertos permisos, estando estos limitados además a algunas tablas.


¿Crear una base de datos MySQL con un Script?

Mientras que en al apartado anterior hemos visto cómo crear una base de datos e insertar bases de datos en ella escribiendo por separado los diferentes comandos, ahora veremos cómo hacerlo todo a la vez con un script SQL. Sigue estos pasos:

Primero debes crear un script con cualquier editor de texto. Seguidamente, copia y pega estas consultas en el archivo, reemplazando base_de_datos por el nombre de la base de datos que quieres crear.

CREATE DATABASE base_de_datos;
USE base_de_datos;
CREATE TABLE IF NOT EXISTS empleados (
    id int(11) NOT NULL AUTO_INCREMENT,
    nombre varchar(50),
    apellido varchar(50),
    PRIMARY KEY (id)
);
INSERT INTO empleados ( id, nombre, apellido ) VALUES ( null, 'Diego', 'Rodriguez' );

Obviamente, puedes crear la tabla que prefieras e insertar los datos oportunos. También puedes crear múltiples bases de datos a la vez.

Guarda el archivo, al que llamaremos ejemplo.sql.

La aplicación de mysql también acepta archivos como parámetro. Para que MySQL lo procese, usa mysql del siguiente modo:

mysql -u root -p < ejemplo.sql

Puedes utilizar el usuario root u otro usuario MySQL existente.

La aplicación procesará el archivo línea por línea. Cuando termine, ya estará la base de datos creada, incluyendo los datos que hemos descrito en el archivo.


¿Crear una base de datos MySQL con phpMyAdmin?

Para poder crear nuestra primera base de datos podemos interactuar con phpMyAdmin. En caso de haber utilizado el XAMPP, EASYPHP o APPSERV la URL que escribimos será:

http//localhost/phpmyadmin/

Dependiendo del emulador pedirá que nos identifiquemos con un usuario y clave de MySQL, en algunos casos el usuario suele ser "root" y la contraseña en vacío, en otros casos el usuario y contraseña se declaran durante la instalación.

Una vez identificados, se nos permitirá el acceso al phpMyAdmin. Tengamos en cuenta que si no utilizamos la base por más de 1440 segundos (24 minutos) nos pedirá que ingresemos nuevamente nuestro usuario y clave para MySQL.

Con el phpMyAdmin abierto, lo primero que vamos a hacer ahora es crear una nueva base de datos (mucho hostings ya traen preinstalada una, con lo cual en esos hostings nos saltearemos este paso, y directamente usaríamos la base que ya exista).

En cambio, localmente (en nuestro servidor de pruebas) podremos crear una nueva base de datos para cada proyecto en el que estemos trabajando.

Para crear una nueva base de datos, dentro del phpMyAdmin escribiremos (en la zona que se resalta a continuacion) el nombre que le queremos dar (vamos a denominarla "cursos"):

Creación nueva base

Hagamos, paso a paso, lo que nos muestra este ejemplo: dentro del campo de texto escribamos cursos (en minúsculas), puses ese será el nombre de nuestra nueva base de datos.

Luego de escribir el nombre, elegimos el juego de caracteres que almacenaremos (para textos en español será el utf8_spanish_ci, que corresponde al español tradicional, y permite que utilicemos la ñ y la ch y ll).

Si tuviéramos que crear una base para un cliente coreano, japonés, árabe, chino, ect; debemos elegir el correspondiente juego de caracteres:

Base de datos cursos

Finalmente, pulsamos el botón Crear y, a continuación, el nombre de la base recién creada aparecerá en la columna de la izquierda, debajo del mundo de selección que nos muestra todas las bases de datos que tengamos en nuestro servidor, así como también aparece el nombre de la base de datos activa en la ruta superior (breadcrumb o migas de pan) que siempre nos indica donde estamos parados:

Base de datos cursos creada

Seguramente, coincidiremos en que ha sido muy fácil. Ya hemos creado nuestra primera base de datos.

Pero antes de seguir avanzando, comprobemos que sucedió en el nivel "físico" de nuestro disco rígido al crear esta nueva base.

Si hemos usado el XAMPP podremos entrar con el programa Mi PC (o cualquier otro explorador de archivos), hasta llegar a C:/servidor/XAMPP/mysql/data/ y allí encontraremos una carpeta por cada base de datos que hayamos creado; en este caso, vemos, al lado de las bases que vienen por defecto, nuestra nueva base "cursos":

Nota:

La ruta puede variar con base en el emulador que se encuentre usando

Archivos físicos base de datos cursos

¿Crear una tabla?

En este punto, ya estamos listos para crear nuestra primera tabla dentro de nuestra flamante base de datos (recordemos que una base de datos es una simple carpeta que organiza nuestras tablas, pero los lugares donde se almacenan realmente los datos son las tablas).

Para ello, primero haremos un clic en la columna izquierda, sobre el nombre de la base dentro de la cual queremos crear una tabla (nuetra base llamada "cursos" aún no tiene ninguna tabla creada).

Esto recargara la parte derecha de la pantalla, y veremos un mensaje avisando que todavía no hay tablas en la base:

Archivos físicos base de datos cursos

Ahora podremos crear una tabla muy fácilmente en la base de datos, simplemente escribiendo el nombre de la tabla que creamos y la cantidad de campos (columnas) que deseamos que posea.

Esto lo indicaremos en los campos de formulario remarcados en la figura anterior.

Como primer ejemplo, crearemos una tabla llamada "mensajes" cuyo fin será almacenar el nombre, el correo electrónico y un mensaje que irán dejando los usuarios en un típico formulario de consultas de nuestro sitio web.

Es decir, a primera vista parecería que la nueva tabla solo necesitaría tener tres campos, uno para cada dato que almacenará (nombre, correo y mensaje); pero en las bases de datos siempre se utilizara un campo extra, cuyo valor debe ser único en cada registro, siempre diferente, constituyéndose en un codigo que permitirá identificar cada registro de forma inequivoca e irrepetible. A este campo extra se lo suele denominar id (ya que cumple la función de identificador de cada registro), por lo cual tendremos cuatro campos: id, nombre, email y mensaje.

Crear una table en la base de datos

Luego de pulsar el botón Continuar, aparecerá la siguiente pantalla, en la que tendremos que escribir los nombres de cada uno de los cuatro campos o columnas que tendrá nuestra tabla. Hagamoslo paso a paso.

1. En el primer campo de texto, justo debajo del titulo que dice "Campo", escribiremos el nombre de cada campo (id, nombre, email, mensaje), en ese orden, uno debajo de otro, todos en la primera columna.

Nombre de campos de tabla en base de datos

2. En la segunda columna, denominada Tipo, elegiremos el tipo de dato que podrá almacenar cada uno de estos campos. Ya veremos muy pronto otros tipos de datos posibles, pero por ahora adelantemos que los tipos de datos normalmente mas utilizados son INT (integer, es decir, números enteros, sin decimales, como los que precisa el campo id), VARCHAR (variable carácter o caracteres variables, que almacena letras y números, hasta un máximo de 255 caracteres, como los necesarios para los campos nombre y email), y TEXT (para textos mayores de 255 caracteres, como los de nuestro campo mensaje). Así que elegiremos estos tipos de datos en la columna "Tipo":

Tipo de datos en base de datos

3. En tercera columna, definiremos la cantidad máxima de caracteres que almacenara cada campo (cuatro dígitos para el id- suponemos que no tendremos nunca más de 9999 mensajes-), 60 dígitos para cada "nombre" y cada "mail", agregaremos que en los campos de tipo TEXT como "mensaje" no deberemos poner nada en longitud, ya que debe quedar vacía.

Longitud de campo en base de datos

4. Ahora nos desplazamos hacia la derecha de pantalla. En la columna Nulo, si dejamos de sin marcar la casilla de selección, haremos que es campo sea NOT NULL; es decir, será obligatorio que le completemos algún valor cuando agreguemos un registro.

Si no queremos que esto sea obligatorio y que se pueda dejar vacio y que se añada igual el registro completo con el resto de campos que si se hubieran completado, entonces marcamos esa casilla de selección, lo que equivale a definir ese campo como potencialmente NULL, osea que pueda ser nulo o vacio.

Por ahora, determinamos todos los campos como NOT NULL, es decir, no se permitirá valores nulos (vacios) en ninguno de los campos cuando pretendamos insertar un nuevo registro.

Para eso, no tenemos nada que hacer, ya que por defecto las casillas están desmarcadas:

Campos nulos y clave primaria en base de datos

5. Ahora, exclusivamente en el reglon pertenece al campo id (el primero) deberemos elegir en la columna Indice la opción Primary, tal como vamos en la imagen anterior, lo que indica que ese campo será el que identificara cada registro de forma única será su clave primaria.

Además de lado del menú de selección, marcaremos la casilla con la abreviatura A_I (Auto Increment), que hace que el contenido o "valor" de este campo id, sea completado automáticamente cada vez que agreguemos un registro, con números que se iran incrementando de uno en uno, sin repetirse nunca.

No nos preocuparemos por ahora sino logramos captar la totalidad de estos detalles, volveremos sobre ellos en próximos ejemplos.

6. Ahora pulsemos el botón Grabar o Guardar.

Campos nulos y clave primaria en base de datos

Y una vez hacho esto ¡Ya tenemos nuestra primera tabla completamente lista para usar!


Comentarios

Entradas populares de este blog

Unidad X : UPDATE - DELETE

Unidad VII : USO DEL AS, UPPER Y LOWER