PL/SQL - 常數與字面量:初學者指南
你好,有抱負的程式設計師們!今天,我們將踏上一段令人興奮的旅程,進入PL/SQL的世界,特別聚焦於常數和字面量。別擔心這些術語現在聽起來像外星語言——在本教程結束之前,你將能夠像個老手一樣輕鬆地使用這些詞語!
常數和字面量是什麼?
在我們深入探討之前,讓我們分解這些術語:
- 一個常數是在程式執行過程中不會改變的值。
- 一個字面量是直接出現在程式中的值。
將常數想成你總是會使用的最喜歡的數字,將字面量想成你寫在紙上的數字。讓我們更詳細地探討這些概念!
宣告一個常數
在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 平方單位。
在這個例子中,我們使用了常數(pi
和greeting
)、數字字面量(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