En este laboratorio, exploraremos la creación de tablas y los tipos de datos en PostgreSQL. El objetivo es comprender los tipos de datos fundamentales como los enteros, el texto, las fechas y los booleanos, que son cruciales para definir las estructuras de las tablas y garantizar la integridad de los datos.
Nos conectaremos a la base de datos PostgreSQL utilizando psql, crearemos tablas con claves primarias utilizando SERIAL, y añadiremos restricciones básicas como NOT NULL y UNIQUE. Luego inspeccionaremos la estructura de la tabla e insertaremos datos para demostrar el uso de diferentes tipos de datos como INTEGER, SMALLINT, TEXT, VARCHAR(n), y CHAR(n).
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
postgresql(("PostgreSQL")) -.-> postgresql/PostgreSQLGroup(["PostgreSQL"])
postgresql/PostgreSQLGroup -.-> postgresql/table_init("Create Basic Table")
postgresql/PostgreSQLGroup -.-> postgresql/col_int("Add Integer Column")
postgresql/PostgreSQLGroup -.-> postgresql/col_text("Add Text Column")
postgresql/PostgreSQLGroup -.-> postgresql/col_date("Add Date Column")
postgresql/PostgreSQLGroup -.-> postgresql/key_primary("Set Primary Key")
postgresql/PostgreSQLGroup -.-> postgresql/row_add("Insert One Row")
postgresql/PostgreSQLGroup -.-> postgresql/data_all("Select All Data")
postgresql/PostgreSQLGroup -.-> postgresql/col_add("Add New Column")
subgraph Lab Skills
postgresql/table_init -.-> lab-550901{{"Creación de Tablas y Tipos de Datos en PostgreSQL"}}
postgresql/col_int -.-> lab-550901{{"Creación de Tablas y Tipos de Datos en PostgreSQL"}}
postgresql/col_text -.-> lab-550901{{"Creación de Tablas y Tipos de Datos en PostgreSQL"}}
postgresql/col_date -.-> lab-550901{{"Creación de Tablas y Tipos de Datos en PostgreSQL"}}
postgresql/key_primary -.-> lab-550901{{"Creación de Tablas y Tipos de Datos en PostgreSQL"}}
postgresql/row_add -.-> lab-550901{{"Creación de Tablas y Tipos de Datos en PostgreSQL"}}
postgresql/data_all -.-> lab-550901{{"Creación de Tablas y Tipos de Datos en PostgreSQL"}}
postgresql/col_add -.-> lab-550901{{"Creación de Tablas y Tipos de Datos en PostgreSQL"}}
end
Explorar los Tipos de Datos de PostgreSQL
En este paso, exploraremos algunos de los tipos de datos fundamentales disponibles en PostgreSQL. Comprender los tipos de datos es crucial para definir las estructuras de las tablas y garantizar la integridad de los datos. Cubriremos tipos comunes como enteros, texto, fechas y booleanos.
Primero, conectémonos a la base de datos PostgreSQL. Abre una terminal y usa el comando psql para conectarte a la base de datos postgres como el usuario postgres. Dado que el usuario postgres es el superusuario predeterminado, es posible que necesites usar sudo para cambiar a ese usuario primero.
sudo -u postgres psql
Ahora deberías estar en la terminal interactiva de PostgreSQL. Verás un prompt como postgres=#.
Ahora, exploremos algunos tipos de datos básicos.
1. Tipos de Enteros (Integer Types):
PostgreSQL ofrece varios tipos de enteros con diferentes rangos. Los más comunes son INTEGER (o INT) y SMALLINT.
INTEGER: Una opción típica para la mayoría de los valores enteros.
SMALLINT: Se utiliza para valores enteros más pequeños para ahorrar espacio.
Creemos una tabla simple para demostrar estos tipos:
CREATE TABLE integer_example (
id SERIAL PRIMARY KEY,
quantity INTEGER,
small_quantity SMALLINT
);
Aquí, SERIAL es un tipo especial que genera automáticamente una secuencia de enteros, lo que lo hace adecuado para claves primarias (primary keys).
Ahora, inserta algunos datos:
INSERT INTO integer_example (quantity, small_quantity) VALUES (100, 10);
INSERT INTO integer_example (quantity, small_quantity) VALUES (2000000, 32767);
CREATE TABLE boolean_example (
id SERIAL PRIMARY KEY,
is_active BOOLEAN
);
Inserta datos:
INSERT INTO boolean_example (is_active) VALUES (TRUE);
INSERT INTO boolean_example (is_active) VALUES (FALSE);
Ver los datos:
SELECT * FROM boolean_example;
Salida (Output):
id | is_active
----+-----------
1 | t
2 | f
(2 rows)
Finalmente, sal de la terminal psql:
\q
Ahora has explorado algunos de los tipos de datos fundamentales en PostgreSQL. Estos tipos de datos forman los bloques de construcción para crear esquemas de bases de datos robustos y bien definidos.
Crear Tablas con Claves Primarias (Primary Keys)
En este paso, aprenderemos cómo crear tablas con claves primarias en PostgreSQL. Una clave primaria es una columna o un conjunto de columnas que identifica de forma única cada fila en una tabla. Impone la unicidad y sirve como un elemento crucial para la integridad de los datos y las relaciones entre las tablas.
Primero, conectémonos a la base de datos PostgreSQL. Abre una terminal y usa el comando psql para conectarte a la base de datos postgres como el usuario postgres.
sudo -u postgres psql
Ahora deberías estar en la terminal interactiva de PostgreSQL.
Comprendiendo las Claves Primarias (Understanding Primary Keys)
Una clave primaria tiene las siguientes características:
Debe contener valores únicos.
No puede contener valores NULL.
Una tabla puede tener solo una clave primaria.
Creando una Tabla con una Clave Primaria (Creating a Table with a Primary Key)
Hay dos formas comunes de definir una clave primaria al crear una tabla:
Usando la restricción PRIMARY KEY dentro de la definición de la columna:
En este ejemplo, product_id se define como la clave primaria utilizando la restricción PRIMARY KEY. La palabra clave SERIAL crea automáticamente una secuencia para generar valores enteros únicos para el product_id.
Esto demuestra la restricción de clave primaria en acción, evitando valores duplicados.
Finalmente, sal de la terminal psql:
\q
Ahora has creado con éxito una tabla con una clave primaria y has observado cómo impone la unicidad. Este es un concepto fundamental en el diseño de bases de datos.
Agregar Restricciones Básicas (NOT NULL, UNIQUE)
En este paso, aprenderemos cómo agregar restricciones básicas a las tablas en PostgreSQL. Las restricciones son reglas que imponen la integridad y la consistencia de los datos. Nos centraremos en dos restricciones fundamentales: NOT NULL y UNIQUE.
Primero, conectémonos a la base de datos PostgreSQL. Abre una terminal y usa el comando psql para conectarte a la base de datos postgres como el usuario postgres.
sudo -u postgres psql
Ahora deberías estar en la terminal interactiva de PostgreSQL.
Comprendiendo las Restricciones (Understanding Constraints)
Las restricciones se utilizan para limitar el tipo de datos que se pueden insertar en una tabla. Esto garantiza la precisión y la fiabilidad de los datos en la base de datos.
1. Restricción NOT NULL
La restricción NOT NULL garantiza que una columna no pueda contener valores NULL. Esto es útil cuando una información particular es esencial para cada fila de la tabla.
2. Restricción UNIQUE
La restricción UNIQUE garantiza que todos los valores en una columna sean distintos. Esto es útil para las columnas que deben tener identificadores o valores únicos, como nombres de usuario o direcciones de correo electrónico (además de la clave primaria).
Agregando Restricciones Durante la Creación de la Tabla (Adding Constraints During Table Creation)
Puedes agregar restricciones cuando creas una tabla. Creemos una tabla llamada employees con restricciones NOT NULL y UNIQUE:
CREATE TABLE employees (
employee_id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
hire_date DATE
);
En esta tabla:
employee_id es la clave primaria.
first_name y last_name se declaran como NOT NULL, lo que significa que deben tener un valor para cada empleado.
email se declara como UNIQUE, lo que garantiza que cada empleado tenga una dirección de correo electrónico única.
Ahora, intentemos insertar algunos datos que violen estas restricciones.
Intentando insertar un valor NULL en una columna NOT NULL:
employee_id | first_name | last_name | email | hire_date
-------------+------------+-----------+---------------------+------------
1 | John | Smith | [email protected] | 2023-10-27
2 | Jane | Doe | [email protected] | 2023-10-28
(2 rows)
Finalmente, sal de la terminal psql:
\q
Ahora has creado con éxito una tabla con restricciones NOT NULL y UNIQUE y has observado cómo imponen la integridad de los datos.
Inspeccionar la Estructura de la Tabla (Inspect Table Structure)
En este paso, aprenderemos cómo inspeccionar la estructura de las tablas en PostgreSQL. Comprender la estructura de una tabla, incluidos los nombres de las columnas, los tipos de datos, las restricciones y los índices, es esencial para consultar y manipular los datos de manera efectiva.
Primero, conectémonos a la base de datos PostgreSQL. Abre una terminal y usa el comando psql para conectarte a la base de datos postgres como el usuario postgres.
sudo -u postgres psql
Ahora deberías estar en la terminal interactiva de PostgreSQL.
El comando \d
La herramienta principal para inspeccionar la estructura de la tabla en psql es el comando \d (describe - describir). Este comando proporciona información detallada sobre una tabla, incluyendo:
Inspeccionemos la estructura de la tabla employees que creamos en el paso anterior:
\d employees
Salida (Output):
Table "public.employees"
Column | Type | Collation | Nullable | Default
-------------+------------------------+-----------+----------+------------------------------------------------
employee_id | integer | | not null | nextval('employees_employee_id_seq'::regclass)
first_name | character varying(50) | | not null |
last_name | character varying(50) | | not null |
email | character varying(100) | | |
hire_date | date | | |
Indexes:
"employees_pkey" PRIMARY KEY, btree (employee_id)
"employees_email_key" UNIQUE CONSTRAINT, btree (email)
La salida proporciona la siguiente información:
Table "public.employees": Indica el nombre de la tabla y el esquema (schema).
Column: Enumera los nombres de las columnas (employee_id, first_name, last_name, email, hire_date).
Type: Muestra el tipo de datos de cada columna (integer, character varying, date).
Nullable: Indica si una columna puede contener valores NULL (not null o en blanco).
Default: Muestra el valor predeterminado para una columna (si existe).
Indexes: Enumera los índices definidos en la tabla, incluida la clave primaria (employees_pkey) y la restricción única en la columna email (employees_email_key).
Inspeccionando otras tablas
Puedes usar el comando \d para inspeccionar cualquier tabla en la base de datos. Por ejemplo, para inspeccionar la tabla users creada en el paso 2:
Para listar todas las tablas en la base de datos actual, puedes usar el comando \dt:
\dt
Salida (Output) (variará según las tablas que hayas creado):
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+----------
public | boolean_example | table | postgres
public | customers | table | postgres
public | datetime_example | table | postgres
public | employees | table | postgres
public | integer_example | table | postgres
public | products | table | postgres
public | text_example | table | postgres
public | users | table | postgres
(8 rows)
Finalmente, sal de la terminal psql:
\q
Ahora has aprendido cómo inspeccionar la estructura de las tablas en PostgreSQL usando los comandos \d y \dt. Esta es una habilidad fundamental para comprender y trabajar con bases de datos.
Resumen (Summary)
En este laboratorio, exploramos los tipos de datos fundamentales de PostgreSQL, centrándonos en los enteros y el texto. Aprendimos sobre INTEGER y SMALLINT para almacenar valores enteros, comprendiendo sus diferentes rangos y casos de uso. También examinamos TEXT, VARCHAR(n) y CHAR(n) para manejar datos de texto, observando las distinciones entre cadenas de longitud variable y longitud fija.
Además, practicamos la creación de tablas utilizando estos tipos de datos, incluido el uso de SERIAL para generar automáticamente secuencias de clave primaria. Insertamos datos de muestra en las tablas y verificamos los datos utilizando sentencias SELECT, solidificando nuestra comprensión de cómo se comportan estos tipos de datos en un contexto práctico de base de datos.