Curso
Una base de datos modela entidades del mundo real, como profesores y universidades, almacenándolas en tablas. Cada tabla contiene datos de un único tipo de entidad. Así se reduce la redundancia al guardar cada entidad solo una vez. Por ejemplo, solo hace falta una fila con los datos de una empresa concreta. Además, una base de datos permite modelar las relaciones entre entidades.
SQL son las siglas de Structured Query Language, el lenguaje estándar para almacenar, manipular y recuperar datos en una base de datos relacional.
SQL es el lenguaje estándar de los sistemas de bases de datos relacionales. Todos los sistemas de gestión de bases de datos relacionales (RDBMS) como MySQL, MS Access, Oracle, Sybase, Informix, Postgres y SQL Server usan SQL como lenguaje principal.
Base de datos PostgreSQL
information_schema es una metabase que contiene información sobre tu base de datos actual. No es exclusivo de PostgreSQL y también está disponible en otros gestores como MySQL o SQL Server. information_schema incluye varias tablas que puedes consultar con la sintaxis conocida SELECT * FROM:
- tables: información sobre todas las tablas de tu base de datos actual
- columns: información sobre todas las columnas de todas las tablas de tu base de datos actual
SELECT table_schema, table_name
FROM information_schema.tables;
table_schema | table_name
-------------------+------------------------------
pg_catalog | pg_statistic
pg_catalog | pg_type
pg_catalog | pg_policy
pg_catalog | pg_authid
pg_catalog | pg_shadow
public | university_professors
pg_catalog | pg_settings
...
Comandos en SQL
Lenguaje de definición de datos (DDL)
- CREATE: crea una tabla nueva o una vista de una tabla.
- ALTER: modifica una tabla existente.
- DROP: elimina por completo una tabla u otros objetos de la base de datos.
Lenguaje de manipulación de datos (DML)
- SELECT: extrae determinados registros de una o varias tablas.
- INSERT: crea un registro en una tabla existente.
- UPDATE: modifica un registro existente de la tabla.
- DELETE: borra registros de la tabla, e incluso puede eliminarla por completo.
Consultar las columnas de una tabla concreta
information_schema también almacena información sobre columnas en la tabla "columns". Una vez conozcas el nombre de una tabla, puedes consultar sus columnas accediendo a la tabla "columns".
SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_name = 'pg_config';
table_name | column_name | data_type
-----------+-------------+-----------
pg_config | name | text
pg_config | setting | text
Aquí ves que la tabla del sistema pg_config tiene solo dos columnas: previsiblemente para almacenar pares nombre-valor.
Ejemplo interactivo
En este ejercicio, solo necesitarás información del esquema 'public', que aparece como la columna table_schema de las tablas tables y columns. El esquema 'public' contiene información sobre tablas y bases de datos definidas por el usuario. Los otros tipos de table_schema contienen información del sistema; aquí solo nos interesan los objetos definidos por el usuario.
Obtendrás información sobre todos los nombres de tabla de la base de datos actual limitando tu consulta al 'public' table_schema.
## Consulta la tabla correcta en information_schema
SELECT table_name
FROM information_schema.tables
## Especifica el valor correcto de table_schema
WHERE table_schema = 'public';
Al ejecutar el código anterior, se obtiene el siguiente resultado:

Para aprender más sobre bases de datos relacionales en SQL, echa un vistazo a este vídeo de nuestro curso Introduction to Relational Databases in SQL.
Este contenido está extraído del curso Introduction to Relational Databases in SQL de DataCamp, por Timo Grossenbacher.
Descubre también nuestro tutorial Introduction to Indexing in SQL.

