PI() 函數 (SQL PI() Function)
PI() 函數用於返回數學常數圓周率 π (pi) 的值,約等於 3.14159265358979。這個常數在幾何計算、三角函數運算等場景中經常使用。
這個函數在所有主流資料庫系統中(MySQL、SQL Server、PostgreSQL、Oracle)都可以使用,但 Oracle 中沒有直接的 PI() 函數,需要使用 ACOS(-1) 來取得 π 的值。
各資料庫支援
| 資料庫 | PI() | 替代方案 |
|---|---|---|
| MySQL | ✓ | - |
| PostgreSQL | ✓ | - |
| SQL Server | ✓ | - |
| Oracle | ✗ | ACOS(-1) |
| SQLite | ✓ | - |
PI() 語法 (Syntax)
PI()
PI() 函數不需要任何參數,直接返回圓周率的值。
PI() 函數用法範例 (Example)
基本範例
SELECT PI();
-- 結果:3.141592653589793(精度可能因資料庫而異)
計算圓的面積
圓的面積公式為 A = π × r²,其中 r 是半徑:
SELECT
circle_id,
radius,
ROUND(PI() * POWER(radius, 2), 2) AS area
FROM
circles;
| circle_id | radius | area |
|---|---|---|
| 1 | 5 | 78.54 |
| 2 | 10 | 314.16 |
| 3 | 2.5 | 19.63 |
計算圓的周長
圓的周長公式為 C = 2 × π × r:
SELECT
circle_id,
radius,
ROUND(2 * PI() * radius, 2) AS circumference
FROM
circles;
| circle_id | radius | circumference |
|---|---|---|
| 1 | 5 | 31.42 |
| 2 | 10 | 62.83 |
| 3 | 2.5 | 15.71 |
計算球體的體積
球體的體積公式為 V = (4/3) × π × r³:
SELECT
sphere_id,
radius,
ROUND((4.0/3.0) * PI() * POWER(radius, 3), 2) AS volume
FROM
spheres;
角度與弧度轉換
角度轉弧度公式:弧度 = 角度 × (π / 180)
弧度轉角度公式:角度 = 弧度 × (180 / π)
-- 角度轉弧度
SELECT
90 AS degrees,
90 * (PI() / 180) AS radians;
-- 結果:radians = 1.5707963267948966(即 π/2)
-- 弧度轉角度
SELECT
PI() AS radians,
PI() * (180 / PI()) AS degrees;
-- 結果:degrees = 180
大多數資料庫也提供了 RADIANS() 和 DEGREES() 函數來進行這些轉換:
SELECT RADIANS(180); -- 結果:3.141592653589793
SELECT DEGREES(PI()); -- 結果:180
搭配三角函數使用
-- 計算 sin(90°) = sin(π/2)
SELECT SIN(PI() / 2); -- 結果:1
-- 計算 cos(180°) = cos(π)
SELECT COS(PI()); -- 結果:-1
-- 計算 tan(45°) = tan(π/4)
SELECT TAN(PI() / 4); -- 結果:約 1
Oracle 中的替代方案
Oracle 資料庫沒有內建的 PI() 函數,但可以使用反餘弦函數來計算 π:
-- Oracle
SELECT ACOS(-1) AS pi_value FROM dual;
-- 結果:3.14159265358979
這是因為 cos(π) = -1,所以 ACOS(-1) = π。
相關函數
- 三角函數:
SIN(),COS(),TAN()等。 RADIANS():角度轉弧度。DEGREES():弧度轉角度。
注意事項
PI()返回的精度可能因資料庫和資料型別而異,通常為 15-17 位有效數字。- 在需要高精度計算的場景中,應注意浮點數運算可能產生的誤差。