номер строки 1, вторая - номер 2 и так далее. Например, следующий
запрос включает R0WNUM при получении строк из таблицы customers:
□ SELECT ROWNUM, customer_id, first_name, last_name
FROM customers;
CUSTOMER_ID
FIRST_NAME
LAST_NAME
DOB
NOT NULL NUMBER(38)
NOT NULL VARCHAR2(10)
NOT NULL VARCHAR2(10)
PHONE
DATE
VARCHAR2(12)
Номера строк
Выборка информации из таблиц базы данных 33
ROWNUM CUSTOMER_ID FIRST_NAME LAST_NAME
1 1 John Brown
2 2 Cynthia Green
3 3 Steve White
4 4 G a il Black
5 5 Doreen Blue
Вот ещё один пример:
□ SELECT ROWNUM, customer_id, first_name, last_name
FROM customers
WHERE customer_id = 3;
ROWNUM CUSTOMER_ID FIRST_NAME LAST_NAME
1 3 Steve White
Выполнение арифметических операций
Oracle позволяет выполнять в операторах SQL арифметические действия,
используя для этого арифметические выражения, куда входят все арифметические
операторы: сложение, вычитание, умножение и деление. Арифметические
выражения состоят из двух операндов - чисел или дат - и
арифметического оператора. В приведенной ниже таблице приведены
эти четыре арифметических оператора:
Оператор Описание
+ Сложение
Вычитание
* Умножение
/ Деление
В следующем примере показано, как использовать оператор умножения
(* ) для вычисления произведения чисел 2 и 6 (числа 2 и б являются
операндами):
□ SELECT 2*6
FROM dual;
2*6
12
Как видно из этого примера, на экране отображается правильный результат
- 12. Использование в этом операторе SQL конструкции 2*6 является
примером использования выражений. Выражение может содержать
комбинацию столбцов, литералов и операторов.
Арифметические действия с датами
Операторы сложения и вычитания можно использовать с датами. Например,
можно прибавить к дате число, представляющее количество дней.
34 Глава 2
В следующем примере к дате 25 июля 2007 года прибавляется 2 дня, а получающаяся
в результате дата выводится на экран:
□ SELECT T0_DATE('25—JUL—2007') + 2
FROM dual;
T0_DATE(
27-JUL-07
Примечание Использованная в операторе конструкция T0_DATE() является функцией, конвертирующей
строку в дату (подробнее см. в главе 5).
Таблица dual
Следует обратить внимание на использование в предыдущем примере
таблицы dual. Я уже упоминал таблицу dual в предыдущей главе - это
таблица, содержащая всего одну строку. Приведенные ниже выходные
данные команды DESCRIBE знакомят вас со структурой таблицы dual, а
оператор SELECT показывает строку из таблицы duaclass="underline"
DESCRIBE dual;
Name N ull? Type
DUMMY VARCHAR2(1)
SELECT *
FROM dual;
D
X
Следует обратить внимание, что в таблице dual всего один столбец
VARCHAR2, который называется DUMMY (пустышка), где хранится всего одна
строка со значением X.
В следующем примере из даты 2 августа 2007 г. вычитаются три дня:
□ SELECT T0_DATE('02-AUG-2007') - 3
FROM dual;
T0_DATE('
30-JUL-07
Можно также вычитать одну дату из другой, что даст количество дней
между этими двумя датами. В следующем примере из даты 2 августа 2007 г.
вычитается дата 25 июля 2007 г.:
□ SELECT T0_DATE('02-AUG-2007') - T0_DATE('25-JUL-2007')
FROM dual;
Выборка информации из таблиц базы данных 35
TO_DATE(' 02-AUG-2007’ ) - ТО_ОАТЕ(' 25-JUL-2007')
8
Использование столбцов в арифметических действиях
Операнды не обязательно должны быть константами или датами, они могут
быть столбцами таблицы. В следующем примере из таблицы products
выбираются столбцы name и price. Обратите внимание, что к столбцу
p r ice при помощи оператора сложения (+) прибавляется число 2, в результате
получается выражение p r ic e + 2.
SELECT name, price + 2
FROM products;
NAME PRICE + 2
Modern Science 21.95
Chemistry 32
Supernova 27.99
Tank War - ' 15.95
Z F i le s 51.99
2412: The Return 16.95
Space Force 9 15.49
From Another Planet 14.99
C la s s i c a l Music 12.99
Pop 3 17.99
C re a tive Y e l l 16.99
My Front Line 15.49
В выражении можно употреблять и более одного оператора. В следующем
примере значение столбца p r ic e умножается на 3, а затем к результату
прибавляется 1.
SELECT name, price * 3 + 1
FROM products;
NAME PRICE* 3+1
Modern Science 60.85
Chemistry 91
Supernova 78.97
Tank War 42.85
Z F i le s 150.97
2412: The Return 45.85
Space Force 9 41.47
From Another Planet 39.97
C la s s i c a l Music 33.97
Pop 3 48.97
C re a tive Y e l l 45.97
My Front Line 41.47
Обычные правила старшинства арифметических операций применимы
и в SQL: сначала выполняются операции умножения и деления, а за-
36 Глава 2
тем - сложения и вычитания. Если встречаются операции одного старшинства,
они выполняются слева направо. Например, в выражении