Programación y ejemplos de PHP, jQuery, HTML5, WordPress, MySQL, AMP y htaccess


CREATE TABLE MySQL: Crear una tabla en una base de datos

Extenso post para repasar la sentencia CREATE TABLE de MySQL, su funcionalidad es la de crear una tabla con todas sus características en una base de datos MySQL.

Tras crear una base de datos los tipos de dato que podemos guardar son:

Otras sentencias para trabajar con tablas son:

Veamos a las diferentes sintaxis que tenemos tener en la creación de una tabla extraídas de su web oficial.

Sintaxis básica de la sentencia CREATE TABLE de MySQL

Vamos a ir viendo las sintaxis de los diferentes tipos de columnas que puede pueden tener las tablas en MySQL:

Con el código superior tenemos la sentencia estandar para crear la tabla, solamente tenemos que poner el nombre de la tabla, nombre de la columna y su tipo.

Podemos tener una base de datos con numerosas tablas, por lo que al crear una nueva podemos tener una existente con el mismo nombre. Para evitar problemas debemos usar la sentencia ‘IF NOT EXIST‘:

Quedando una estructura similar a esta:

Definición de la tabla

Vamos con la sintaxis para definir las diferentes definiciones que se pueden hacer sobre la tabla:

CONSTRAINT es una restricción, el nombre de la restricción debe ser única en la base de datos. Estas exigen la integridad de los datos de las clumnas de la tabla.

Explico cada opción del código superior:

  • PRIMARY KEY: Solo se puede crear una primary key por tabla, es la clave primaria que identifica de manera única cada registro/fila de la tabla. Por ejemplo el documento de identidad DNI de una persona.
  • INDEX|KEY: Ambas son sinónimas, puede haber una o varias. Establecen los íncides de la tabla con los cuales se pueden agilizar las búsquedas en la base de datos. De esta manera se evita la búsqueda de un parámetro por cada columna de la tabla. Es como un índice de un libro con el que nos evitamos recorrer cada página.
  • UNIQUE: Es una restricción por la cual el valor de dicha columna debe ser único y diferente al del valor de dicha columna de resto de registros. Por ejemplo se suele usar con las columnas declaradas como primary key.
  • FULLTEXT: Es un íncide que solo funciona con las columnas con formato char, varchar, text y con alamcenamiento MyISAM. Este índice facilita las grandes búsquedas sobre texto y realiza automáticamente comparaciones de texto sobre una cadena dada. Realiza búsquedas más afinadas que la sentencia LIKE. Se ignoran las palabras con menos de 4 letras y las palabras que aparezcan en más del 50% de los registros.
  • FOREIGN KEY: Clave foránea, es un índice por el cual podemos relacionar 2 tablas. Este valor debe existir en ambas tablas, por ejemplo el código postal de la tabla ‘usuarios’ y la tabla ‘población’.

Si necesitáis más info sobre los índices UNIQUE, FULLTEXT, INDEX, PRIMARY KEY podéis consultar este post:

En este otro post explico cómo eliminar índices:

Definición de columnas

Vamos con la sintaxis de las definiciones de columna de la sentencia de CREATE TABLE MySQL

Os explico las opciones:

  • NOT NULL | NULL: Establecemos si el valor de la columna debe rellenarse obligatoriamente o no.
  • AUTO_INCREMENT: Establece un valor incial para un incremento posterior con la inserción de cada nuevo registro.
  • COMMENT: Comentario a modo informativo de la columna.
  • COLUMN_FORMAT: Establece la ocupación de la columna, FIXED para un valor fijo, DYNAMIC para un valor variable y DEFAULT para una coupación por defecto.
  • STORAGE: Posibilidad de almacenamiento en memoria o disco.

Tipos de dato de cada columna de la tabla

Los diferentes tipos de dato de una tabla MySQL son los que ya repasamos en varios post anteriores y que menciono arriba:

La sintaxis sería la siguiente:

Ejemplo para crear una tabla en MySQL con CREATE TABLE

Aquí os pongo un ejemplo de una sentencia SQL para crear la tabla en una base de datos MySQL:

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies