En Po­s­t­gre­S­QL, el comando CREATE TABLE se utiliza para crear nuevas tablas dentro de una base de datos. Cuando se utiliza este comando, también se definen di­re­c­ta­me­n­te di­fe­re­n­tes es­pe­ci­fi­ca­cio­nes para la tabla y sus columnas in­di­vi­dua­les.

¿Qué es Po­s­t­gre­S­QL CREATE TABLE?

El comando CREATE TABLE se usa en Po­s­t­gre­S­QL para crear una nueva tabla en una base de datos existente. Al hacerlo, siempre se define un nombre único y exclusivo en la base de datos para la tabla y sus re­s­pe­c­ti­vas columnas. Las columnas también reciben cada una un nombre y el tipo de datos que deben contener al final. También se pueden definir re­s­tri­c­cio­nes tanto para columnas concretas como para todas ellas durante la creación.

Consejo

Si más adelante quieres modificar la co­n­fi­gu­ra­ción de la tabla, puedes utilizar el comando ALTER TABLE dentro del sistema gestor de base de datos para pe­r­so­na­li­zar columnas concretas cuando sea necesario.

Sintaxis y fu­n­cio­na­li­dad de CREATE TABLE

La sintaxis básica de Po­s­t­gre­S­QL CREATE TABLE es la siguiente:

CREATE TABLE nombre_de_la_tabla(
columna1 tipo_de_dato PRIMARY KEY, 
columna2 tipo_de_dato, 
columna3 tipo_de_dato, 
... 
);
po­s­t­gre­s­ql

Primero se utiliza el comando principal CREATE TABLE para ordenar a Po­s­t­gre­S­QL que cree una nueva tabla. A co­n­ti­nua­ción, se le asigna un nombre único. Los nombres de las columnas in­di­vi­dua­les y la de­fi­ni­ción de los tipos de datos pe­r­mi­ti­dos aparecen seguidos entre pa­ré­n­te­sis.

Si quieres incluir re­s­tri­c­cio­nes (co­n­s­trai­nts), la sintaxis cambia y sería así:

CREATE TABLE nombre_de_la_tabla( 
columna1 tipo_de_dato PRIMARY KEY restricción, 
columna2 tipo_de_dato restricción, 
columna3 tipo_de_dato restricción, 
... 
);
po­s­t­gre­s­ql

Además de PRIMARY KEY, Po­s­t­gre­S­QL admite los si­guie­n­tes tipos de re­s­tri­c­cio­nes:

  • NOT NULL: de esta forma te aseguras de que la columna re­s­pe­c­ti­va no contenga ningún valor NULL.
  • UNIQUE: puedes definir esta re­s­tri­c­ción para ase­gu­rar­te de que todos los valores de una columna o co­m­bi­na­ción de columnas son únicos.
  • CHECK: utiliza CHECK para definir las co­n­di­cio­nes que deben cumplirse al insertar o ac­tua­li­zar datos.
  • FOREIGN KEY: esta re­s­tri­c­ción es necesaria para es­ta­ble­cer re­la­cio­nes con una columna de otra tabla.
  • DEFAULT: define un valor por defecto para una columna si no se es­pe­ci­fi­ca un valor explícito al insertar.
Se­r­vi­do­res dedicados
Re­n­di­mie­n­to e in­no­va­ción
  • Pro­ce­sa­do­res de última ge­ne­ra­ción
  • Hardware dedicado de alto re­n­di­mie­n­to
  • Centros de datos con ce­r­ti­fi­ca­ción ISO

Ejemplo práctico de Po­s­t­gre­S­QL CREATE TABLE

La fu­n­cio­na­li­dad de CREATE TABLE en Po­s­t­gre­S­QL se hace más clara si consigues en­te­n­de­r­la a partir de un ejemplo práctico. Para ello, vamos a crear una nueva tabla llamada “Lista de clientes”. Ini­cia­l­me­n­te debería contener cuatro columnas: “ID”, “Nombre”, “País” y “Dirección”. Definimos “ID” como PRIMARY KEY y las columnas de “ID” y “Nombre” no deben quedar vacías. El código co­rre­s­po­n­die­n­te es el siguiente:

CREATE TABLE lista_de_clientes(
ID INT PRIMARY KEY NOT NULL,
Nombre VARCHAR(50) NOT NULL,
País VARCHAR(50),
Dirección VARCHAR(255)
);
po­s­t­gre­s­ql

La base de datos creará ahora una tabla vacía con este nombre y las columnas que has definido, que po­s­te­rio­r­me­n­te podrás rellenar con valores. La salida de la tabla co­m­ple­ta­da sería algo parecido a esto:

ID Nombre País Dirección
1 Mario Martínez España Calle Mayor 1, 12345 Madrid
2
3

Ver tablas creadas con \d

Para ase­gu­rar­se de que la acción Po­s­t­gre­S­QL con CREATE TABLE ha fu­n­cio­na­do con éxito, puedes utilizar el comando \d. Este te muestra todas las tablas dentro de una base de datos. Así es como se utiliza:

testdb-# \d
po­s­t­gre­s­ql

También puedes utilizar el comando para obtener una de­s­cri­p­ción más detallada de una tabla es­pe­cí­fi­ca. Para disponer de una lista de todas las es­pe­ci­fi­ca­cio­nes de nuestro ejemplo anterior, utilízalo de la siguiente manera:

testdb-# \d
po­s­t­gre­s­ql
Ir al menú principal