10*12/3-1 сначала 10 умножается на 12 (в результате получается 120), затем
результат предыдущих операций делится на 3, что дает 40, и, наконец,
из 40 вычитается 1, в результате получается 39:
□ SELECT 10 * 12 / 3 - 1
FROM dual;
10*12/3-1
39
Для указания порядка выполнения операций можно использовать скобки
():
□ SELECT 10 * (12 / 3 - 1)
FROM dual;
10*(12/3—1)
30 . -
В этом примере скобки используются для того, чтобы сначала вычислить
12/3-1, после чего результат этих вычислений умножается на 10, в результате
окончательный ответ будет равен 30.
Использование псевдонимов столбцов
При выборе из таблицы столбца Oracle использует набранное в верхнем
регистре имя столбца таблицы в качестве заголовка столбца. Например,
при выборе из таблицы столбца p r ic e заголовком соответствующего столбца
выходных данных будет PRICE. При использовании выражения Oracle
удаляет из него все пробелы и применяет его в качестве заголовка. Но не
обязательно использовать заголовки, сгенерированные Oracle: используя
псевдонимы (aliases), можно самим задавать устраивающие вас заголовки
столбцов. В следующем примере выражению p r ic e * 2 присваивается
псевдоним D0UBLE_PRICE:
□ SELECT price * 2 D0UBLE_PRICE
FROM products;
D0UBLE_PRICE
39.9
60
51.98
27.9
99.98
29.9
26.98
25.98
Выборка информации из таблиц базы данных 37
21.98
31.98
29.98
26.98
Если вы хотите оставить пробелы и сохранить используемый регистр,
нужно поместить текст в двойные кавычки ( « » ) :
□ SELECT price * 2 «Double Price»
FROM products;
Double P r ice
39.9
Кроме того, можно использовать псевдонимы в сочетании с ключевым
словом AS:
□ SELECT 10 * ( 1 2 / 3 - 1 ) AS «Computation»
FROM dual;
Computation - ~
30
Слияние выходных данных столбцов с помощью
конкатенации
Вы можете объединять выводимые на экран столбцы, используя конкатенацию.
Это позволяет создавать более дружественные и осмысленные выходные
данные. Например, в таблице customers в столбцах first_name и la s t_
name содержится имя и фамилия покупателя. В предыдущих примерах два
этих столбца выбирались и выводились на экран независимо друг от друга.
Было бы здорово объединить два этих столбца в один под одним общим заголовком,
не правда ли? Это можно сделать с помощью оператора конкатенации
(||), как показано в примере ниже; обратите внимание, что после
столбца f i r s t name добавлен сначала пробел, а затем столбец last_name:
□ SELECT first_name || ' ’ || last_name AS «Customer Name»
FROM customers;
Customer Name
John Brown
Cynthia Green
Steve White
G a il Black
Doreen Blue
Значения столбцов first_name и last_name объединяются и выводятся
на экран под псевдонимом "Customer Name” .
38 Глава 2
Пустые (null) значения
Как база данных представляет значение, которое неизвестно? Она использует
специальное значение, которое называется «пустое (null) значение».
Пустое значение - это не строка, а нечто совсем иное. Пустое значение
означает, что значение этого столбца неизвестно.
Если вы выберете столбец, содержащий пустое значение, вы не увидите
на экране в этом столбце ничего. Вы уже видели это (или точнее, не
видели!) в предыдущих примерах выборки строк из таблицы customers:
у покупателя № 4 было пустое значение в столбце dob, ay покупателя № 5 -
в столбце phone. Посмотрите ещё раз на этот пример:
□ SELECT *
FROM customers;
ДО FIRST_NAME LAST_NAME DOB PHONE
1 John Brown 01-JAN-65 800-555-1211
2 Cynthia Green 05-FEB-68 800-555-1212
3 Steve White 16—MAR—71 800-555-1213
4 G a il Black 800-555-1214
5 Doreen Blue 20-MAY-70
Для проверки на пустые значения можно использовать фразу IS NULL
оператора SELECT. В следующем примере происходит выборка покупателя
№ 4 на том основании, что значение столбца dob пустое:
□ SELECT customer_id, first_name, last_name, dob
FROM customers
WHERE dob IS NULL;
CUSTOMER_ID FIRST_NAME LAST_NAME DOB
4 G a i l Black
В следующем примере отбирается покупатель № 5 на том основании,
что значение столбца phone пустое:
□ SELECT customer_id, first_name, last_name, phone
FROM customers
WHERE phone IS NULL;
CUSTOMER_ID FIRST_NAME LAST_NAME PHONE
5 Doreen Blue
Поскольку пустые значения не выводятся на экран, как можно при выборке
строк увидеть разницу между пустым значением и пустой строкой?
Ответ заключается в использовании одной из встроенных функций
Oracle - NVL(). Функция NVL() возвращает вместо n u l l другое значение. Эта
функция принимает на входе два параметра: столбец (или, в более общем
случае, любое выражение, имеющее некоторое значение) и значение, которое
должно быть возвращено, если первый параметр является пустым.