Creacion de tablas mediante SQL de MySQL

Las tablas son las estructuras de datos básicas en cualquier base de datos relacional. Una tabla es una colección organizada de registros (o filas), todas ellas con los mismos atributos (columnas o campos). Las columnas de la tabla describen la estructura de la misma y las restricciones de integridad describen los datos que son validos dentro de la misma. La sentencia SQL para la creación de tablas en MySQL es CREATE TABLE que tiene la siguiente sintaxis básica:

CREATE [TEMPORARY] TABLE [IF NO EXISTS] nombre_tabla
( definición de columnas,…)
[ opciones de tabla ]
[ [IGNORE | REPLACE] ] sentencia de selección.

La parte de la sentencia CREATE TABLE definición de columnas tiene la siguiente sintaxis:

{ nombrer_columna tipo_de_datos
[ NOT NULL | NULL ] [DEFAULT valor_predeterminado ]
[ AUTO_INCREMENT ] [ PRIMARY KEY ] [ referencia ]
PRIMARY KEY ( columna_indice )
KEY [ nombre_indice ] (columna_indice )
INDEX [ nombre_indice ] (columna_indice )
UNIQUE [ INDEX ] [ nombre_indice ] (columna_indice )
[ CONSTRAINT nombre ] FOREING KEY [ nombre_indice ] (columna_indice ) [ referencia ]
CHECK ( expresión) }

La parte de la sentencia CREATE TABLE referencia tiene la siguiente sintaxis:

REFERENCES nombre_tabla [ ( columnas_indice) ]
[ ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT } ]
[ ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT } ]
[ MATCH FULL | MATCH PARTIAL

TEMPORARY indica que la tabla que se crea solamente existe hasta que finalice la conexión del índice actual. IF NOT EXISTS provoca que no se cree la tabla si existe otra con el mismo nombre y que no haya errores.

NULL | NOT NULL son palabras claves que determinan si se permiten o no valores nulos (NULL) en la columna. NULL no es estrictamente una restricción, pero se puede especificar de la misma manera que NOT NULL. DEFAULT indica el valor predeterminado para la columna. AUTO_INCREMENT se usa solamente para columnas de tipo entero indica que su valor se incrementa en 1 y se va incrementando de unidad en unidad. PRIMARY KEY es una restricción que exige la integridad de entidad para una o varias columnas dadas a través de un índice único. Sólo se puede crear una restricción PRIMARY KEY por cada tabla. UNIQUE es una restricción que proporciona la integridad de entidad para una o varias columnas dadas a través de un índice único. Una tabla puede tener varias restricciones UNIQUE.

CONSTRAINT es una palabra clave opcional que indica el principio de la definición de una restricción PRIMARY KEY, NOT NULL, FOREING KEY o CHECK. Las restricciones son propiedades que exigen la integridad de los datos y pueden crear índices para la tabla y sus columnas. El argumento nombre es el nombre de una restricción. El nombre de la restricción debe ser único en la base de datos.

FOREING KEY …REFERENCES es una restricción que proporciona integridad referencial para los datos de la columna o columnas. Las restricciones FOREING KEY requieren que cada valor de la columna existe en la columna de referencia correspondiente de la tabla a la que se hace referencia. Las restricciones FOREING KEY pueden hacer referencia sólo a columnas que sean PRIMARY KEY o UNIQUE en la tabla de referencia o a columnas a las que se haga referencia en UNIQUE INDEX en la tabla de referencia. El argumento nombre_indice es el nombre de la restricción FOREING KEY, el argumento columna_indice es una columna o lista de columnas de la tabla actual a la que hace referencia la restricción FOREING KEY. El argumento nombre_tabla es el nombre de la tabla externa a la que hace referencia la restricción FOREING KEY y el argumento columnas_indice es una columna o lista de columnas de la tabla externa a la que referencia la restricción FOREING KEY. INDEX y KEY son sinónimos y establecen índices que pueden contener valores duplicados de modo que el índice se basa en las columnas citadas en columnas_indice y cada una de ellas debe ser una columna de nombre_tabla.

ON DELETE { CASCADE | NO ACTION } especificada que acción tiene lugar en una fila de la tabla creada, si esa fila tiene una relación referencial y la fila a la que hace referencia se elimina de la tabla primaria. El valor determinado es NO ACTION. Si se especifica CASCADE y se elimina una fila de la tabla primaria, también se elimina la fila de la tabla desde donde se hace referencia. Si se especifica NO ACTION, SQL Server genera un error y se deshace la acción de eliminación en la tabla primaria.

ON UPDATE { CASCADE | NO ACTION } especifica que acción tiene lugar en una fila de la tabla creada; si esa fila tiene una relación referencial y la fila a la que se hace referencia se actualiza en la tabla primaria. El valor predeterminado es NO ACTION. Si se especifica CASCADE la fila se actualiza en la tabla de referencia si esa fila se actualiza en la tabla primaria. Si se especifica NO ACTION SQL Server genera un error y se deshace la acción de actualización en la fila de la tabla primaria. CHECK es una restricción que exige la integridad del dominio al limitar los valores posibles que se pueden escribir en una o varias columnas.

Fuente: MySQL para Windows y Linux 2a edición.
Autor: César Pérez.
Edit.: Alafaomega Ra-Ma.

2 thoughts on “Creacion de tablas mediante SQL de MySQL

  1. buena pagina, lo que buscaba realmente es hacerlo pero en el entorno grafico de phpMyadmin…..es más sencillo pero hago una prueba…

    Gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s