domingo, 10 de abril de 2016

Primeros Pasos en MySQL - Crear tablas en MySQL

Buenas tardes queridos lectores, en este post, veremos como crear tablas en las bases de datos y como relacionarlas con otras tablas, vamos a ver primero un ejemplo muy básico, y después veremos ejemplos más complicados, al final armaremos una base de datos totalmente funcional, y muy ilustrativa, ya lo verán, espero acompañar a este post con un video, para continuar con el curso. Pero vamos a pasar a lo que nos interesa que es a aprender a crear tablas en MySQL.

Crear una tabla en MySQL

Para crear una tabla en MySQL , debemos primeramente tener creada la base de datos y tiene que estar activa, asi que recordaremos uno de los comandos vistos la lección anterior que era create database, aunque ahora lo veremos con un poco más de detalle. 

Create Database acepta tres parámetros:

CREATE DATABASE db_name
    [[DEFAULT] CHARACTER SET charset_name]
    [[DEFAULT] COLLATE collation_name]

db_name: Es el nombre de nuestra base de datos
charset_name: Es el juego de caracteres predeterminado de la base de datos
collation_name: Es la codificación de caracteres de la base de datos.

El único parámetro obligatorio es db_name, los otros dos son opcionales, entonces crearemos primeramente una base de datos llamada  PAISES.

CREATE DATABASE PAISES
CHARACTER SET latin1
COLLATE latin1_swedish_ci;

Con esto creamos la base de datos, y ahora nos aseguraremos de que se encuentre creada, y para ello utilizaremos la sentencia SHOW DATABASES;

SHOW databases;

Al ejecutar la sentencia show databases el HeidiSQL nos devuelve el siguiente resultado:

Como podemos observar, la tabla paises se creo sin problema alguno, ahora el siguiente paso será la creación de las tablas. Para la creación de las tablas sería importante realizar un diagrama con los campos que llevarán las tablas, ese diagrama es llamado ENTIDAD-RELACION (ER), no lo vamos a hacer en este curso, pero es importante su conocimiento. La base de datos debe contener indudablemente la tabla PAIS y CIUDAD, por el momento para el ejemplo utilizaremos solo estas dos tablas. Vemos que llevará cada una

PAIS
  • Codigo de País
  • Nombre de País
  • Fecha de Independencia
CIUDAD
  • Codigo de Ciudad
  • Nombre Ciudad
  • Pais al que pertenece
  • ¿Capital?
Para crear las tablas en la base de datos, primero debemos asegurarnos que tenemos activa la base de datos creada, y para eso utilizaremos el comando


use paises;

Con ese comando, seleccionamos la base de datos paises y empezamos a trabajar sobre ella, crearemos la primer tabla con el comando CREATE TABLE 

CREATE TABLE IF NOT EXISTS PAIS
(cod_pais char (4) PRIMARY KEY,
nombre varchar(50),
fecha_independencia date);


Los nombres de los campos, cod_pais es el nombre del campo para el código de país, veamos que su código es char(4) esto indica que su código siempre tendra 4 caracteres, PRIMARY KEY, significa que el campo primario, una tabla solo puede tener un sola llave primaria, es el identificador, no puede haber dos registros iguales, ya que generaría duplicidad, una llave primaria esta compuesta por un solo campo o por varios, pero solo habrá una llave primaria por tabla, en este caso, el codigo de país, será la llave primaria de manera que no podrá haber dos paises con código MEX, lo veremos un poco mas adelante en los ejemplos. Nombre es el campo que almacenará el nombre del país, tiene un tipo de dato varchar lo cual es variable máximo de 50, en el caso de MEXICO, tiene solo 6 letras, por lo que solo ocupará 6 espacios, a diferencia de char que es ancho es de 4 y en el caso del codigo MEX que es de 3  caracteres, la base de datos siempre dirá que es de 4. Fecha_idependencia, este es el campo de la tabla que guardará la fecha de independencia del país, es de tipo date porque lo que guardrá no son textos ni números, sino que son fechas.

Al ejecutar el script nos crea la base de datos correctamente.

Para comprobar la estructura de la tabla ejecutaremos el siguiente script

describe pais;

El comando describe nos hace una referencia de lo que es la tabla, así como se muestra en la siguiente imagen:

Ya tenemos creada la tabla PAIS, ahora crearemos la tabla ciudad

create table CIUDAD
(cod_ciudad varchar(4) PRIMARY KEY,
nombre varchar(50),
cod_pais char(4),
capital bool,
CONSTRAINT cod_pais_fk FOREIGN KEY (cod_pais) REFERENCES pais (cod_pais));

Al ejecutar el script nos crea la base de datos correctamente.

Para comprobar la estructura de la tabla ejecutaremos el siguiente script

describe ciudad;


cod_ciudad: Es el campo de la tabla que utilizaremos para grabar el codigo de la ciudad, que será valor de texto variable
nombre: Es el campo para guardar el nombre de la ciudad, con un texto de 50 caracteres como máximo,
cod_pais: Es el campo para guardar el país al que pertenece la ciudad, tiene que ser del mismo tipo y del mismo ancho que el campo principal de la tabla padre, en este caso cod_pais de la tabla PAIS
capital: Es el campo de la base de dato que indica si la ciudad es capital de pais o no lo es y su tipo es bool, el tipo de datos bool solo puede guardar un true/false, es el de los llamdos campos bandera,
CONSTRAINT es la instrucción donde le indicamos a MySQL como relacionaremos nuestras tablas, le idicamos que el campo cod_pais, de la tabla CIUDAD hace referencia a la tabla pais en su campo (cod_pais), cod_pais_fk es el nombre de la llave foránea, vamos a entender mas adelante estos términos, ya que su uso es muy importante.
CONSTRAINT cod_pais_fk FOREIGN KEY (cod_pais) REFERENCES pais (cod_pais));

Pero ¿como saber que tipo de dato es el campo?. Les dejo un listado de los tipos de datos permitidos

 BIT[(length)]
  | TINYINT[(length)] [UNSIGNED] [ZEROFILL]
  | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
  | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
  | INT[(length)] [UNSIGNED] [ZEROFILL]
  | INTEGER[(length)] [UNSIGNED] [ZEROFILL]
  | BIGINT[(length)] [UNSIGNED] [ZEROFILL]
  | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | DATE
  | TIME[(fsp)]
  | TIMESTAMP[(fsp)]
  | DATETIME[(fsp)]
  | YEAR
  | CHAR[(length)] [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | VARCHAR(length) [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | BINARY[(length)]
  | VARBINARY(length)
  | TINYBLOB
  | BLOB
  | MEDIUMBLOB
  | LONGBLOB
  | TINYTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | TEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | MEDIUMTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | LONGTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | ENUM(value1,value2,value3,...)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | SET(value1,value2,value3,...)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | JSON
  | spatial_type

 Hast aquí el post queridos lectores, espero pronto publicar el video de este post, espero haya sido de utilidad y de su agrado, espero comenten, den +1, compartan o den clic en algún anuncio que les interese, hsta la próxima



Banderas de Visitantes

Flag Counter