PL/SQL - Константы и Literals: Путеводитель для начинающих

Здравствуйте, начинающие программисты! Сегодня мы отправимся в увлекательное путешествие в мир PL/SQL, конкретно focusing на Константы и Literals. Не беспокойтесь, если эти термины звучат как инопланетный язык - к концу этого учебника вы будете использовать эти слова, как опытный профессионал!

PL/SQL - Constants and Literals

Что такое Константы и Literals?

Прежде чем мы углубимся, давайте разберем эти термины:

  • Константа - это значение, которое не изменяется в течение выполнения программы.
  • Literal - это значение, которое出现在 напрямую в программе.

Представьте константы как ваш любимый номер, который вы всегда используете, а literals как числа, которые вы записываете на листе бумаги. Давайте рассмотрим эти conceptы более подробно!

Объявление Константы

В PL/SQL, объявление константы похоже на то, что вы говорите своей программе: "Эй, запомни это значение, оно важно и не изменится!"

Вот базовый синтаксис:

constant_name CONSTANT datatype := value;

Давайте разберем это:

  • constant_name: Это имя, которое вы даете своей константе.
  • CONSTANT: Этот ключевой запрос tells PL/SQL, что мы объявляем константу.
  • datatype: Это specifies, какой тип данных будет хранить константа (например, NUMBER, VARCHAR2 и т.д.).
  • :=: Это оператор присваивания в PL/SQL.
  • value: Это фактическое значение, которое вы присваиваете константе.

Пример 1: Объявление Numeric Константы

DECLARE
pi CONSTANT NUMBER(7,6) := 3.141592;
BEGIN
DBMS_OUTPUT.PUT_LINE('Значение pi: ' || pi);
END;

В этом примере мы объявляем константу с именем pi и значением 3.141592. NUMBER(7,6) означает, что это число с 7 цифрами в total, 6 из которых после десятичной точки.

Когда вы выполните этот код, он выведет:

Значение pi: 3.141592

Пример 2: Объявление String Константы

DECLARE
greeting CONSTANT VARCHAR2(20) := 'Здравствуйте, мир PL/SQL!';
BEGIN
DBMS_OUTPUT.PUT_LINE(greeting);
END;

Здесь мы объявляем константу с именем greeting, которая хранит строковое значение. VARCHAR2(20) означает, что это строка переменной длины, которая может содержать до 20 символов.

Вывод:

Здравствуйте, мир PL/SQL!

PL/SQL Literals

Теперь давайте поговорим о literals. Это raw значения, которые вы используете в своем коде. PL/SQL поддерживает несколько типов literals:

1. Numeric Literals

Это числа. Просто, правда? Они могут быть целыми или浮点数.

DECLARE
age NUMBER := 25;  -- Целый literal
height NUMBER := 5.9;  -- Float-point literal
BEGIN
DBMS_OUTPUT.PUT_LINE('Возраст: ' || age);
DBMS_OUTPUT.PUT_LINE('Рост: ' || height || ' футов');
END;

Вывод:

Возраст: 25
Рост: 5.9 футов

2. Character Literals

Это отдельные символы, заключенные в одинарные кавычки.

DECLARE
grade CHAR := 'A';
BEGIN
DBMS_OUTPUT.PUT_LINE('Ваш балл: ' || grade);
END;

Вывод:

Ваш балл: A

3. String Literals

Этоsequence символов, заключенных в одинарные кавычки.

DECLARE
name VARCHAR2(20) := 'Иван Иванов';
BEGIN
DBMS_OUTPUT.PUT_LINE('Добро пожаловать, ' || name || '!');
END;

Вывод:

Добро пожаловать, Иван Иванов!

4. Boolean Literals

PL/SQL имеет три boolean literals: 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. Date Literals

Date literals заключены в одинарные кавычки и должны быть в формате, указанном параметром NLS_DATE_FORMAT.

DECLARE
hire_date DATE := '01-JAN-2023';
BEGIN
DBMS_OUTPUT.PUT_LINE('Дата приема на работу: ' || hire_date);
END;

Вывод:

Дата приема на работу: 01-JAN-23

Объединение всего вместе

Теперь, когда мы рассмотрели константы и literals, давайте посмотрим, как мы можем использовать их вместе в более сложном примере:

DECLARE
-- Константы
pi CONSTANT NUMBER(7,6) := 3.141592;
greeting CONSTANT VARCHAR2(20) := 'Здравствуйте, ';

-- Переменные, использующие literals
radius NUMBER := 5;
name VARCHAR2(20) := 'Алиса';
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;

Вывод:

Здравствуйте, Алиса!
Площадь вашего круга: 78.54 квадратных единиц.

В этом примере мы использовали константы (pi и greeting), numeric literals (5), string literals ('Алиса') и boolean literal (TRUE). Мы также выполнили вычисление с использованием этих значений и показали результат.

Заключение

Поздравления! Вы только что сделали свои первые шаги в мир констант и literals PL/SQL. Помните, константы - это как верные друзья, которые остаются с вами на протяжении всей программы, а literals - это строительные блоки, которые вы используете для создания своих шедевров PL/SQL.

По мере продолжения вашего пути в программировании, вы будете все чаще использовать эти conceptы. Они являются важными инструментами в арсенале любого программиста, помогая сделать ваш код более читаемым, легко поддерживаемым и эффективным.

Продолжайте практиковаться, оставайтесь любопытными, и скоро вы сможете легко писать сложные программы PL/SQL. Счастливого кодирования!

Credits: Image by storyset