Una Base de Datos es una colección de información, que persiste en el tiempo y podemos consultar
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
Hay muchos...
Pero ahora sólo nos interesan...
(Database Management System ó DBMS)
Son aplicaciones que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada
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)
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
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
HTML
CSS
JavaScript
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...
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
Para realizar consultas, utilizamos las queries
Entonces... ¿qué les parece si practicamos un poco?
Tutorial: SQLBolt
SELECT [column1, column2, etc]
FROM [table]
WHERE [condition1, condition2, etc]
ORDER BY [column_name, ASC/DESC]
LIMIT [from, size]
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>
Nos permite filtrar
Text
SELECT
column1, column2, ...
FROM
table_name
WHERE
condition;
Text
INSERT INTO
table_name (column1, column2, column3, ...)
VALUES
(value1, value2, value3, ...);
Text
SELECT
column1, column2, ...
FROM
table_name
ORDER BY
column1, column2, ... ASC|DESC;
Text
SELECT DISTINCT
column1, column2, ...
FROM
table_name;
Text
SELECT SUM(numeric_column_name)
FROM
table_name
WHERE
condition;