PI() 函數 (SQL PI() Function)

PI() 函數用於返回數學常數圓周率 π (pi) 的值,約等於 3.14159265358979。這個常數在幾何計算、三角函數運算等場景中經常使用。

這個函數在所有主流資料庫系統中(MySQL、SQL Server、PostgreSQL、Oracle)都可以使用,但 Oracle 中沒有直接的 PI() 函數,需要使用 ACOS(-1) 來取得 π 的值。

各資料庫支援

資料庫PI()替代方案
MySQL-
PostgreSQL-
SQL Server-
OracleACOS(-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_idradiusarea
1578.54
210314.16
32.519.63

計算圓的周長

圓的周長公式為 C = 2 × π × r

SELECT
    circle_id,
    radius,
    ROUND(2 * PI() * radius, 2) AS circumference
FROM
    circles;
circle_idradiuscircumference
1531.42
21062.83
32.515.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 位有效數字。
  • 在需要高精度計算的場景中,應注意浮點數運算可能產生的誤差。