From 9b83a7a6bb073cc1d1e5ae13da735a2b2424c1e8 Mon Sep 17 00:00:00 2001 From: Lil-Carpi Date: Mon, 15 Dec 2025 01:07:57 +0100 Subject: [PATCH] Creado Apuntes generales de SQL --- .obsidian/graph.json | 2 +- .obsidian/plugins/languagetool/data.json | 2 +- .obsidian/workspace.json | 44 +- BDD/SQL/Apuntes generales de SQL.md | 595 ++++++++++++++++++ BDD/SQL/Notas para clase.md | 115 ---- BDD/SQL/Tecnicismos/Tipos de datos.md | 28 +- .../SQL/Mezcla-cartesiana_(CROSS_JOIN).png | Bin 0 -> 86957 bytes 7 files changed, 629 insertions(+), 157 deletions(-) create mode 100644 BDD/SQL/Apuntes generales de SQL.md delete mode 100644 BDD/SQL/Notas para clase.md create mode 100644 Imagenes/SQL/Mezcla-cartesiana_(CROSS_JOIN).png diff --git a/.obsidian/graph.json b/.obsidian/graph.json index 7e86a65..2099b06 100644 --- a/.obsidian/graph.json +++ b/.obsidian/graph.json @@ -88,6 +88,6 @@ "repelStrength": 10, "linkStrength": 1, "linkDistance": 250, - "scale": 0.08233250397982278, + "scale": 0.2778722009319019, "close": true } \ No newline at end of file diff --git a/.obsidian/plugins/languagetool/data.json b/.obsidian/plugins/languagetool/data.json index cf1d9f0..6e0a03a 100644 --- a/.obsidian/plugins/languagetool/data.json +++ b/.obsidian/plugins/languagetool/data.json @@ -21,5 +21,5 @@ "pickyMode": false, "longCheckNotification": true, "staticLanguage": "es-ES", - "disabledRules": "AGREEMENT_POSTPONED_ADJ" + "disabledRules": "AGREEMENT_POSTPONED_ADJ,WRONG_IMPERATIVE" } \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index f71aad7..75d9501 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,35 +4,21 @@ "type": "split", "children": [ { - "id": "1abce41154c71bfc", + "id": "fad51cc483fae111", "type": "tabs", "children": [ { - "id": "34eecf2b06cedd2e", + "id": "f680d743f846f5b9", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "BDD/SQL/Notas para clase.md", + "file": "BDD/SQL/Apuntes generales de SQL.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "Notas para clase" - } - }, - { - "id": "e7ba4197370c55cb", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "BDD/SQL/Tecnicismos/Tipos de datos.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "Tipos de datos" + "title": "Apuntes generales de SQL" } } ] @@ -92,7 +78,8 @@ } ], "direction": "horizontal", - "width": 248.50260543823242 + "width": 248.50260543823242, + "collapsed": true }, "right": { "id": "519d5773673c1040", @@ -191,13 +178,13 @@ "state": { "type": "outline", "state": { - "file": "BDD/SQL/Notas para clase.md", + "file": "BDD/SQL/Apuntes generales de SQL.md", "followCursor": false, "showSearch": false, "searchQuery": "" }, "icon": "lucide-list", - "title": "Esquema de Notas para clase" + "title": "Esquema de Apuntes generales de SQL" } } ], @@ -222,7 +209,7 @@ } ], "direction": "horizontal", - "width": 480.5 + "width": 388.5 }, "left-ribbon": { "hiddenItems": { @@ -236,10 +223,13 @@ "obsidian-git:Open Git source control": false } }, - "active": "34eecf2b06cedd2e", + "active": "f680d743f846f5b9", "lastOpenFiles": [ "BDD/SQL/Tecnicismos/Tipos de datos.md", - "BDD/SQL/Notas para clase.md", + "BDD/SQL/Apuntes generales de SQL.md", + "Imagenes/SQL/Mezcla-cartesiana_(CROSS_JOIN).png", + "Imagenes/SQL", + "Imagenes", "BDD/SQL/Uso general/Importación y exportación de base de datos.md", "BDD/SQL/SQL.md", "BDD/SQL/Uso general", @@ -271,9 +261,6 @@ "Servidores/M5/M5 - ASIX.md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Patrones de diseño en Bash.md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Procesos hijos y paralelismo.md", - "conflict-files-obsidian-git.md", - "Programación/PHP/PHP", - "Documentación personal/Mecanica de Unix/Sin nombre", "Documentación personal/Seguridad-Informatica/Vista General 1.canvas", "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/software/specops.svg", "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/software/satan.png", @@ -283,7 +270,6 @@ "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/hardware/usbkiller.jpg", "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/hardware/rubberducky.png", "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/hardware/pico_tpm_sniffer.webp", - "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/hardware/omgcable.webp", - "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/hardware/Flipper Zero.jpg" + "Documentación personal/Seguridad-Informatica/1_Imagenes/tools/hardware/omgcable.webp" ] } \ No newline at end of file diff --git a/BDD/SQL/Apuntes generales de SQL.md b/BDD/SQL/Apuntes generales de SQL.md new file mode 100644 index 0000000..be52bd0 --- /dev/null +++ b/BDD/SQL/Apuntes generales de SQL.md @@ -0,0 +1,595 @@ +--- + +--- +#SQL-ASIX - Structured Query Language +Proveniente de [[SQL]] +- Autor: [Lil_Carpi](https://github.com/Lil-Carpi) +- Fecha de creación: 13-14/12/2025 +--- +```table-of-contents +``` + +--- +#### Video de referencia: +![Aprende SQL](https://youtu.be/uUdKAYl-F7g) +[Aprende SQL](https://youtu.be/uUdKAYl-F7g) + +--- +## Notas a tener en cuenta +- TODOS los comandos terminan en `;`. +- Para hacer un UPDATE y DELETE, se recomienda usar la PK(`id`) para evitar errores, pero no es obligatorio. +- Todo lo que sale aquí va orientado para MariaDB por terminal, aunque sirve igual para MySQL Workbench, ya que los comandos son los mismos. +- Los ejemplos de este documento son simples, por lo que se usan VARCHAR y INT. Por favor, usad datos correspondientes indicados en [[Tipos de datos]]. +- `user` Es una palabra reservada. NO LA USÉIS NUNCA POR USAR. En este caso, están porque facilita el entendimiento y la simplificación. En caso de tener que crear una tabla de usuarios, usad algo como `allusers` o similar, pero NUNCA `user`. +- La sensibilidad a las mayúsculas y minúsculas en MariaDB depende del `collation`. Normalmente, es **case-insensitive**, PERO NO SIEMPRE. +- En producción, el `SELECT *` se ha de listar columnas especificas para evitar problemas de rendimientro y cambios de esquema. +### Tipos de datos +- **INT (INTEGER)**: Números enteros. +- **Float**: Decimales. Cuidado con los errores de precisión. +- **Varchar**: Strings o letras. +- Es recomendable usar mas tipos de datos. +Más información en [[Tipos de datos]] + +![[Tipos de datos]] + +--- +# Bases de datos +## Creación de base de datos: + +```SQL +CREATE DATABASE nombre; +``` + +--- +Ver bases de datos + +```SQL +SHOW DATABASES; +``` + +--- +### Seleccionar base de datos +```SQL +USE basededatos; +``` + +--- +### Comentarios +```SQL +-- Cualquier cosa que sea escrita despues de "--" será ignorado. +``` +--- +### Crear tablas: +```SQL +CREATE TABLE animales ( + id INT NOT NULL AUTO_INCREMENT, + tipo VARCHAR(255) DEFAULT NULL, + estado VARCHAR(255) DEFAULT NULL, + PRIMARY KEY (id) +); +``` +> Entre paréntesis se colocan los datos que se van a almacenar en la tabla. +> Es recomendable separarlos entre espacios y seleccionar el tipo de dato que se va a usar con esa sección. También, se ha de seleccionar la clave primaria e indicarla entre paréntesis. + + +--- +### Insertar datos en tablas: +```SQL +INSERT INTO animales (tipo, estado) VALUES ('Chanchito', 'Feliz'); +``` +> De la tabla `animales`, se le insertan a las columnas `tipo` y `estado` los valores `'Chanchito'` y `'Feliz'`, en ese orden. + + +--- +### Modificación de tablas: +```SQL +ALTER TABLE animales MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT; +``` +> Caso hipotético en el cual la tabla que hemos creado antes no ha tenido la variable `AUTO_INCREMENT` desde un inicio. +> Nota: Se ha de indicar de nuevo el tipo de valor que se le da a la columna `id`, en este caso, `INT`. + +--- +#### Renombrar tablas +```SQL +RENAME TABLE user TO users; +``` +>Renombra la tabla user a users + +--- +### Listar elementos de una tabla +```SQL +SELECT * FROM animales; +``` +> Lista TODAS las columnas de la tabla animales + +```SQL +SELECT * FROM ANIMALES WHERE ID = 1; +``` +> Lista todas las columnas de la tabla animales donde el ID sea 1 + +```SQL +SELECT * FROM animales WHERE estado = 'Feliz'; +``` +> Lista todas las columnas de la tabla animales donde el estado sea 'Feliz' +> Nota: Los strings se pasan entre comillas simples (`''`). + +```SQL +SELECT * FROM animales WHERE estado = 'Feliz' AND tipo = 'Chanchito'; +``` +>Lista todas las columnas de la tabla animales donde el estado sea 'Feliz' Y tipo sea 'Chanchito'. +> Nota: También se puede usar la variable `OR`. + +También podemos hacer selecciones con condiciones más, menos, igual, etc: +```SQL +SELECT * FROM users WHERE edad > 20; +``` +> Se puede cambiar el `>` por `<`, `>=`, `<=` y `!=`. + +Se pueden filtrar también por strings de datos: +```SQL +SELECT * FROM users WHERE email = 'Antonio@fulano.com'; +``` +> Lista todas las columnas de la tabla users donde el email sea ' Antonio@fulano.com' +#### `BETWEEN` +También se le pueden buscar ENTRE dos valores: +```SQL +SELECT * FROM users WHERE edad BETWEEN 15 and 30; +``` +>Lista todas las columnas de la tabla users donde la edad se encuentre entre 15 y 30. +#### `LIKE` +Podemos buscar por valores que "se parece a", con los `%%`: +```SQL +SELECT * FROM users WHERE email LIKE '%gmail%'; +``` +> Lista todas las columnas de la tabla users donde el email se parezca a ' `%gmail%`'. +> Nota: En este caso, lo único que busca va a ser el valor '`gmail`'. Todo lo que se encuentre alrededor de ese valor será ignorado. También podemos hacer búsquedas como '`fulano%`', que sirve cuando sabemos el nombre del usuario, pero no sabemos que apellido tiene. +> Las búsquedas con `%` al inicio, no usan índices. + +#### `ORDER BY` +Se pueden ordenar las consultas por orden ASCENDENTE (`ASC`) y DESCENDENTE (`DESC`): +```SQL +SELECT * FROM users ORDER BY edad ASC; +-- TAMBIEN +SELECT * FROM users ORDER BY edad DESC; +``` + + +#### `max()` y `min()` +Las funciones `max()` y `min()` nos permiten filtrar por la cantidad máxima y mínima entre valores de INT: +```SQL +SELECT max(edad) AS mayor FROM users; +-- Tambien +SELECT min(edad) AS menor FROM users; +``` +> +> Nota: `AS` Se utiliza para dar nombre a la consulta que estamos dando. + + +#### Listar columnas específicas +Podemos filtrar directamente por columnas que nos interesen ver: +```SQL +SELECT id, name FROM users; +``` +> Lista la columna id y name de la tabla users. + + +#### Listar con aliases (`AS`): +En caso de que tengamos un nombre de una columna que queramos ver con otro nombre sin modificarlo, podemos usar `AS`: +```SQL +SELECT id, name AS nombre FROM users; +``` +> Lista la columna id y name como nombre de la tabla users. +> Nota: Las PRIMARY KEYS son inmutables ante esta condición. + +--- +### Update de registros + +```SQL +UPDATE animales SET estado = 'Feliz' WHERE id = 3; +``` +> Actualiza la tabla animales y pon el estado `'Feliz'` al registro que tenga un `id` de 3. +> Nota: Para hacer un UPDATE y DELETE, se ha de indicar el `id` de lo que se va a borrar o actualizar, aunque no es obligatorio. Se recomienda usar condiciones especificas (normalmente la PK) para evitar modificar/borrar múltiples filas por error. + +--- +### Borrar registros + +```SQL +DELETE FROM animales WHERE id = 3; +``` +> Borra el registro de la tabla animales en donde el `id` sea 3. +> Nota: Para hacer un UPDATE y DELETE, se ha de indicar el `id` de lo que se va a borrar o actualizar, aunque no es obligatorio.Se recomienda usar condiciones especificas (normalmente la PK) para evitar modificar/borrar múltiples filas por error. + + +--- +### `LIMIT` +```SQL +SELECT * FROM users LIMIT 2; +``` +> Lista todas las columnas de la tabla users y devuelve las primeras 2 líneas que encuentres. +> Nota: Se pueden cambiar por la cantidad de líneas que queramos ver. + +--- +## Joins (Relacionar tablas, conocido como Llaves Foraneas) + +Tengo una tabla, la cual es: +```SQL +MariaDB [empresa]> SELECT * FROM users; ++----+---------+------+------------------+ +| id | name | edad | email | ++----+---------+------+------------------+ +| 1 | Juan | 25 | juan@juan.com | +| 2 | Alberto | 19 | alberto@juan.com | +| 3 | Leyre | 22 | Leyre@juan.com | +| 4 | Antonio | 52 | Antonio@juan.com | +| 5 | Ariel | 31 | Ariel@juan.com | ++----+---------+------+------------------+ +``` + +Y quiero hacer un join de una tabla, la cual relacione él id de cada usuario con la creación de un producto en otra tabla llamada `products`. Se ha de hacer: +```SQL +CREATE TABLE products( + id INT NOT NULL AUTO_INCREMENT, + name VARCHAR(50) NOT NULL, + created_by INT NOT NULL, + marca VARCHAR(50) NOT NULL, + PRIMARY KEY(id), + FOREIGN KEY(created_by) REFERENCES `users`(id) +) ENGINE=InnoDB; +``` +> En la parte de la llave foranea, describimos: +> La llave foranea será la columna `created_by` y su referencia se encuentra en la tabla `users` y la columna es `id`. +> Nota: Hay que usar BACKTICKS para seleccionar la tabla con nombres especiales, en este caso, `user` es un nombre especial en MariaDB. En una situación real, NO UTILICEIS `user` COMO NOMBRE DE TABLA. Tambien, el `ENGINE` es IMPORTANTE ponerlo. Sin `ENGINE`, no hay FK. + +--- +#### Insercion de multiples datos con un solo `INSERT` +Ahora, podemos añadir productos en la tabla products creadas por los usuarios de la tabla users: +```SQL +INSERT INTO products (name, created_by, marca) +VALUES + ('ipad', 1, 'apple'), + ('iphone', 1, 'apple'), + ('watch', 2, 'apple'), + ('macbook', 1, 'apple'), + ('imac', 3, 'apple'), + ('ipad mini', 2, 'apple'); +``` +> Inserta a la tabla productos dentro de las columnas name, created_by y marca... + +Resultado: +```SQL +MariaDB [empresa]> SELECT * FROM products; ++----+-----------+------------+-------+ +| id | name | created_by | marca | ++----+-----------+------------+-------+ +| 1 | ipad | 1 | apple | +| 2 | iphone | 1 | apple | +| 3 | watch | 2 | apple | +| 4 | macbook | 1 | apple | +| 5 | imac | 3 | apple | +| 6 | ipad mini | 2 | apple | ++----+-----------+------------+-------+ +``` + +--- +## LEFT JOIN +Trae todos los registros dentro de la tabla de usuarios. En el caso de que se encuentren registros que se encuentren dentro de la tabla de productos que hayan sido creados por los usuarios que se encuentren en la tabla usuarios, aparecerán dentro de la consulta. En caso de que salgan usuarios que no hayan creado productos en la tabla de productos, simplemente márcamelos como `null`. + + +```SQL +SELECT u.id, u.email, p.name FROM users u LEFT JOIN products p ON u.id = p.created_by; +``` +> Selecciona de la tabla de usuario, reconócelo con el alias `u`, y tráeme las columnas de id y email. Ahora, haz un LEFT JOIN con la tabla users como principal de producto, reconócelo como `p`, y tráeme la columna name y junta las columnas id de la tabla de usuario y created_by de la tabla de productos. + +Resultado: +```SQL ++----+------------------+-----------+ +| id | email | name | ++----+------------------+-----------+ +| 1 | juan@juan.com | ipad | +| 1 | juan@juan.com | iphone | +| 2 | alberto@juan.com | watch | +| 1 | juan@juan.com | macbook | +| 3 | Leyre@juan.com | imac | +| 2 | alberto@juan.com | ipad mini | +| 4 | Antonio@juan.com | NULL | +| 5 | Ariel@juan.com | NULL | ++----+------------------+-----------+ +``` + +--- +## RIGHT JOIN +Mismo que `LEFT JOIN`, pero al revés. +Nos trae el producto y en caso de que exista, nos va a traer un usuario asociado. +```SQL +SELECT u.id, u.email, p.name FROM users u RIGHT JOIN products p ON u.id = p.created_by; +``` +> Selecciona de la tabla de usuario, reconócelo con el alias `u`, y tráeme las columnas de id y email. Ahora, haz un RIGHT JOIN con la tabla de producto, reconócelo como `p`, y tráeme la columna name y junta las columnas id de la tabla de usuario y created_by de la tabla de productos. + +Resultado: +```SQL ++------+------------------+-----------+ +| id | email | name | ++------+------------------+-----------+ +| 1 | juan@juan.com | ipad | +| 1 | juan@juan.com | iphone | +| 2 | alberto@juan.com | watch | +| 1 | juan@juan.com | macbook | +| 3 | Leyre@juan.com | imac | +| 2 | alberto@juan.com | ipad mini | ++------+------------------+-----------+ +``` + +--- +## INNER JOIN +Nos trae tanto usuarios como productos, pero siempre y cuando estos dos puedan ser asociados entre sí. +```SQL +SELECT u.id, u.email, p.name FROM users u INNER JOIN products p ON u.id = p.created_by; +``` +> Selecciona de la tabla de usuario, reconócelo con el alias `u`, y tráeme las columnas de id y email. Ahora, haz un INNER JOIN con la tabla de producto, reconócelo como `p`, y tráeme la columna name y junta las columnas id de la tabla de usuario y created_by de la tabla de productos. + +Resultado: +```SQL ++----+------------------+-----------+ +| id | email | name | ++----+------------------+-----------+ +| 1 | juan@juan.com | ipad | +| 1 | juan@juan.com | iphone | +| 2 | alberto@juan.com | watch | +| 1 | juan@juan.com | macbook | +| 3 | Leyre@juan.com | imac | +| 2 | alberto@juan.com | ipad mini | ++----+------------------+-----------+ +``` + +--- +## CROSS JOIN +Devuelve el producto cartesiano entre dos tablas. +Básicamente: +![[Mezcla-cartesiana_(CROSS_JOIN).png]] + +```SQL +SELECT u.id, u.name, p.id, p.name FROM users u CROSS JOIN products p; +``` +>Nota: No es recomendado hacerlo, y si se ha de hacerlo, hay que tener cuidado por la cantidad insana de datos que nos puede escupir. Puede bloquear la BD si los datos que escupen son grandes, así que, repito, MUCHO CUIDADO. + +Resultado: +```SQL ++----+---------+----+-----------+ +| id | name | id | name | ++----+---------+----+-----------+ +| 1 | Juan | 1 | ipad | +| 2 | Alberto | 1 | ipad | +| 3 | Leyre | 1 | ipad | +| 4 | Antonio | 1 | ipad | +| 5 | Ariel | 1 | ipad | +| 1 | Juan | 2 | iphone | +| 2 | Alberto | 2 | iphone | +| 3 | Leyre | 2 | iphone | +| 4 | Antonio | 2 | iphone | +| 5 | Ariel | 2 | iphone | +| 1 | Juan | 3 | watch | +| 2 | Alberto | 3 | watch | +| 3 | Leyre | 3 | watch | +| 4 | Antonio | 3 | watch | +| 5 | Ariel | 3 | watch | +| 1 | Juan | 4 | macbook | +| 2 | Alberto | 4 | macbook | +| 3 | Leyre | 4 | macbook | +| 4 | Antonio | 4 | macbook | +| 5 | Ariel | 4 | macbook | +| 1 | Juan | 5 | imac | +| 2 | Alberto | 5 | imac | +| 3 | Leyre | 5 | imac | +| 4 | Antonio | 5 | imac | +| 5 | Ariel | 5 | imac | +| 1 | Juan | 6 | ipad mini | +| 2 | Alberto | 6 | ipad mini | +| 3 | Leyre | 6 | ipad mini | +| 4 | Antonio | 6 | ipad mini | +| 5 | Ariel | 6 | ipad mini | ++----+---------+----+-----------+ +``` + +--- +### Esquema de todos los JOIN: +- **LEFT**: Usuarios aunque no tengan producto. +- **INNER**: Solo relaciones validas. +- **RIGHT**: Casi nunca se usa en práctica. + +--- +## GROUP BY +Se utilizan con instrucciones que, por lo general, tienden a agrupar elementos. + +```SQL +SELECT count(id), marca FROM products GROUP BY marca; +``` +> Lista de la tabla products la cantidad de productos de las marcas que existan + +Resultado: +```SQL ++-----------+-------+ +| count(id) | marca | ++-----------+-------+ +| 6 | apple | ++-----------+-------+ +``` + +También podemos hacer lo mismo mezclándolo con un LEFT JOIN con la tabla de usuarios, donde la tabla primaria será la tabla de products: +```SQL +SELECT count(p.id), u.name FROM products p LEFT JOIN users u on u.id = p.created_by GROUP BY p.created_by; +``` + +Resultado: +```SQL ++-------------+---------+ +| count(p.id) | name | ++-------------+---------+ +| 3 | Juan | +| 2 | Alberto | +| 1 | Leyre | ++-------------+---------+ +``` + + +### `HAVING` +Podemos añadir condiciones. Por ejemplo, que el conteo sea mayor a 2: +```SQL +SELECT count(p.id), u.name FROM products p LEFT JOIN users u on u.id = p.created_by GROUP BY p.created_by HAVING count(p.id) >= 2; +``` + +Resultado: +```SQL ++-------------+---------+ +| count(p.id) | name | ++-------------+---------+ +| 3 | Juan | +| 2 | Alberto | ++-------------+---------+ +``` + +--- +## `DROP` +Sirve para eliminar tablas enteras. +```SQL +DROP TABLE products; +``` +> Elimina la tabla de products. +> Nota: ¡CUIDADO CON ESTO! ¡LOS CAMBIOS SON IRREVERSIBLES! + +--- +## `ON DELETE` / `ON UPDATE` +Se utilizan en **llaves foráneas** para definir que ocurre cuando el registro referenciado cambia o se elimina. +```SQL +FOREIGN KEY (created_by) REFERENCES users(id) +ON DELETE +ON UPDATE +``` +> Nota: Si NO se especifica nada, el comportamiento por defecto suele ser `RESTRICT`. + +--- +### `ON DELETE` +Define qué pasa cuando se elimina un registro de la tabla padre. +```SQL +ON DELETE RESTRICT --Restrict por defecto. +``` +> No permite borrar el registro padre si hay hijos asociados. Es la opción más segura. + +Ejemplo: +- No se puede borrar un usuario si tiene productos creados. +Uso recomendado: +- Datos críticos. +- Integridad estricta. +- Producción. + +--- +### `CASCADE` +Al borrar el padre, se borran automáticamente los hijos. Es peligroso si no sabes lo que estás haciendo. CUIDADO CON ESTO. +```SQL +ON DELETE CASCADE +``` + +Ejemplo: +- Borras un usuario -> Se borran todos sus productos. +Usos: +- Datos temporales +- Relaciones dependientes al 100% + +>[!Warning] +>Un `DELETE` mal hecho PUEDE BORRAR MEDIA BASE DE DATOS. + +--- +### `SET NULL` +Al borrar el padre, la FK del hijo pasa a `null`. La columna **DEBE PERMITIR `NULL`**. +```SQL +ON DELETE SET NULL +``` + +Ejemplo: +- El producto sigue existiendo, pero ya no tiene creador. +Usos: +- Históricos +- Logs +- Datos que deben conservarse. + +--- +### `NO ACTION` +En MariaDB/MySQL se comporta igual que `RESTRICT` (aunque internamente SQL define `NO ACTION`). Existe por la compatibilidad con SQL. +```SQL +ON DELETE NO ACTION +``` + +Usos: +- En MariaDB, ninguno xd. + +--- +## `ON UPDATE` +Define qué pasa si cambia el valor de la **clave primaria referenciada**. Cambiar un PK en producción **NO es buena practica**, aunque exista el `ON UPDATE CASCADE`. + +### `CASCADE` +Si cambia el `id` del padre, se actualiza el de los hijos. Es poco común, pero es correcto. +```SQL +ON UPDATE CASCADE +``` + +Ejemplo: +- Cambia el id de un usuario -> se actualiza en la tabla products. + +--- +### `RESTRICT`/`NO ACTION` +Impide cambiar la PK si hay relaciones. +```SQL +ON UPDATE RESTRICT +``` + +Uso: +- Lo normal en producción. + +--- +### `SET NULL` +Si cambia la PK, la FK pasa a NULL. Esto es muy raro de ver en la práctica. +```SQL +ON UPDATE SET NULL +``` + +--- +## Ejemplo realista +```SQL +CREATE TABLE products ( + id INT NOT NULL AUTO_INCREMENT, + name VARCHAR(50) NOT NULL, + created_by INT NULL, + marca VARCHAR(50) NOT NULL, + PRIMARY KEY(id), + FOREIGN KEY (created_by) REFERENCES users(id) + ON DELETE SET NULL + ON UPDATE CASCADE +) ENGINE=InnoDB; +``` + +Explicación: +- Si se borra el usuario -> el producto se conserva +- Si cambia el id -> se actualiza automáticamente. + +--- +### Ejemplo ESTRICTO +```SQL +FOREIGN KEY (created_by) REFERENCES users(id) +ON DELETE RESTRICT +ON UPDATE RESTRICT +``` + +Explicación: +- En este caso, no se borra ni se cambia nada sin limpiar antes dependencias. +- Es lo ideal para los sistemas serios, como en producción. + +--- +## Resumen rápido +- `RESTRICT`: Seguridad +- `CASCADE`: Automatismo (peligroso) +- `SET NULL`: Conservar datos +- `NO ACTION`: Igual que `RESTRICT` en MariaDB + +>[!note] +>Si no sabes qué usar, `RESTRICT`. +>Si usas `CASCADE`, es porque sabes lo que haces y lo has pensado dos veces. + diff --git a/BDD/SQL/Notas para clase.md b/BDD/SQL/Notas para clase.md deleted file mode 100644 index 661ab58..0000000 --- a/BDD/SQL/Notas para clase.md +++ /dev/null @@ -1,115 +0,0 @@ ---- - ---- - ---- -#### Video de referencia: -![Aprende SQL](https://youtu.be/uUdKAYl-F7g) -[Aprende SQL](https://youtu.be/uUdKAYl-F7g) - ---- -## Notas a tener en cuenta -TODOS los comandos terminan en `;`. -### Tipos de datos -- **INT (INTEGER)**: Números enteros. -- **Float**: Decimales -- **Varchar**: Strings o letras. -Más información en [[Tipos de datos]] - -![[Tipos de datos]] - ---- -# Bases de datos -## Creación de base de datos: - -```SQL -CREATE DATABASE nombre; -``` - ---- -Ver bases de datos - -```SQL -SHOW DATABASES; -``` - ---- -### Seleccionar base de datos -```SQL -USE basededatos; -``` - ---- -### Comentarios -```SQL --- Cualquier cosa que sea escrita despues de "--" será ignorado. -``` ---- -### Crear tablas: -```SQL -CREATE TABLE animales ( - id INT NOT NULL AUTO_INCREMENT, - tipo VARCHAR(255) DEFAULT NULL, - estado VARCHAR(255) DEFAULT NULL, - PRIMARY KEY (id) -); -``` -> Entre paréntesis se colocan los datos que se van a almacenar en la tabla. -> Es recomendable separarlos entre espacios y seleccionar el tipo de dato que se va a usar con esa sección. También, se ha de seleccionar la clave primaria e indicarla entre paréntesis. - - ---- -### Insertar datos en tablas: -```SQL -INSERT INTO animales (tipo, estado) VALUES ('Chanchito', 'FELIZ'); -``` -> De la tabla `animales`, se le insertan a las columnas `tipo` y `estado` los valores `'Chanchito'` y `'Feliz'`, en ese orden. - - ---- -### Modificación de tablas: -```SQL -ALTER TABLE animales MODIFY COLUMN id INT AUTO_INCREMENT; -``` -> Caso hipotético en el cual la tabla que hemos creado antes no ha tenido la variable `AUTO_INCREMENT` desde un inicio. -> Nota: Se ha de indicar de nuevo el tipo de valor que se le da a la columna `id`, en este caso, `INT`. - ---- -### Listar elementos de una tabla -```SQL -SELECT * FROM animales; -``` -> Lista TODAS las columnas de la tabla animales - -```SQL -SELECT * FROM ANIMALES WHERE ID = 1; -``` -> Lista todas las columnas de la tabla animales donde el ID sea 1 - -```SQL -SELECT * FROM animales WHERE estado = 'Feliz'; -``` -> Lista todas las columnas de la tabla animales donde el estado sea 'feliz' -> Nota: Los strings se pasan entre comillas simples (`''`). - -```SQL -SELECT * FROM animales WHERE estado = 'Feliz' AND tipo = 'Chanchito'; -``` ->Lista todas las columnas de la tabla animales donde el estado sea 'Feliz' Y tipo sea 'Chanchito'. -> Nota: También se puede usar la variable `OR`. - ---- -### Update de registros - -```SQL -UPDATE animales SET estado = 'Feliz' WHERE id = 3; -``` -> Actualiza la tabla animales y pon el estado `'Feliz'` al registro que tenga un `id` de 3. - ---- -### Borrar registros - -```SQL -DELETE FROM animales WHERE estado = 'Feliz'; -``` - diff --git a/BDD/SQL/Tecnicismos/Tipos de datos.md b/BDD/SQL/Tecnicismos/Tipos de datos.md index 351690e..3880625 100644 --- a/BDD/SQL/Tecnicismos/Tipos de datos.md +++ b/BDD/SQL/Tecnicismos/Tipos de datos.md @@ -1,4 +1,4 @@ -#SQL-ASIX - Structure Query Language +#SQL-ASIX - Structured Query Language Proveniente de [[SQL]] --- @@ -8,16 +8,19 @@ Algunos de los tipos de datos basicos de SQL son: --- ## Numeros enteros: -- **TINYINT(Tamaño)**: -128 a 127 normal. 0 a 255 sin signo. La cantidad maxima de digitos se puede especificar entre parentesis. -- **SMALLINT(Tamaño)**: -32768 a 32767 normal. 0 a 65535 sin signo. La cantidad maxima de digitos se pueden especificar entre parentesis. -- **MEDIUMINT(Tamaño)**: -8388608 a 8388607 normal. 0 a 16777215 sin signo. La cantidad maxima de digitos se pueden especificar entre parentesis. -- **INT(Tamaño)**: -2147483648 a 2147483647 normal. 0 a 4294967295 sin signo. La cantidad maxima de digitos se pueden especificar entre parentesis. -- **BIGINT(Tamaño)**: -9223372036854775808 a 9223372036854775807 normal. 0 a 18446744073709551615 sin signo. La cantidad maxima de digitos se pueden especificar entre parentesis. +- **TINYINT**: -128 a 127 normal. 0 a 255 sin signo. +- **SMALLINT**: -32768 a 32767 normal. 0 a 65535 sin signo. +- **MEDIUMINT**: -8388608 a 8388607 normal. 0 a 16777215 sin signo. +- **INT**: Da al valor el tipo INTEGER. Entero de 32 bits. Rango: -2147483648 a 2147483647 (signed) +- **BIGINT**: -9223372036854775808 a 9223372036854775807 normal. 0 a 18446744073709551615 sin signo. --- ## Numeros en punto flotante - **FLOAT(tamaño, d)**: Un pequeño numero con un punto decimal flotante. La cantidad maxima de digitos puede especificar en el parametro de tamaño. El numero maximo de digitos a la derecha del punto decimal se especifica en el parametro d. -- **DECIMAL(tamaño, d)**: Un DOBLE almacenado como una cadena, lo que permite un punto decimal fijo. La cantidad maxima de digitos se puede especificar en el parametro de tamaño. El numero maximo de digitos a la derecha del punto decimal se especifica en el parametro d. +- **DECIMAL(tamaño, d)**: Un número exacto almacenado internamente en formato decimal fijo. La cantidad maxima de digitos se puede especificar en el parametro de tamaño. El numero maximo de digitos a la derecha del punto decimal se especifica en el parametro d. + +>[!bug] +>FLOAT es un tipo aproximado y puede introducir errores de precisión. --- ## Fechas y tiempos @@ -37,7 +40,7 @@ Algunos de los tipos de datos basicos de SQL son: --- ## Cadena de caracteres: - **CHAR (Tamaño)**: Cadena de longitud fija (puede contener letras, numeros y caracteres especiales), El tamaño fijo se especifica entre parentesis. Puede almacenar hasta 255 caracteres. -- **VARCHAR(Tamaño)**: Tiene una cadena de longitud variable (puede contener letras, numeros y caracteres especiales). El tamaño maximo se especifica entre parentesis. Puede almacenar hasta 255 caracteres. +- **VARCHAR(Tamaño)**: Tiene una cadena de longitud variable (puede contener letras, numeros y caracteres especiales). El tamaño maximo se especifica entre parentesis. Puede almacenar hasta 255 caracteres dependiendo del charset con `utf8mb4` puede almacenar hasta 65535 bytes (~16383 caracteres), aunque 255 es una práctica común. - **TINYTEXT**: Tiene una cadena con una longitud maxima de 255 caracteres - **TEXTO**: Tiene una cadena con una longitud maxima de 65535 caracteres. - **BLOB**: Para BLOB (Objetos grandes binarios). Almacena hasta 65535 bytes de datos. @@ -47,13 +50,16 @@ Algunos de los tipos de datos basicos de SQL son: - **LONGBLOB**: Para BLOB (Objetos grandes binarios). Tiene una capacidad para 4294967295 bytes de datos. >[!bug] -> Nota: Si, en VARCHAR, agregas un valor mas grande que 255, este se convertira en tipo TEXTO. +> Nota: Si, en VARCHAR, agregas un valor mas grande que 255, MySQL rechaza el INSERT. --- ## ENUM y SET -- **Enum (x, y, z, etc.)**: Permite ingresar una lista de valores posibles. Puede enumerar hasta 65535 valores en una lista ENUM. Si se inserta un valor que no esta en la lista, se insertará un valor en blanco. +- **Enum (x, y, z, etc.)**: Permite ingresar una lista de valores posibles. Puede enumerar hasta 65535 valores en una lista ENUM. Inserta el primer valor del ENUM, o `''` si existe. - **Set**: Similar a Enum, excepto que SET puede contener hasta 64 elementos de una lista y puede almacenar mas de opcion +>[!bug] +>Nota: Si se inserta un valor no permitido, MariaDB inserta el primer valor del ENUM o una cadena vacía y lanza un warning. + --- ## Binarios: -- **bit** Entero que puede ser 0, 1 o NULL. +- **bit**: Tipo binario para almacenar Bits. No equivalente a BOOLEAN. Poco usado. diff --git a/Imagenes/SQL/Mezcla-cartesiana_(CROSS_JOIN).png b/Imagenes/SQL/Mezcla-cartesiana_(CROSS_JOIN).png new file mode 100644 index 0000000000000000000000000000000000000000..1c08c04cf759ab3c1555527f2dbc6503405fa176 GIT binary patch literal 86957 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

R-O9EL#bs5Q6<;aWs>@%cP(4r_P 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