# 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.

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.

## Related Functions

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.