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

BINARY_FLOAT_INFINITY Бесконечность (INF) для типа BINARY_FL0AT

BINARY DOUBLE NAN He число (от английского Not a Number) для типа BINARY_

DOUBLE

BINARY_DOUBLE_INFINITY Бесконечность (INF) для типа BINARY_D0UBLE

Следующий запрос извлекает строки из b in a ry _ te s t:

□ SELECT *

FROM b in a ry _ te s t;

BIN_FL0AT BIN_DOUBLE

3 .95E+001 1 .57E+001

In f In f

Выход из SQL*Plus

Для выхода из SQIfPlus можно использовать команду EXIT:

□ SQL> EXIT

Примечание Когда вы используете SQL*Plus подобным образом, то он автоматически выполняет

оператор COMMIT. Если SQL*Plus завершен аварийно - например, если произошел

сбой компьютера, на котором работает SQL*Plus, то будет автоматически выполнен оператор

ROLLBACK. Более подробно об этом рассказано в главе 8.

26 Глава 1

Знакомство с Oracle PL/SQL

PL/SQL является процедурным языком Oracle, который позволяет добавлять

программные конструкции вокруг SQL выражений. PL/SQL в основном

используется для добавления к базе данных процедур и функций, реализующих

бизнес-логику. PL/SQL содержит стандартные программные

конструкции:

■ объявления переменных,

■ условные операторы,

■ циклы,

■ процедуры и функции.

Оператор CREATE PROCEDURE создает процедуру u p d a te _ p ro d u c t_ p rice ().

В этой процедуре стоимость товара умножается на некоторый коэффициент,

причем идентификатор товара и коэффициент передаются в процедуру

как входные параметры. Если указанного товара не существует, процедура

не предпринимает никаких действий; в противном случае цена товара

умножается на коэффициент.

Примечание На данном этапе не стоит беспокоиться по поводу деталей кода PL/SQL, показанного

на следующем листинге - более полные сведения о PL/SQL можно найти в главе 11.

Сейчас я всего лишь хочу, чтобы вы почувствовали, что такое PL/SQL.

□ CREATE PROCEDURE update_product_price (

p_product_id IN products.product_id%TYPE,

p _ fa c to r IN NUMBER

) AS

product_count INTEGER;

BEGIN

- - count the number o f products with the

- - ( подсчитывает количество товаров с

- - su p p lie d p rodu ct_id (should be 1 i f the product e x is t s )

— (заданным p rodu ct_id (должно быть равно 1, если товар существует))

SELECT C0UNT(*)

INTO product_count

FROM products

WHERE p ro du ct_id = p_product_id;

- - i f the product e x is t s (product_count = 1) then

— ( если товар существует (product_count =1) ,

— update th a t p ro d u c t's p r ic e

— обновите цену этого товара)

IF product_count = 1 THEN

UPDATE products

SET p r ic e = p r ic e * p _ fa c to r

WHERE p rodu ct_id = p_product_id;

COMMIT;

END IF;

EXCEPTION

WHEN OTHERS THEN

Введение 27

ROLLBACK;

END update_product_price;

/

Исключительные ситуации (exceptions) используются для обработки

ошибок, которые возникают в процессе выполнения кода PL/SQL. Блок

EXCEPTION в предыдущем примере выполняет откат (ROLLBACK), если в коде

возникает любая исключительная ситуация.

Итоги

В этой главе вы узнали следующее.

■ Реляционной базой данных называется совокупность взаимосвязанной

информации, организованной в структуры, которые называются

таблицами. Каждая таблица содержит строки, которые, в свою

очередь, организованы в столбцы. Таблицы в базах данных хранятся

в структурах, которые называются схемами и являются областями,

где пользователи базы данных могут хранить свои объекты (например,

таблицы и процедуры PL/SQL).

■ Язык структурированных запросов (SQL) является стандартным языком,

разработанным для доступа к реляционным базам данных.

■ SQUPlus позволяет выполнять SQL операторы и команды SQLTlus.

■ Что SQL Developer - это графическое средство для разработки баз

данных.

■ Как выполнять операторы SELECT, INSERT, UPDATE и DELETE.

■ PL/SQL является процедурным языком Oracle, позволяющим добавлять

к SQL программные конструкции.

В следующей главе вы узнаете больше о выборке информации из таблиц

баз данных.

Глава 2

Выборка информации

из таблиц базы данных

Выполнение операторов SELECT для одной таблицы

Оператор SELECT используется для выборки информации из таблиц базы

данных. В простейшей его форме следует указать таблицу, из которой нужно

получить информацию, и список интересующих вас столбцов. В приведенном

ниже примере с помощью оператора SELECT можно получить значения

столбцов customer_id, first_name, last_name, dob и phone для таблицы

customers:

□ SELECT customer_id, first_name, last_name, dob, phone

FROM customers; _ -

Сразу после ключевого слова SELECT следует указать имена столбцов, которые

нужно получить; после ключевого слова FROM нужно указать имя таблицы.

Заканчивается оператор SQL символом точки с запятой (;). Выражения

SELECT известны также как запросы.