Para eso precisamente sirven los manuales...
Partamos de la base que existen muchas funciones ya implementadas en los DBMS, y MySQL no es una excepción. Algunas de ellas son genéricas y usadas por todos los DBMS, algunas de ellas se usa de diferente forma, como por ejemplo CONCAT(), que en MySQL permite crear una cadena con un conjunto de N valores, y en Oracle sólo admite dos.
El paseo por las funciones puede ser largo, por lo que te remitiré directamente al manual de referencia (
Capítulo 12. Funciones y operadores).
Respecto al uso de las mismas, dependen de lo que tu necesitas hacer con ellas y de cómo está estructurado el servidor de la base en algunos casos. Esto último es a causa de que en ciertos casos las funciones devuelven datos que deseas usar y que debe ser locales, pero se procesan en servidor y al ser remoto la información es distinta.
Cito un caso: Las funciones de fecha como NOW(), CURDATE(), CURTIME(), LOCALTIME, LOCALTIME() y otras semejantes, están afectadas por la fecha del servidor, por lo cual pueden no tener el efecto esperado.
Otro: Ciertas conversiones de caracteres están afectadas por los CHARSET definidos entre los formularios de toma de datos y los de la base de datos.
Al margen de estas cosas, también existe otro tipo de funciones: Stored Functions, que son básicamente procedimientos almacenados que reciben parámetros sólo de entrada y devuelven un sólo valor, el cual no puede ser jamás un registro o conjunto de registros.
¿Me acerco con esto a lo que preguntas?