CHAR é um tipo de dado de tamanho fixo. Se você definir no banco um char de 20, ele alocará espaço no banco sempre o tamanho de 20, mesmo que coloque um texto menor
VARCHAR significa que é um tipo de dado de tamanho variado. Se você definir um varchar de 20, ele pode armazenar até 20. Se colocar algo de tamanho 10, ele terá 10
TEXT é para dados de texto muio grande. Ele armazena se não me engano até 65.535 caracteres
Suponha que vc está criando uma coluna que sempre vai ter valor fixo, PF ou PJ para indicar que é pessoa física ou pessoa jurídica. Neste caso é indicado o CHAR é um texto pequeno e sempre terá esse tamanho.
Agora é uma coluna que pode ou não ter valores e os valores podem variar de tamanho, como por exemplo um nome. Neste caso é o mais indicado o varchar
Agora se coluna for para salvar textos longos, exemplo um CV, um texto com a análise técnica, ou texto com vários paragrafos, neste caso é indicado usar o TEXT
Se a resposta te ajudou lembre de marcar como solução.