J'ai indiqué les docs pou montrer que la commande DROP ne s'applique pas dans ce cas. De ce que je comprends, elle ne peut s’appliquer que sur une contrainte (ou un « CHECK ») qui a été explicitement définie sur la table (avec CONSTRAINT ou CHECK).
Par ailleurs je ne considère pas que « NOT NULL » soit explicitement une contrainte sur une colonne, mais simplement une limitation des valeurs possibles, exemple :
VARCHAR(30) : valeurs possibles toute chaîne de zéro à 30 caractères ;
VARCHAR(30) NOT NULL : toute chaîne de 1 à 30 caractères.
De même DEFAULT xxx, n'est pas à proprement parler une contrainte sur une colonne. Cela permet juste d'avoir la valeur xxx par défaut lorsqu'on ne la précise pas.
Cela doit pouvoir se modifier de la même manière :
ALTER TABLE `table_users` MODIFY COLUMN `user_admin` BOOLEAN;
Pour la troisième commande il manque au moins une chose : la définition de la vérification (CHECK) à faire sur une colonne au moment de la création de la table ou après.
Attention : je ne suis pas du tout un spécialiste de SQL et des bases de données.