Cosas que olvido sobre SQL

Si bien considero saber usar SQL al nivel suficiente con el cual hacer una aplicación simple, al menos nunca me he visto en la necesidad de ir mas allá de hacer un left join, siempre olvido su sintaxis, por eso aquí mantendré una lista de comandos que uso constantemente.

Todos los datos son basados en MySQL, que es la base de datos que mas utilizo.

1 - Crear tabla

Lo mas basico, pero que siempre falla por una razon o por otra y debo buscar en que parte de la sintaxis falle.

create table usuario
(
 id          int           primary key auto_increment,
 nombre      varchar(255)  not null,
 password    binary(32)    not null,
 salt        binary(16)    not null,
 trabajador  int           not null,
 foreign key (trabajador)  references trabajador (id),
 inserted_at timestamp,
 modified_at timestamp,
);

2 - Como usar on delete y on update

Cuando se crean foreign keys se tiene la opción de agregar on delete y on update constraints, siempre olvido exactamente que significa cada modo de estos constraints así que para ilustrarlos usare el siguiente modelo:

create table trabajador
(
 id     int           primary,
 nombre varchar(255)  not null
);

create table usuario
(
 id            int           primary key,
 nombre        varchar(255)  not null,
 trabajador_id int           not null,
 foreign key (trabajador_id) references trabajador on (id)
);

ON UPDATE

ON DELETE

3 - Creación de foreign keys fuera del create table

Siempre que tengo una tabla y la quiero relacionar con una recien creada aparece tema, nunca es facil encontrar ejemplos de la sintaxis porque siempre muestran como se hace dentro de un create table.

alter table usuario add constraint fk_usuario_trabajador 
foreign key (trabajador_id) references trabajador (id);