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) := '你好,PL/SQL世界!';
BEGIN
DBMS_OUTPUT.PUT_LINE(greeting);
END;
在这里,我们声明了一个名为greeting
的常量,它保存一个字符串值。VARCHAR2(20)
意味着它是一个可变长度的字符串,最多可以保存20个字符。
输出:
你好,PL/SQL世界!
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) := '你好,';
-- 使用字面量的变量
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;
输出:
你好,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