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
);