Do you need to use sine, cosine, or tangent functions in your queries or database code?
Oracle has plenty of those functions you can use.
Learn how to use them and see some examples in this article.
What Are The Mathematical Functions?
The mathematical functions are those that calculate the sine, cosine, and tangent of other numbers. There are also some other similar functions, that calculate the “arc cosine” and other concepts that I barely remember from high school maths.
The functions in this article are:
- SIN: Calculate the sine of a number. The sine is the ratio of the length of the side of the triangle opposite the angle to the length of the triangle’s hypotenuse.
- COSIN: Calculate the cosine of a number, which is the ratio of the side adjacent to the acute angle to the hypotenuse.
- TAN: Calculate the tangent of a number, which is the ratio of the side opposite the acute angle to the side adjacent to the angle.
- SINH: Calculate the hyperbolic sine of a number
- COSH: Calculate the hyperbolic cosine of a number
- TANH: Calculate the hyperbolic tangent of a number
- ASIN: Calculate the arc sine of a number
- ACOS: Calculate the arc cosine of a number
- ATAN: Calculate the arc tangent of a number
- ATAN2: Calculate the arc tangent of two numbers
- LN: Calculate the natural logarithm of a number.
- EXP: Calculate the value of e raised to a specified power. The value of e is a mathematical constant, and it is roughly equal to 2.71828183.
If you’re not sure what a hyperbolic or arc sine, cosine, or tangent is, you can find out here.
Syntax and Parameters
The syntax of most of these functions are the same:
SIN (number) COS (number) TAN (number) SINH (number) COSH (number) TANH (number) ASIN (number) ACOS (number) ATAN (number) LN (number) EXP (number)
The parameters of the SIN and similar functions are:
- number (mandatory): The number used to calculate the return value (e.g. sine or arc tangent, depending on the function).
However, the ATAN2 syntax is slightly different:
ATAN2 ( number1 [/|,] number2 )
For the ATAN2 function, it can be written as either number1,number2 or number1/number2. Both formats produce the same results.
For ATAN2, the parameters are:
- number1 (mandatory): The first number to use in the arc tangent calculation.
- number2 (mandatory): The second number to use in the arc tangent calculation.
There are some things to note about the parameters for all of these functions:
- The number parameters can be any numeric data type. If the data type is a BINARY_FLOAT, the return type is a BINARY_DOUBLE. Otherwise, the return type is the same as the type of the parameter.
- For ASIN, ACOS, and ATAN, the function returns the same data type as the input data type (unless the input is a BINARY_FLOAT, then the function returns a BINARY_DOUBLE).
- For ATAN2, the function returns NUMBER (unless either of the inputs is a BINARY_FLOAT, then the function returns a BINARY_DOUBLE).
- For COSH, the function returns a DECIMAL value.
- For ASIN and ACOS, the number must be in the range of -1 to 1.
Mathematical Function Examples
Here are some examples of these functions.
SIN Function Examples
SELECT
SIN(20) AS sin_20,
SIN(1) AS sin_1,
SIN(6) AS sin_6
FROM dual;
Result:
SIN_20 | SIN_1 | SIN_6 |
0.9129452507 | 0.8414709848 | -0.2794154982 |
COS Function Examples
SELECT
COS(3.141) AS cos_31,
COS(1) AS cos_1,
COS(5.2) AS cos_52
FROM dual;
Result:
COS_31 | COS_1 | COS_52 |
-0.9999998244 | 0.540302305 | 0.46851667 |
TAN Function Examples
SELECT
TAN(4) AS tan_4,
TAN(19) AS tan_19,
TAN(1.2) AS tan12
FROM dual;
Result:
TAN_4 | TAN_19 | TAN_12 |
1.157821282 | 0.1515894706 | 2.572151622 |
SINH Function Examples
SELECT
SINH(1) AS sinh_1,
SINH(0) AS sinh_0,
SINH(4.3) AS sinh_43
FROM dual;
Result:
SINH_1 | SINH_0 | SINH_43 |
1.175201194 | 0 | 36.84311257 |
COSH Function Examples
SELECT
COSH(1) AS cosh_1,
COSH(0) AS cosh_0,
COSH(15.8) AS cosh_158
FROM dual;
Result:
COSH_1 | COSH_0 | COSH_158 |
1.543080635 | 1 | 3637665.979 |
TANH Function Examples
SELECT
TANH(1) AS tanh_1,
TANH(0) AS tanh_0,
TANH(9.1) AS tanh_91
FROM dual;
Result:
TANH_1 | TANH_0 | TANH_91 |
0.761594156 | 0 | 0.9999999751 |
ASIN Function Example
SELECT
ASIN(-0.4) AS asin_value
FROM dual;
Result:
ASIN_VALUE |
-0.4115168461 |
ACOS Function Example
SELECT
ACOS(0.31) AS acos_value
FROM dual;
Result:
ACOS_VALUE |
1.255603294 |
ATAN Function Example
SELECT
ATAN(1.1) AS atan_value
FROM dual;
Result:
ATAN_VALUE |
0.8329812667 |
ATAN2 Function Example
SELECT
ATAN2(3, 1.6) AS atan2_value
FROM dual;
Result:
ATAN2_VALUE |
1.080839001 |
LN Function Examples
SELECT
LN(10) AS ln_10,
LN(50) AS ln_50,
LN(2.1) AS ln_2_1,
LN(102.9) AS ln_102_9
FROM dual;
Results:
LN_10 | LN_50 | LN_2_1 | LN_102_9 |
2.302585093 | 3.912023005 | 0.7419373447 | 4.633757643 |
EXP Function Examples
SELECT EXP(1) AS exp_1,
EXP(2) AS exp_2,
EXP(5) AS exp_5,
EXP(4.2) AS exp_42,
EXP(-1) AS exp_m1
FROM dual;
Results:
EXP_1 | EXP_2 | EXP_5 | EXP_42 | EXP_M1 |
2.7182818284 | 7.38905609893065022 | 148.4131591025 | 66.68633104 | 0.3678794411714 |
More Information
If you want to know more about SQL functions, you can find a full list of Oracle SQL functions here.
Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!