How the RAND() function works in Mariadb?

The RAND() function is a mathematical function in Mariadb that returns a random decimal number between 0 and 1.

Posted on

The RAND() function is a mathematical function in Mariadb that returns a random decimal number between 0 and 1. The function can be used to generate random numbers for various purposes, such as testing, sampling, simulation, or encryption.

Syntax

The syntax of the RAND() function is as follows:

RAND([seed])

The function takes one optional argument:

  • seed: An integer expression that represents the seed value for the random number generator. The seed value can be any valid integer value, such as a literal, a column, a function, or a variable. The seed value can be NULL.

The function returns a decimal value that represents the random number, as follows:

  • If the seed value is not specified, the function returns a random decimal number between 0 and 1, using the current system time as the seed value. The function returns a different random number every time it is called, unless the system time is the same.
  • If the seed value is specified, the function returns a random decimal number between 0 and 1, using the seed value as the seed value. The function returns the same random number every time it is called with the same seed value, unless the seed value is changed.

Examples

Example 1: Generating a random number without a seed value

The following example generates a random number between 0 and 1 using the RAND() function without a seed value.

SELECT RAND() AS random_number;

The output is:

+----------------------+
| random_number        |
+----------------------+
| 0.024923747428621863 |
+----------------------+

The output shows that the RAND() function returns a random decimal number between 0 and 1, using the current system time as the seed value. The output may vary depending on the system time.

Example 2: Generating a random number with a seed value

The following example generates a random number between 0 and 1 using the RAND() function with a seed value of 123.

SELECT RAND(123) AS random_number;

The output is:

+--------------------+
| random_number      |
+--------------------+
| 0.9277428611440052 |
+--------------------+

The output shows that the RAND() function returns a random decimal number between 0 and 1, using the seed value of 123 as the seed value. The output is the same every time the function is called with the same seed value, unless the seed value is changed.

There are some other functions that are related to the RAND() function, such as:

  • FLOOR(): This function returns the largest integer value that is less than or equal to a given number. The syntax of the function is FLOOR(number), where number is a numeric expression. The function returns an integer value that represents the result of the floor operation. For example, FLOOR(3.14) returns 3, and FLOOR(-3.14) returns -4.
  • CEIL(): This function returns the smallest integer value that is greater than or equal to a given number. The syntax of the function is CEIL(number), where number is a numeric expression. The function returns an integer value that represents the result of the ceiling operation. For example, CEIL(3.14) returns 4, and CEIL(-3.14) returns -3.
  • ROUND(): This function returns a number that is rounded to a specified number of decimal places. The syntax of the function is ROUND(number, [decimals]), where number is a numeric expression and decimals is an optional integer expression that specifies the number of decimal places to round to. The function returns a numeric value that represents the result of the rounding operation. For example, ROUND(3.14159, 2) returns 3.14, and ROUND(3.14159) returns 3.

Conclusion

The RAND() function is a useful function to return a random decimal number between 0 and 1. The function can be used to generate random numbers for various purposes, such as testing, sampling, simulation, or encryption. The function takes one optional argument, which is an integer expression that represents the seed value for the random number generator. The function returns a decimal value that represents the random number, as follows:

  • If the seed value is not specified, the function returns a random decimal number between 0 and 1, using the current system time as the seed value. The function returns a different random number every time it is called, unless the system time is the same.
  • If the seed value is specified, the function returns a random decimal number between 0 and 1, using the seed value as the seed value. The function returns the same random number every time it is called with the same seed value, unless the seed value is changed.
  • If the seed value is NULL, the function returns NULL.

The function can also be combined with other mathematical functions, such as FLOOR(), CEIL(), ROUND(), etc., to perform more complex operations on random numbers.