



Bases de Datos
En resumen...

Una Base de Datos es una colección de información, que persiste en el tiempo y podemos consultar
Ejemplos de Bases de Datos
- Un cuaderno
- Una agenda
- Una biblioteca
- Una planilla de cálculo
- Local Storage?
Una Base de Datos nos permite almacenar la información de forma organizada, estructurada, ordenada y segura, de tal modo que sea fácil de acceder, gestionar y actualizar
Tipos de Bases de Datos
Hay muchos...

Pero ahora sólo nos interesan...

Gestor de Base de Datos
(Database Management System ó DBMS)
Son aplicaciones que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada
Adivinen qué...
También hay muchos...

Pero sólo nos interesan los RDBMS, como MySQL

Entonces, ¿qué es una Base de Datos relacional?
Una Base de Datos relacional almacena la información en tablas, que se relacionan entre sí

Algo así como un Excel, pero más pro

Ejemplo de tabla en HD
Las tablas tienen claves primarias (PK, Primary Key) que identifican unívocamente a cada elemento (fila) y claves foráneas (FK, Foreign Key) que las relacionan con otras tablas
Una Base de Datos Relacional está compuesta por 1 o más tablas: es el bloque fundamental
Cuando definimos las tablas que componen nuestra DB, estamos imponiendo reglas sobre los datos que almacenamos
El DBMS (en nuestro caso, MySQL), se va a encargar de hacer cumplir esas reglas (ej: no podemos ingresar datos no numéricos en una columna que definimos de tipo INT)
Volviendo a nuestra API de Espotifai
| id | name |
|---|---|
| 1 | The Voidz |
| 2 | Name The Band |
| 3 | Wild Freedom |
| 4 | Medusa Box |
| 5 | Sin Rencores |
artists
PK
| id | name | artist_id | year |
|---|---|---|---|
| 1 | Virtue | 1 | 2018 |
| 2 | Tyranny | 1 | 2014 |
| 3 | Summer Lush | 2 | 2016 |
| 4 | Just Add Sugar | 2 | 2012 |
| 5 | Set the Night on Fire | 3 | 2017 |
| 6 | Nothing Behind All Of These Masks | 4 | 2017 |
| 7 | Pay For It | 4 | 2015 |
| 8 | Juego Sucio | 5 | 2014 |
albums
PK
FK
Claves sintéticas
(ó subrogadas) vs naturales
Tipos de Datos
| id | name | artist_id | year |
|---|---|---|---|
| 1 | Virtue | 1 | 2018 |
| 2 | Tyranny | 1 | 2014 |
| 3 | Summer Lush | 2 | 2016 |
| 4 | Just Add Sugar | 2 | 2012 |
| 5 | Set the Night on Fire | 3 | 2017 |
| 6 | Nothing Behind All Of These Masks | 4 | 2017 |
| 7 | Pay For It | 4 | 2015 |
| 8 | Juego Sucio | 5 | 2014 |
albums
INT
VARCHAR(100)
INT
INT
ABRO PARÉNTESIS
(
¿Qué lenguajes vimos hasta ahora?
HTML
CSS
JavaScript
CIERRO PARÉNTESIS
)
Necesitamos otro tipo de lenguajes para comunicarnos con una Base de Datos
A través de estos lenguajes, podemos consultar y hacer operaciones en una Base de Datos
Por eso se conocen como Lenguajes de Consulta
Para Bases de Datos Relacionales, vamos a utilizar un lenguaje en particular...
SQL
Structured Query Language
ese-cu-ele?
sicuel?
es-quiu-el?
🤔
eze-qui-el?

(Yo le voy a decir sicuel)
A diferencia de JavaScript, SQL es un lenguaje declarativo
Consultas a la Base de Datos
Para realizar consultas, utilizamos las queries
Entonces... ¿qué les parece si practicamos un poco?

Tutorial: SQLBolt
Estructura de una consulta
SELECT [column1, column2, etc]
FROM [table]
WHERE [condition1, condition2, etc]
ORDER BY [column_name, ASC/DESC]
LIMIT [from, size]

Ejercicios

SELECT
Text
SELECT
<nombreColumna>
FROM
<nombreTabla>¿Y si quiero traer todas las columnas de una tabla, tengo que listar una por una?
No.
Text
SELECT
*
FROM
<nombreTabla>WHERE
Nos permite filtrar
Text
SELECT
column1, column2, ...
FROM
table_name
WHERE
condition;Ejercicio #1
Ejercicio #2
INSERT
Text
INSERT INTO
table_name (column1, column2, column3, ...)
VALUES
(value1, value2, value3, ...);Ejercicio #3
ORDER BY
Text
SELECT
column1, column2, ...
FROM
table_name
ORDER BY
column1, column2, ... ASC|DESC;Ejercicio #4
Ejercicio #5
Ejercicio #6
SELECT DISTINCT
Text
SELECT DISTINCT
column1, column2, ...
FROM
table_name;Ejercicio #7
SUM
Text
SELECT SUM(numeric_column_name)
FROM
table_name
WHERE
condition;Ejercicio #8

Intro a DBs (MySQL), Parte 1
By Nicolás Quiroz
Intro a DBs (MySQL), Parte 1
- 289