Выбрать главу

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 другое значение. Эта

функция принимает на входе два параметра: столбец (или, в более общем

случае, любое выражение, имеющее некоторое значение) и значение, которое

должно быть возвращено, если первый параметр является пустым.