Determinar si una cadena es o no vocal:
CREATE FUNCTION `esvocal`(cadena char(1)) RETURNS tinyint(1) BEGIN RETURN lcase(cadena) regexp '[aeiou]'; END
Contar las vocales de una cadena:
CREATE FUNCTION `vocales`(cadena varchar(100)) RETURNS int(11) BEGIN declare total,cont int default 0; while cont<length(cadena) do set cont=cont+1; if esvocal(substring(cadena,cont,1)) then set total=total+1; end if; end while; RETURN total; END
Cambiar las vocales a mayúsculas y el resto a minúsculas:
CREATE FUNCTION `texto_molon`(cadena varchar(100)) RETURNS varchar(100) BEGIN declare cont int default 1; declare res varchar(100) default ''; declare c varchar(1); while cont<length(cadena) do set c=substring(cadena,cont,1); if esvocal(c) then set res=concat(res,ucase(c)); else set res=concat(res,lcase(c)); end if; set cont=cont+1; end while; RETURN res; END