Skip to the content.

Curso PostgreSQL

Autor: Luis Fernando Apáez Álvarez

Creación de tablas

Una vez que ya creamos nuestra base de datos nos iremos a la parte que dice Schemas (esquemas)

donde en automático se creó el esquema public el cual será en el que trabajaremos. Además podemos ver otras opciones, las cuales representan la materia prima de este curso, es decir, a lo largo del curso abordaremos la creación de tablas, funciones, triggers, procedimientos, manejaremos secuencias, crearemos vistas, etcétera.

Ahora bien, en public daremos click derecho y después seleccionaremos donde dice Query tool

lo que nos desplegará una ventana a la derecha donde podremos trabajar propiamente con el lenguaje SQL

Antes de crear nuestra primer tabla es preciso que definamos un proyecto en el cual trabajaremos a lo largo de este curso para que éste vaya tomando forma. Elegimos trabajar en una base de datos referente a una papelería.

Con base en lo anterior consideramos, inicialmente, las siguientes tres tablas:

Ahora bien, la sintaxis para crear una tabla es la siguiente

CREATE TABLE <<nombre de la tabla>>(
	<<nombre columna 1>>  <<tipo de dato>>,
	<<nombre columna 2>>  <<tipo de dato>>,
	.
	.
	.
	<<nombre columna n>>  <<tipo de dato>>);

A partir de lo anterior abordamos el siguiente subtema:

Tipo de datos

Podemos utilizar datos nativos de PostgreSQL para almacenar nuestros valores. Por ejemplo, si deseamos almacenar un entero como el 7, utilizaremos para ello el tipo de dato INT (integer); si deseamos almacenar un nombre como ‘Luis’ (note que las cadenas de texto deben ir entre comillas simples) utilizaremos el tipo de dato, por ejemplo, VARCHAR. Así, tendremos gran variedad de tipos de datos de acuerdo a la necesidad de los valores que queramos almacenar.

Para la tabla Productos ocuparemos 4 columnas:

La última columna es la más importante de todas, que de hecho se debe definir primero, y esta es independiente del contexto de la tabla. Es decir, esta columna debe ponerse en la mayoría de todas las tablas que definamos y la cual nos servirá para identificar cada fila de nuestra tabla de forma eficiente. Imaginemos que en la tabla Productos tenemos algo como

nombre_producto cantidad_almacen precio
Lápiz Big 20 0.50
Lápiz Pelikan 2 1.00

si bien al colocar la marca del lápiz hemos evitado el siguiente conflicto

nombre_producto cantidad_almacen precio
Lápiz 20 0.50
Lápiz 2 1.00

tenemos que la opción de poner la marca no es la más eficiente, donde el concepto de eficiencia en base de datos es crucial pues recordemos que en la vida real las bases de datos tienes millones de filas.

Así, si tenemos en su lugar un identificador (id) para cada fila podremos manejar sin problemas tablas del estilo:

id_producto nombre_producto cantidad_almacen precio
1 Lápiz 20 0.50
2 Lápiz 2 1.00

lo cual nos permitiría identificar dos tipos de lápiz aunque el nombre sea el mismo.

Si bien, con la última versión de la tabla productos seguimos teniendo una tabla que puede ser mejorada, el punto es dar la idea de porqué es importante tener un identificador en la mayoría de las tablas, con lo cual conseguimos un buen manejo de los datos que se almacenan en dicha tabla. Por ende consideramos la columna:

Procedemos pues a crear la tabla productos como sigue

CREATE TABLE productos(
	id_productos SERIAL,
	cantidad_almacen INT,
	precio REAL);

y después daremos click en ejecutar:

lo que nos arrojará en la parte de abajo el siguiente mensaje

que indica que nuestro código se ha ejecutado exitosamente en un tiempo de un segundo con 68 segundos. Si hubiera fallado algo en nuestro código, en esa misma parte nos hubiera marcado un mensaje indicándonos el posible error que cometimos. Así, nuestra tabla productos ha quedado guardada en nuestra base de datos

Para las tablas restantes utilizamos el siguiente código:

-- Esto es un comentario :)

-- Definición de la tabla empleados
CREATE TABLE empleados(
	id_empleados SERIAL,
	nombre VARCHAR,
	app VARHCAR,	-- apellido paterno
	apm VARCHAR,	-- apellido materno
	puesto VARCHAR,
	salario REAL	-- note que en la última columna no ponemos una coma al final
	);
	
-- Definición de la tabla ventas
CREATE TABLE ventas(
	id_ventas SERIAL,
    producto_vendido VARCHAR,
    cantidad INT,
    total REAL,
    empleado VARCHAR	-- empleado involucrado en la venta
);

note que para ejecutar un código en postgre debemos de seleccionarlo previamente como se ve en la siguiente imagen


Ejercicio

Nota

El código completo empleado en la clase se encuentra en el respectivo repositorio de github.

Regresar