Bases de datos
En este capitulo conoceremos los fundamentos de bases de datos trabajadas con Postgresql.
¿Qué es una DB?
- DB: data base o base de datos.
- Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.
- Resumen: Guardar y leer datos pero de forma ordenada.
Tipos de bases de datos
- Bases de datos relacionales.
- Bases de datos NoSQL.
- Bases de datos orientadas a objetos.
- Bases de datos distribuidas.
- etc más info
Bases de datos relacionales
- Las bases de datos relacionales se basan en el modelo relacional
- Una forma intuitiva y directa de representar datos en tablas.
- Cada tabla utiliza filas y columnas.
Bases de datos no relacionales
- noSQL: la información se organiza normalmente mediante documentos y es muy útil cuando no tenemos un esquema exacto de lo que se va a almacenar.
DBMS
- Sistema gestor de base de datos (Database Management System).
- Resumen: Software que nos permite gestionar las bases de datos.
- Administrar, acceder, controlar permisos, respaldar, crear informes.etc.
- Este sistema (DBMS) necesita de alguna manera consultar estos datos y para ello una alternativa es utilizar SQL.
SQL
- SQL (Structured Query Language): lenguaje de consulta estructurada, diseñado para administrar, y recuperar información de sistemas de gestión de bases de datos relacionales.
- si un DBMS utiliza SQL sería "Un sistema de gestión de bases de datos relacionales" (RDBMS, por sus siglas en inglés).
- SQL es el lenguaje más común para realizar consultas en base de datos.
Conclusión
- En RDBMS (software) creas y administras las bases de datos, utilizando SQL para las consultas.
RDBMS populares
- Oracle
- MySQL
- Microsoft SQL Server
- PostgreSQL
- IBM Db2
- SQLite
- Microsoft Access
- MariaDB
PostgreSQL
- postgresql.org
- PostgreSQL, también llamado Postgres, es un sistema de gestión de bases de datos relacional orientado a objetos y de código abierto, publicado bajo la licencia PostgreSQL, similar a la BSD o la MIT.
- Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre o apoyados por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).
- descargar
- doc
TIP
Existen dos maneras de trabajar, una es con SQL Shell y la otra es a través de pgAdmin 4, esta última nos permite hacer todo de manera visual.
Comandos de navegación en SQL Shell
sh
\l -> listar DBs
\q -> exit
\c nombreDB -> cambiar de base de datos
\dt -> listar tablas
Crear DB
sh
CREATE DATABASE prueba;
\c prueba
SQL
Diagrama entidad relación:
CREATE
sql
CREATE TABLE usuarios(
nombre VARCHAR(100) NOT NULL,
edad INT,
descripcion TEXT,
id_usuario SERIAL,
PRIMARY KEY (id_usuario)
);
SELECT * FROM usuarios;
sql
CREATE TABLE tareas(
id_tarea SERIAL PRIMARY KEY,
id_usuario INT NOT NULL,
titulo VARCHAR(50) NOT NULL,
fecha DATE DEFAULT CURRENT_DATE,
estado BOOLEAN DEFAULT false,
FOREIGN KEY (id_usuario) REFERENCES usuarios(id_usuario)
);
SELECT * FROM tareas;
ALTER
Agregar columna:
sql
ALTER TABLE tareas
ADD descripcion TEXT;
Eliminar:
sql
ALTER TABLE tareas
DROP descripcion;
Cambiar tipo de dato:
sql
ALTER TABLE tareas
ALTER COLUMN descripcion SET DATA TYPE VARCHAR(500);
Cambiar nombre columna:
sql
ALTER TABLE tareas
RENAME COLUMN titulo TO cabecera;
INSERT
sql
INSERT INTO usuarios(nombre, edad, descripcion)
VALUES (
'alex',
50,
'me gusta la programación'
);
sql
INSERT INTO tareas(id_usuario, titulo)
VALUES (
1,
'Componer una canción'
);
SELECT * FROM tareas;
UPDATE
sql
UPDATE usuarios
SET nombre = 'Felipe 2'
WHERE id_usuario = 3;
DELETE
sql
DELETE FROM usuarios
WHERE id_usuario = 3;
WARNING
ERROR: update o delete en «usuarios» viola la llave foránea «tareas_id_usuario_fkey» en la tabla «tareas»
DETAIL: La llave (id_usuario)=(2) todavía es referida desde la tabla «tareas». SQL state: 23503