Saltar a contenido

Podemos crear una nueva tabla especificando el nombre de la tabla, junto con todos los nombres de la columna y sus tipos:

CREATE TABLE weather (
    city            varchar(80),
    temp_lo         int,           -- low temperature
    temp_hi         int,           -- high temperature
    prcp            real,          -- precipitation
    date            date
);

Podemos entrar esto en psql con los avances de línea. psql reconocerá que el comando no se termina hasta el punto y coma.

Los espacios blanco (es decir, espacios, tabuladores y avances de línea) se pueden utilizar libremente en comandos SQL. Eso significa que podemos escribir el comando alineado de manera diferente, o incluso todo en una línea. Los dos guiones -- permiten presentar comentarios. Lo que les sigue es ignorado hasta el final de la línea. SQL es insensible a las mayúsculas y minúsculas y también sus identificadores, excepto cuando los identificadores se enmarcan con dobles comillas para preservar las mayúsculas/minúsculas (no se hace arriba).

varchar(80)especifica un tipo de datos que puede almacenar cadenas de caracteres arbitrarias de hasta 80 caracteres de longitud.

int es el tipo entero normal.

real es un tipo para almacenar números de punto flotante de una sola precisión.

date debe ser autoexplicativo. (Sí, la columna de tipo date también se nombra date. Esto puede ser conveniente o confuso.)

PostgreSQL soporta el estándar de tipos SQL int, smallint, real, double precision, char(N), varchar(N), date, time, timestamp y interval, así como otros tipos de utilidad general y un rico conjunto de tipos geométricos. PostgreSQL se puede personalizar con un número arbitrario de tipos de datos definidos por el usuario. Por lo tanto, los nombres de tipo no son palabras clave en la sintaxis, excepto cuando sea necesario para apoyar casos especiales en el SQL estándar.

El segundo ejemplo almacenará las ciudades y su ubicación geográfica asociada:

CREATE TABLE cities (
    name            varchar(80),
    location        point
);

El tipo point es un ejemplo de un tipo de datos PostgreSQL específico.

Por último, debe mencionarse que si no se necesita una tabla por más tiempo o se desea recrearla de manera diferente se puede eliminar usando el siguiente comando:

DROP TABLE tablename;

Ejercicios

1.- Crear una tabla llamada employees con columnas para id, first_name, last_name, email y hire_date. Usar los tipos de datos apropiados para cada columna.

Solución

CREATE TABLE employees (
  id INTEGER, 
  firs_name VARCHAR(50),
  last_name VARCHAR(50), 
  email VARCHAR(100),
  hire_date DATE
);

2.- Crea una tabla llamada products con las siguientes columnas:

  • product_id de tipo entero para almacenar un identificador único para cada producto.
  • name de tipo texto para almacenar el nombre del producto.
  • price de tipo numérico con precisión 10 y escala 2 para almacenar el precio del producto con 2 dígitos decimales.
  • stock de tipo entero para almacenar la cantidad en stock de ese producto.
  • arrival_date de tipo fecha para almacenar la fecha en que ese producto ingresó al inventario.

Utiliza los tipos de datos adecuados para cada columna.

Solución

CREATE TABLE products (
  product_id INTEGER,      -- product unique indentificator
  name VARCHAR(100),
  price DECIMAL(10,2),     -- price in 10 digits and 2 decimals
  stock INTEGER,
  arrival_date DATE        -- arrival product date
);