MySQL: instrucción CREAR TABLA

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

MySQL: instrucción CREAR TABLA

Este tutorial de MySQL explica cómo usar MySQL crear declaración de tabla Con sintaxis y ejemplos.

describir

La instrucción MySQL CREATE TABLE le permite crear y definir tablas.

sintaxis

La forma más simple de la instrucción CREATE TABLE en MySQL es:

CREATE TABLE table_name
( 
  column1 datatype [ NULL | NOT NULL ],
  column2 datatype [ NULL | NOT NULL ],
  ...
);

Sin embargo, la sintaxis completa de la instrucción MySQL CREATE TABLE es:

CREATE [ TEMPORARY ] TABLE [IF NOT EXISTS] table_name
( 
  column1 datatype [ NULL | NOT NULL ]
                   [ DEFAULT default_value ]
                   [ AUTO_INCREMENT ]
                   [ UNIQUE KEY | PRIMARY KEY ]
                   [ COMMENT 'string' ],

  column2 datatype [ NULL | NOT NULL ]
                   [ DEFAULT default_value ]
                   [ AUTO_INCREMENT ]
                   [ UNIQUE KEY | PRIMARY KEY ]
                   [ COMMENT 'string' ],
  ...

  | [CONSTRAINT [constraint_name]] PRIMARY KEY [ USING BTREE | HASH ] (index_col_name, ...)

  | [INDEX | KEY] index_name [ USING BTREE | HASH ] (index_col_name, ...)

  | [CONSTRAINT [constraint_name]] UNIQUE [ INDEX | KEY ] 
        [ index_name ] [ USING BTREE | HASH ] (index_col_name, ...)

  | {FULLTEXT | SPATIAL} [ INDEX | KEY] index_name (index_col_name, ...)

  | [CONSTRAINT [constraint_name]] 
        FOREIGN KEY index_name (index_col_name, ...)
        REFERENCES another_table_name (index_col_name, ...)
        [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
        [ ON DELETE { RESTRICT | CASCADE | SET NULL | NO ACTION } ]
        [ ON UPDATE { RESTRICT | CASCADE | SET NULL | NO ACTION } ]

  | CHECK (expression)

    {ENGINE | TYPE} = engine_name
  | AUTO_INCREMENT = value
  | AVG_ROW_LENGTH = value
  | [DEFAULT] CHARACTER SET = charset_name
  | CHECKSUM = {0 | 1}
  | [DEFAULT] COLLATE = collation_name
  | COMMENT = 'string'
  | DATA DIRECTORY = 'absolute path'
  | DELAY_KEY_WRITE = { 0 | 1 }
  | INDEX DIRECTORY = 'absolute path'
  | INSERT_METHOD = { NO | FIRST | LAST }
  | MAX_ROWS = value
  | MIN_ROWS = value
  | PACK_KEYS = {0 | 1 | DEFAULT}
  | PASSWORD = 'string'
  | RAID_TYPE = { 1 | STRIPED | RAIDO }
       RAID_CHUNKS = value
       RAID_CHUNKSIZE = value
  | ROW_FORMAT = {DEFAULT | DYNAMIC | FIXED | COMPRESSED}
  | UNION = (table1, ... )
);

parámetro o parámetro

Temporal opcional. Especifica que la tabla es una tabla temporal. Opcional si no está presente. Si se especifica, la instrucción CREATE TABLE no generará un error si la tabla ya existe. table_name El nombre de la tabla que desea crear. column1, column2 Las columnas que desea crear en la tabla.tipo de datos

El tipo de datos de la columna, que puede ser uno de los siguientes:

valor
personaje [ (length) ] [ CHARACTER SET charset_name ] [ COLLATE collation_name ]
VARCHAR [ (length) ] [ CHARACTER SET charset_name ] [ COLLATE collation_name ]
binario [ (length) ]
VARBINARIO (longitud)
fecha
hora
marca de tiempo
fecha y hora
año
pequeño sonido [ (length) ] [ UNSIGNED ] [ ZEROFILL ]
PHS [ (length) ] [ UNSIGNED ] [ ZEROFILL ]
medio [ (length) ] [ UNSIGNED ] [ ZEROFILL ]
EN T [ (length) ] [ UNSIGNED ] [ ZEROFILL ]
entero [ (length) ] [ UNSIGNED ] [ ZEROFILL ]
entero grande [ (length) ] [ UNSIGNED ] [ ZEROFILL ]
verdadero [ (length, decimals) ] [ UNSIGNED ] [ ZEROFILL ]
doble [ (length, decimals) ] [ UNSIGNED ] [ ZEROFILL ]
flotador [ (length, decimals) ] [ UNSIGNED ] [ ZEROFILL ]
decimal [ (length, [ decimals ]) ] [ UNSIGNED ] [ ZEROFILL ]
número [ (length, [ decimals ]) ] [ UNSIGNED ] [ ZEROFILL ]
pequeña mota
lugar
bloque medio
bloque largo
texto pequeño [ BINARY ] [ CHARACTER SET charset_name ] [ COLLATE collation_name ]
texto [ BINARY ] [ CHARACTER SET charset_name ] [ COLLATE collation_name ]
texto chino [ BINARY ] [ CHARACTER SET charset_name ] [ COLLATE collation_name ]
ensayo largo [ BINARY ] [ CHARACTER SET charset_name ] [ COLLATE collation_name ]
enumeración (valor1, valor2, …) [ CHARACTER SET charset_name ] [ COLLATE collation_name ]

NULL o NOT NULL Cada columna debe definirse como NULL o NOT NULL. Si se omite este parámetro, la base de datos asume NULL como valor predeterminado. DEFAULT valor_predeterminado Opcional. Si se deja en blanco o NULL, es el valor asignado a la columna. AUTO_INCREMENT Opcional. Establece la columna como un campo autonumérico. El nombre de la restricción es opcional. El nombre de la restricción si define una clave principal, una restricción única o una clave externa. index_col_name

Electivo. Es la siguiente sintaxis:

column_name [ (length) ] [ ASC | DESC ]

notas

  • Solo puede haber una columna en la tabla establecida en AUTO_INCREMENT, y esa columna debe ser la clave principal.

ejemplo

Veamos un ejemplo de MySQL CREATE TABLE.

CREATE TABLE contacts
( contact_id INT(11) NOT NULL AUTO_INCREMENT,
  last_name VARCHAR(30) NOT NULL,
  first_name VARCHAR(25),
  birthday DATE,
  CONSTRAINT contacts_pk PRIMARY KEY (contact_id)
);

Este ejemplo de MySQL CREATE TABLE crea una tabla llamada contactos con 4 columnas y una clave principal:

  • La primera columna, llamada contact_id, se crea como tipo de datos INT (longitud máxima de 11 bits) y no puede contener valores NULL. Está configurado en un campo AUTO_INCREMENT, lo que significa que es un campo de numeración automática (comienza en 1 y se incrementa en 1, a menos que se especifique lo contrario).
  • La segunda columna, llamada last_name, es un tipo de datos VARCHAR (hasta 30 caracteres) y no puede contener valores NULL.
  • La tercera columna, llamada first_name, es un tipo de datos VARCHAR (hasta 25 caracteres) y puede contener valores NULL.
  • La cuarta columna se llama Cumpleaños, que es un tipo de datos de FECHA y puede contener valores NULL.
  • La clave principal se llama contactos_pk y se establece en la columna contact_id.

A continuación, creemos una tabla con valores predeterminados.

CREATE TABLE suppliers
( supplier_id INT(11) NOT NULL AUTO_INCREMENT,
  supplier_name VARCHAR(50) NOT NULL,
  account_rep VARCHAR(30) NOT NULL DEFAULT 'TBD',
  CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id)
);

Este ejemplo de MySQL CREATE TABLE crea una tabla denominada proveedores con 3 columnas y una clave principal:

  • La primera columna, llamada id_proveedor, se crea como un tipo de datos INT (longitud máxima de 11 bits) y no puede contener valores NULL. Se establece en el campo AUTO_INCREMENT.
  • La segunda columna se denomina nombre del proveedor, es un tipo de datos VARCHAR (longitud máxima de 50 caracteres) y no puede contener valores NULL.
  • La tercera columna, denominada account_rep, es un tipo de datos VARCHAR (longitud máxima de 30 caracteres) y no puede contener valores NULL. Si no se proporciona ningún valor para esta columna, el valor predeterminado será “pendiente”.
  • La clave principal se llama pk_proveedores y se establece en la columna id_proveedor.
(Visited 3 times, 1 visits today)