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) := '你好,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 平方单位。

在这个示例中,我们使用了常量(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