Funciones de MySQL: Cadena, Numérico, Definido por el usuario, Almacenado

 

¿Cuáles son las funciones?

MySQL puede hacer mucho más que simplemente almacenar y recuperar datos . También podemos realizar manipulaciones en los datos antes de recuperarlos o guardarlos. Ahí es donde entran las Funciones de MySQL. Las funciones son simplemente piezas de código que realizan algunas operaciones y luego devuelven un resultado. Algunas funciones aceptan parámetros mientras que otras funciones no aceptan parámetros.

Veamos brevemente un ejemplo de función MySQL. Por defecto, MySQL guarda los tipos de datos de fecha en el formato “AAAA-MM-DD”. Supongamos que hemos creado una aplicación y nuestros usuarios desean que la fecha se devuelva en el formato “DD-MM-YYYY”, podemos usar la función incorporada MySQL DATE_FORMAT para lograr esto. DATE_FORMAT es una de las funciones más utilizadas en MySQL. Lo veremos con más detalles a medida que desarrollemos la lección.

¿Por qué usar funciones?

Basado en el ejemplo dado en la introducción, las personas con experiencia en programación de computadoras pueden estar pensando “¿Por qué molestar a las funciones de MySQL? ¿Se puede lograr el mismo efecto con el lenguaje de scripting / programación?”  Es cierto que podemos lograr eso escribiendo algunos procedimientos / funciones en el programa de aplicación.

Volviendo a nuestro ejemplo de FECHA en la introducción, para que nuestros usuarios obtengan los datos en el formato deseado, la capa de negocios deberá realizar el procesamiento necesario.

Esto se convierte en un problema cuando la aplicación tiene que integrarse con otros sistemas. Cuando usamos funciones de MySQL como DATE_FORMAT, podemos tener esa funcionalidad integrada en la base de datos y cualquier aplicación que necesite los datos la obtiene en el formato requerido. Esto reduce el re-trabajo en la lógica comercial y reduce las inconsistencias de datos.

Otra razón por la que deberíamos considerar el uso de las funciones de MySQL es el hecho de que puede ayudar a reducir el tráfico de red en las aplicaciones cliente / servidor . Business Layer solo necesitará realizar llamadas a las funciones almacenadas sin necesidad de manipular datos. Por término medio, el uso de funciones puede ayudar a mejorar en gran medida el rendimiento general del sistema.

Tipos de funciones

Funciones integradas

MySQL viene incluido con una serie de funciones integradas. Las funciones integradas son simplemente funciones que ya vienen implementadas en el servidor MySQL. Estas funciones nos permiten realizar diferentes tipos de manipulaciones en los datos. Las funciones integradas se pueden clasificar básicamente en las siguientes categorías más utilizadas.

  • Funciones de cadenas – operan en tipos de datos de cadena
  • Funciones numéricas : opere en tipos de datos numéricos
  • Funciones de fecha : operan en tipos de datos de fecha
  • Funciones agregadas : opere en todos los tipos de datos anteriores y produzca conjuntos de resultados resumidos.
  • Otras funciones : MySQL también admite otros tipos de funciones incorporadas, pero limitaremos nuestra lección a las funciones nombradas anteriormente únicamente.

 

Veamos ahora cada una de las funciones mencionadas anteriormente en detalle. Explicaremos las funciones más utilizadas utilizando nuestro “Myflixdb”.

Funciones de cadena

Ya vimos lo que hacen las funciones de cadena. Veremos un ejemplo práctico que los usa. En nuestra tabla de películas, los títulos de las películas se almacenan usando combinaciones de letras mayúsculas y minúsculas. Supongamos que queremos obtener una lista de consulta que devuelva los títulos de las películas en letras mayúsculas. Podemos usar la función “UCASE” para hacer eso. Toma una cadena como parámetro y convierte todas las letras en mayúsculas. El script que se muestra a continuación demuestra el uso de la función “UCASE”.

AQUÍ

  • UCASE (title) es la función incorporada que toma el título como parámetro y lo devuelve en letras mayúsculas con el nombre de alias upper_case_title.

Ejecutar el script anterior en MySQL workbench contra Myflixdb nos da los siguientes resultados que se muestran a continuación.

 

movie_id título UCASE (‘título’)
dieciséis 67% culpable 67% CULPABLE
6 Ángeles y demonios Código Nombre Negro
5 Las hijas de papá LAS CHICAS DEL DADDY
7 Código da Vinci CÓDIGO DA VINCI
2 Olvidando a Sarah Marshal OLVIDANDO SARAH MARSHAL
9 Honey Mooners MIEMBROS DE LA MIEL
19 película 3 PELÍCULA 3
1 Piratas del Caribe 4 PIRATAS DEL CARIBE 4
18 película de muestra MUESTRA PELÍCULA
17 El gran dictador EL GRAN DICTADOR
3 X Men X MEN

MySQL admite varias funciones de cadena. Para obtener una lista completa de todas las funciones de cadena incorporadas, consulte este enlace http://dev.mysql.com/doc/refman/5.0/en/string-functions.html en el sitio web de MySQL.

Funciones numéricas

