PL/SQL - Операторы
Здравствуйте, стремящиеся к знаниям программисты! Сегодня мы отправимся в увлекательное путешествие в мир операторов PL/SQL. Не волнуйтесь, если вы еще ни разу не писали строку кода – мы начнем с самых азов и будем двигаться дальше. К концу этого урока вы будете manipulate данные, как профессионaл!
Арифметические операторы
Давайте начнем с чего-то знакомого: математики! Операторы арифметики в PL/SQL работают так же, как и те, что выучили в школе. Они позволяют нам выполнять базовые математические операции с числами.
Вот таблица арифметических операторов в PL/SQL:
Оператор | Описание | Пример |
---|---|---|
+ | Сложение | 5 + 3 = 8 |
- | Вычитание | 10 - 4 = 6 |
* | Умножение | 3 * 4 = 12 |
/ | Деление | 15 / 3 = 5 |
** | Степень | 2 ** 3 = 8 |
Давайте посмотрим, как они работают в простом примере кода PL/SQL:
DECLARE
num1 NUMBER := 10;
num2 NUMBER := 5;
result NUMBER;
BEGIN
result := num1 + num2;
DBMS_OUTPUT.PUT_LINE('Сложение: ' || result);
result := num1 - num2;
DBMS_OUTPUT.PUT_LINE('Вычитание: ' || result);
result := num1 * num2;
DBMS_OUTPUT.PUT_LINE('Умножение: ' || result);
result := num1 / num2;
DBMS_OUTPUT.PUT_LINE('Деление: ' || result);
result := num1 ** 2;
DBMS_OUTPUT.PUT_LINE('Степень: ' || result);
END;
В этом примере мы declare две переменные num1
и num2
, и затем выполняем различные арифметические операции над ними. Результаты затем выводятся в output.
When you run this code, you'll see:
Сложение: 15
Вычитание: 5
Умножение: 50
Деление: 2
Степень: 100
Реляционные операторы
Теперь перейдем к реляционным операторам. Эти операторы используются для сравнения двух значений и определения между ними отношений. Они resemble вопросы, которые вы задаете при сравнении вещей: "Это больше, чем то?" или "Эти два одинаковые?"
Вот таблица реляционных операторов в PL/SQL:
Оператор | Описание | Пример |
---|---|---|
= | Равно | 5 = 5 is true |
<> | Не равно | 5 <> 3 is true |
< | Меньше | 3 < 5 is true |
> | Больше | 5 > 3 is true |
<= | Меньше или равно | 3 <= 3 is true |
>= | Больше или равно | 5 >= 5 is true |
Давайте посмотрим, как они работают:
DECLARE
a NUMBER := 10;
b NUMBER := 20;
BEGIN
IF a = b THEN
DBMS_OUTPUT.PUT_LINE('a равно b');
ELSIF a < b THEN
DBMS_OUTPUT.PUT_LINE('a меньше b');
ELSE
DBMS_OUTPUT.PUT_LINE('a больше b');
END IF;
IF a <> b THEN
DBMS_OUTPUT.PUT_LINE('a не равно b');
END IF;
END;
Этот код сравнивает a
и b
с использованием реляционных операторов. When you run it, you'll see:
a меньше b
a не равно b
Операторы сравнения
Операторы сравнения в PL/SQL довольно похожи на реляционные операторы, но они включают дополнительную функциональность, особенно для работы с NULL значениями и сравнения разных типов данных.
Вот таблица операторов сравнения:
Оператор | Описание |
---|---|
IS NULL | Проверяет, является ли значение NULL |
IS NOT NULL | Проверяет, является ли значение не NULL |
LIKE | Сопоставление шаблонов |
BETWEEN | Проверяет, находится ли значение в диапазоне |
IN | Проверяет, соответствует ли значение одному из значений в списке |
Давайте посмотрим пример:
DECLARE
name VARCHAR2(20) := 'John Doe';
age NUMBER := 25;
BEGIN
IF name IS NOT NULL THEN
DBMS_OUTPUT.PUT_LINE('Имя: ' || name);
END IF;
IF name LIKE 'J%' THEN
DBMS_OUTPUT.PUT_LINE('Имя начинается с J');
END IF;
IF age BETWEEN 20 AND 30 THEN
DBMS_OUTPUT.PUT_LINE('Возраст между 20 и 30');
END IF;
IF age IN (25, 30, 35) THEN
DBMS_OUTPUT.PUT_LINE('Возраст 25, 30 или 35');
END IF;
END;
Этот код демонстрирует различные операторы сравнения. When you run it, you'll see:
Имя: John Doe
Имя начинается с J
Возраст между 20 и 30
Возраст 25, 30 или 35
Логические операторы
Логические операторы позволяют нам combine несколько условий. Они resemble "и" и "или" в повседневном языке, когда мы описываем сложные ситуации.
Вот таблица логических операторов в PL/SQL:
Оператор | Описание |
---|---|
AND | Истина, если оба условия истинны |
OR | Истина, если одно из условий истинно |
NOT | Инвертирует результат условия |
Давайте посмотрим, как они работают:
DECLARE
age NUMBER := 25;
has_license BOOLEAN := TRUE;
BEGIN
IF age >= 18 AND has_license THEN
DBMS_OUTPUT.PUT_LINE('Вы можете водить машину');
END IF;
IF age < 18 OR NOT has_license THEN
DBMS_OUTPUT.PUT_LINE('Вы не можете водить машину');
ELSE
DBMS_OUTPUT.PUT_LINE('Вы можете водить машину');
END IF;
END;
Этот код проверяет, может ли человек водить машину на основе его возраста и наличия прав. When you run it, you'll see:
Вы можете водить машину
Вы можете водить машину
Приоритетность операторов в PL/SQL
Как и в математике, операторы PL/SQL имеют определенный порядок, в котором они evaluerated. Это называется приоритетностью операторов. Понимание этого важно для написания correct и предсказуемого кода.
Вот приоритетность операторов в PL/SQL, отhighest до lowest:
- Степень (**)
- Умножение (*), Деление (/)
- Сложение (+), Вычитание (-)
- Сравнительные операторы (=, <>, <, >, <=, >=)
- IS NULL, LIKE, BETWEEN, IN
- NOT
- AND
- OR
Давайте посмотрим пример, как это работает:
DECLARE
result BOOLEAN;
BEGIN
result := 5 > 3 AND 10 / 2 = 5 OR NOT (2 + 2 = 4);
IF result THEN
DBMS_OUTPUT.PUT_LINE('Результат ИСТИНА');
ELSE
DBMS_OUTPUT.PUT_LINE('Результат ЛОЖЬ');
END IF;
END;
В этом примере выражение evaluerated следующим образом:
- 10 / 2 = 5 (деление, затем сравнение)
- 5 > 3 (сравнение)
- 2 + 2 = 4 (сложение, затем сравнение)
- NOT (2 + 2 = 4) (логическое NOT)
- 5 > 3 AND 10 / 2 = 5 (логическое AND)
- Result of step 5 OR result of step 4 (логическое OR)
When you run this code, you'll see:
Результат ИСТИНА
И вот мы и добрались до конца! Мы рассмотрели основные типы операторов в PL/SQL. Помните, что практика делает мастера. Попробуйте написать свои собственные примеры кода и experiment с различными комбинациями операторов. Before you know it, вы будете легко писать сложные предложения PL/SQL!
Credits: Image by storyset