# PostgreSQL de 0 a ninja

¡Bienvenido al curso de PostgreSQL desde cero! Este curso está diseñado para ayudarte a aprender a manejar bases de datos utilizando PostgreSQL, desde los fundamentos hasta niveles más avanzados.

En este curso, comenzaremos desde el nivel más básico, donde te familiarizarás con la instalación y configuración de PostgreSQL. Luego, avanzaremos a través de una serie de lecciones detalladas, donde aprenderás sobre la estructura de las bases de datos, cómo crear y gestionar tablas y cómo utilizar las consultas para extraer información de ellas.

Además, a lo largo del curso, se te presentarán distintas actividades para reforzar los conceptos aprendidos. Estas actividades te permitirán aplicar lo que has aprendido y ponerlo en práctica, para que puedas comprender mejor los conceptos y estar seguro de que los has asimilado correctamente.

Además, ofrecemos la posibilidad de enviar tus actividades para ser corregidas por un experto a través del correo electrónico **<corrijeme@nuridocu.es>**, de modo que puedas recibir feedback personalizado sobre tus avances.

Este curso está diseñado para cualquier persona que quiera aprender a manejar bases de datos con PostgreSQL, independientemente de su nivel de experiencia previa. Así que, si eres nuevo en PostgreSQL o tienes experiencia previa en bases de datos, ¡este curso es para ti!

¡Empezamos!

> :warning: **ADVERTENCIA** es importante tener en cuenta que en este curso no se abordará el diseño conceptual ni el diseño relacional de bases de datos.
>
> :soon: **ANUNCIO** proximamente nuevo curso "Diseño de Bases de Datos"

## Pruebas de nivel

Aquí encontrarás una serie de pruebas para evaluar tu nivel de conocimiento en diferentes temas. También tendrás ejercicios a lo largo de los temas y pruebas finales.

> :warning: **ADVERTENCIA** Recuerda que estas pruebas son solo una ayuda para evaluar tu nivel y no deben tomarse como la verdad absoluta.

* [01\_repaso\_inicial](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/ejercicios/01_repaso_inicial.md)
* [02\_ejer\_select](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/ejercicios/enunciados/02_ejer_select.md)
* 02.01\_ejer\_select

***

## Indice de contenidos

* Tutorial básico
* [Conceptos iniciales](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md)
  * [Introducción a las bases de datos](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#introducci%C3%B3n-a-las-bases-de-datos)
  * [¿Qué es una base de datos?](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#%C2%BFqu%C3%A9-es-una-base-de-datos)
  * [Tipos de bases de datos](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#tipos-de-bases-de-datos)
  * [Lenguajes de bases de datos](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#lenguajes-de-bases-de-datos)
  * [Fases para el diseño de bases de datos](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#fases-para-el-dise%C3%B1o-de-bases-de-datos)
  * [Modelos de bases de datos](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#modelos-de-bases-de-datos)
  * [Partes de una base de datos](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#partes-de-una-base-de-datos)
  * [Tipos de relaciones](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#tipos-de-relaciones)
  * [Tipos de claves](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#tipos-de-claves)
  * [Tipos de campos](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#tipos-de-campos)
  * [Expresiones y operadores](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#expresiones-y-operadores)
  * [Sistema gestor de base de datos](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#sistema-gestor-de-base-de-datos-sgbd-o-dbms)
  * [Comandos básicos iniciales](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/_PUBLIC/teoria/01_inicio.md#postgresql-b%C3%A1sicos)
* Tablas conceptos
  * Partes de una tabla
  * Aspectos importantes y recomendaciones
    * Nombre de la tabla
    * Definir la estructura de la tabla
    * Establecer las claves primarias y foráneas
    * Especificar las restricciones de integridad
    * Optmizar el rendimiento
    * Realizar copias de seguridad y pruebas
    * Pasos para la creación de una tabla
* Definición de datos
* Manejando bases de datos
* Manejando tablas
* Manejando vistas
* Manejando campos
* Manejando relaciones
* Manejando restricciones
* Manejando datos
* Select
  * all/DISTINCT
  * Where
  * Operadores
  * Limit
  * Into outfile
  * ASC/DESC
  * Order by
* Unión, intersección y diferencia
* Multitabla
* Agrupamiento
  * Group by
  * Having
* Subconsultas
* Join
  * On
  * Outer
  * Left
  * Right
  * Full
  * Natural
* Disparadores (triggers)
* Comandos transaccionales y bloqueos de tabla
* Variables de usuario
* Funciones
* PL/pgSQL
* Usuarios y permisos

## ¿Cómo corrijo mis ejercicios?

Existen dos formas:

* En cada actividad propuesta hemos añadido una tarea extra donde, si la resuelves encontrarás el link a el documento con las soluciones :wink:
* Envíanos un email a **<corrijeme@nuridocu.es>** para que un experto en la materia pueda corregirlos personalmente y enviarte el feedback con las soluciones.

Chequea el apartado de introducción donde explicamos como [corregir los ejercicios](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/README.md#requisitos-para-enviar-ejercicios)

## Tengo algunas dudas ¿Cómo las resuelvo?

El grupo de expertos está disponible para discutir e intentar solucionar todas las dudas que tengas. Tan sólo es necesario que no escribas un email a **<corrijeme@nuridocu.es>**, siguiendo el asunto obligatorio, donde nos expliques tus dudas.

Chequea el apartado de introducción donde explicamos como [contactar con el grupo de expertos para aclarar las dudas](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/README.md#requisitos-para-enviar-dudas)

## Licencia y uso

Echa un vistazo al apartado donde hablamos de ello en la introduccion [ver licencia y uso del contenido](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/README.md#licencia-y-uso)

## Meme de PostgreSQL :grin:

![meme\_postgresql](https://gitlab.com/Nuria_Liano/skilly/-/blob/master/postgresql/img/meme_postgresql.jpg)