Como se mencionó anteriormente, estas funciones operan en tipos de datos numéricos. Podemos realizar cálculos matemáticos sobre datos numéricos en las declaraciones SQL.

Operadores aritméticos

MySQL admite los siguientes operadores aritmáticos que se pueden usar para realizar cálculos en las sentencias de SQL.

Nombre Descripción
DIV División entera
/ División
Sustracción
+ Adición
* Multiplicación
% o MOD Módulo

 

Veamos ahora ejemplos de cada uno de los operadores anteriores

División entera (DIV)

Ejecutar el script anterior nos da los siguientes resultados.

3

Operador de división (/)

Veamos ahora el ejemplo del operador de división. Modificaremos el ejemplo de DIV.

Ejecutar el script anterior nos da los siguientes resultados.

3.8333

Operador de resta (-)

Veamos ahora el ejemplo del operador de resta. Utilizaremos los mismos valores que en los dos ejemplos anteriores

Ejecutar el script anterior nos da 17

Operador adicional (+)

Veamos ahora el ejemplo del operador de suma. Modificaremos el ejemplo anterior.

Ejecutar el script anterior nos da 29

Operador de multiplicación (*)

Veamos ahora el ejemplo del operador de multiplicación. Usaremos los mismos valores que en los ejemplos anteriores.

Ejecutar el script anterior nos da los siguientes resultados.

multiplication_result
138

 

Operador Modulo (-)

El operador de módulo divide N por M y nos da el recordatorio. Veamos ahora el ejemplo del operador de módulo. Usaremos los mismos valores que en los ejemplos anteriores.

OR

 

Ejecutar el script anterior nos da 5

Veamos ahora algunas de las funciones numéricas comunes en MySQL.

Piso : esta función elimina decimales de un número y lo redondea al número más bajo más cercano. El script que se muestra a continuación demuestra su uso.

 

Ejecutar el script anterior nos da los siguientes resultados.

Floor_result
3

 

Redondear : esta función redondea un número con decimales al número entero más cercano. El script que se muestra a continuación demuestra su uso.

Ejecutar el script anterior nos da los siguientes resultados.

Round_result
4

 

Rand : esta función se usa para generar un número aleatorio, su valor cambia cada vez que se llama a la función. El script que se muestra a continuación demuestra su uso.

Funciones almacenadas

Las funciones almacenadas son como las funciones integradas, excepto que usted tiene que definir la función almacenada usted mismo. Una vez que se ha creado una función almacenada, se puede usar en sentencias SQL como cualquier otra función. La sintaxis básica para crear una función almacenada es la que se muestra a continuación

AQUÍ

  • “CREATE FUNCTION sf_name ([parameter (s)])” es obligatorio y le dice al servidor MySQL que cree una función llamada ‘sf_name’ ‘con parámetros opcionales definidos entre paréntesis’.
  • El “tipo de datos RETURNS” es obligatorio y especifica el tipo de datos que la función debe devolver.
  • “DETERMINISTIC” significa que la función devolverá los mismos valores si se le proporcionan los mismos argumentos.
  • “DECLARACIONES” es el código de procedimiento que ejecuta la función.

Veamos ahora un ejemplo práctico que implementa una función incorporada. Supongamos que queremos saber qué películas alquiladas son anteriores a la fecha de devolución. Podemos crear una función almacenada que acepte la fecha de devolución como parámetro y luego la compare con la fecha actual en el servidor MySQL. Si la fecha actual es menor que la fecha de regreso de la película, entonces devolvemos “No”, sino que devolvemos “Sí”. La secuencia de comandos que se muestra a continuación nos ayuda a lograr eso

La ejecución del script anterior creó la función almacenada sf_past_movie_return_date.

Probemos ahora nuestra función almacenada.

Ejecutar el script anterior en MySQL workbench contra myflixdb nos da los siguientes resultados.

movie_id número de socio Fecha de regreso CURDATE () sf_past_movie_return_date (‘return_date’)
1 1 NULO 04-08-2012 NULO
2 1 25-06-2012 04-08-2012
2 3 25-06-2012 04-08-2012
2 2 25-06-2012 04-08-2012
3 3 NULO 04-08-2012 NULO

 

Funciones definidas por el usuario

MySQL también admite funciones definidas por el usuario que amplían MySQL. Las funciones definidas por el usuario son funciones que puede crear utilizando un lenguaje de programación como C, C ++, etc. y luego agregarlas al servidor MySQL. Una vez agregados, se pueden usar como cualquier otra función.

Resumen

  • Las funciones nos permiten mejorar las capacidades de MySQL.
  • Las funciones siempre devuelven un valor y opcionalmente pueden aceptar parámetros.
  • Las funciones integradas son funciones que se envían con MySQL. Se pueden clasificar de acuerdo con los tipos de datos en los que operan, es decir, las cadenas, la fecha y las funciones numéricas integradas.
  • Las funciones almacenadas son creadas por el usuario dentro del servidor MySQL y pueden usarse en sentencias SQL.
  • Las funciones definidas por el usuario se crean fuera de MySQL y se pueden incorporar al servidor MySQL.
0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *