Herramientas de usuario

Herramientas del sitio


informatica:bases_de_datos:sql

¡Esta es una revisión vieja del documento!


SQL

Normalización

Metodología para optimizar las bases de datos.

3 formas normales. El ABC de las bases de datos relacionales. Son una serie de reglas que se deben cumplir a la hora de diseñar una base de datos, con sus tablas, campos y relaciones.

Primera forma normal

No se deben repetir datos de una tabla.

Ejemplo de tabla mal hecha:

id num_factura producto cantidad precio cliente
1 150 miproducto 10 12 pepito
2 150 otroproducto 5 3 pepito
3 100 producto1 3 1 pepito

Tabla maestra y tabla de detalle.

JOIN

FULL OUTER JOIN

En MySQL no existe este tipo de JOIN, pero se puede emular mediante UNION:

Con dos tablas:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id

Con 3 tablas

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
LEFT JOIN t3 ON t2.id = t3.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
LEFT JOIN t3 ON t2.id = t3.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
RIGHT JOIN t3 ON t2.id = t3.id

Ejemplos

Seleccionar los registros de una tabla que no aparezcan en la otra:

SELECT *
FROM table1 t1
LEFT JOIN table2 t2 ON t2.id = t1.id
WHERE t2.id IS NULL

Convenciones

Tablas

Las tablas se usan para almacenar información en la base de datos.

Se puede poner el nombre en singular o plural.

Vistas

Son como tablas virtuales basadas en el resultado de consultas SQL. Una vista contiene filas y columnas, como una tabla normal.

Cada nombre de vista debería comenzar por vw_: vw_ProductDetails.

Claves primarias

Una clave primaria identifica de forma unívoca cada registro en una tabla

La clave debería comenzar con PK_ e ir seguido del nombre de la tabla: PK_Empleados.

Claves foráneas

Una clave foránea es un campo de una tabla que es clave primaria en otra tabla. El propósito de la clave foránea es asegurar la integridad referencial de los datos.

La clave foránea debería comenzar por FK_ e ir seguido del nombre de la tabla que la contiene y luego el nombre de la tabla donde es clave primaria: FK_Employees_Projects, FK_Students_ContactNumbers, FK_Orders_Details

informatica/bases_de_datos/sql.1621598558.txt.gz · Última modificación: por tempwin