PL/SQL - 常數與字面量:初學者指南

你好,有抱負的程式設計師們!今天,我們將踏上一段令人興奮的旅程,進入PL/SQL的世界,特別聚焦於常數和字面量。別擔心這些術語現在聽起來像外星語言——在本教程結束之前,你將能夠像個老手一樣輕鬆地使用這些詞語!

PL/SQL - Constants and Literals

常數和字面量是什麼?

在我們深入探討之前,讓我們分解這些術語:

  • 一個常數是在程式執行過程中不會改變的值。
  • 一個字面量是直接出現在程式中的值。

將常數想成你總是會使用的最喜歡的數字,將字面量想成你寫在紙上的數字。讓我們更詳細地探討這些概念!

宣告一個常數

在PL/SQL中,宣告一個常數就像告訴你的程式,“嘿,記住這個值,這很重要,而且不會改變!”

這裡是基本語法:

常數名稱 CONSTANT 資料類型 := 值;

讓我們分解這個語法:

  • 常數名稱:這是你給常數的名字。
  • CONSTANT:這個關鍵字告訴PL/SQL我們正在宣告一個常數。
  • 資料類型:這指定了常數將會持有的數據類型(例如NUMBER、VARCHAR2等)。
  • :=:這是PL/SQL中的賦值運算符。
  • :這是你賦予常數的實際值。

示例 1:宣告一個數字常數

DECLARE
pi CONSTANT NUMBER(7,6) := 3.141592;
BEGIN
DBMS_OUTPUT.PUT_LINE('π的值是: ' || pi);
END;

在這個示例中,我們宣告了一個名為pi的常數,其值為3.141592。NUMBER(7,6)表示它是一個總共7位數的數字,其中6位是小數點後的數字。

當你執行這段代碼時,它會輸出:

π的值是: 3.141592

示例 2:宣告一個字符串常數

DECLARE
greeting CONSTANT VARCHAR2(20) := 'Hello, PL/SQL World!';
BEGIN
DBMS_OUTPUT.PUT_LINE(greeting);
END;

在這裡,我們宣告了一個名為greeting的常數,它持有字符串值。VARCHAR2(20)表示它是一個可變長度的字符串,最多可以持有20個字符。

輸出:

Hello, PL/SQL World!

PL/SQL 字面量

現在,讓我們來討論字面量。這些是你們在代碼中直接使用的原始值。PL/SQL支持多種類型的字面量:

1. 數字字面量

這些是數字。簡單吧?它可以是整數或浮點數。

DECLARE
age NUMBER := 25;  -- 整數字面量
height NUMBER := 5.9;  -- 浮點數字面量
BEGIN
DBMS_OUTPUT.PUT_LINE('年齡: ' || age);
DBMS_OUTPUT.PUT_LINE('身高: ' || height || ' 英尺');
END;

輸出:

年齡: 25
身高: 5.9 英尺

2. 字符字面量

這些是單個字符,用單引號括起。

DECLARE
grade CHAR := 'A';
BEGIN
DBMS_OUTPUT.PUT_LINE('你的成績是: ' || grade);
END;

輸出:

你的成績是: A

3. 字符串字面量

這些是用單引號括起的字符序列。

DECLARE
name VARCHAR2(20) := 'John Doe';
BEGIN
DBMS_OUTPUT.PUT_LINE('歡迎,' || name || '!');
END;

輸出:

歡迎,John Doe!

4. 布爾字面量

PL/SQL有三個布爾字面量:TRUE、FALSE和NULL。

DECLARE
is_student BOOLEAN := TRUE;
BEGIN
IF is_student THEN
DBMS_OUTPUT.PUT_LINE('這個人是一名學生。');
ELSE
DBMS_OUTPUT.PUT_LINE('這個人不是學生。');
END IF;
END;

輸出:

這個人是一名學生。

5. 日期字面量

日期字面量是用單引號括起的,並且必須是你的NLS_DATE_FORMAT參數指定的格式。

DECLARE
hire_date DATE := '01-JAN-2023';
BEGIN
DBMS_OUTPUT.PUT_LINE('僱用日期: ' || hire_date);
END;

輸出:

僱用日期: 01-JAN-23

總結

現在我們已經介紹了常數和字面量,讓我們看看如何在更複雜的例子中將它們一起使用:

DECLARE
-- 常數
pi CONSTANT NUMBER(7,6) := 3.141592;
greeting CONSTANT VARCHAR2(20) := 'Hello, ';

-- 使用字面量的變量
radius NUMBER := 5;
name VARCHAR2(20) := 'Alice';
is_circle BOOLEAN := TRUE;

-- 計算得到的值
area NUMBER;
BEGIN
IF is_circle THEN
area := pi * radius * radius;
DBMS_OUTPUT.PUT_LINE(greeting || name || '!');
DBMS_OUTPUT.PUT_LINE('你的圓的面積是: ' || ROUND(area, 2) || ' 平方單位。');
ELSE
DBMS_OUTPUT.PUT_LINE('這不是圓的計算。');
END IF;
END;

輸出:

Hello, Alice!
你的圓的面積是: 78.54 平方單位。

在這個例子中,我們使用了常數(pigreeting)、數字字面量(5)、字符串字面量('Alice')和布爾字面量(TRUE)。我們還使用這些值進行了計算,並顯示了結果。

結論

恭喜你!你剛剛踏出了進入PL/SQL常數和字面量世界的第一步。記住,常數就像忠實的朋友,會陪伴你走過整個程式,而字面量則是你創建PL/SQL杰作時的基石。

隨著你繼續你的程式設計旅程,你會發現自己越來越多地使用這些概念。它們是任何程式設計師工具箱中必不可少的工具,有助於使你的代碼更具可讀性、可維護性和效率。

持續練習,保持好奇心,在你意識到之前,你將能夠輕鬆地编写複雜的PL/SQL程序。快樂編程!

概念 描述 示例
常數 在程式執行過程中不會改變的值 pi CONSTANT NUMBER(7,6) := 3.141592;
數字字面量 直接在代碼中使用的數字 25, 5.9
字符字面量 用單引號括起的單個字符 'A'
字符串字面量 用單引號括起的字符序列 'John Doe'
布爾字面量 TRUE、FALSE或NULL中的一個 TRUE, FALSE, NULL
日期字面量 用單引號括起的日期值 '01-JAN-2023'

Credits: Image by storyset