- •Конспект лекций
- •1.4. Стандартные процедуры и функции
- •1.5. Процедуры вывода
- •1.6. Таблицы учебной база данных
- •2. Простые типы данных
- •2.1. Числовые типы
- •2.2. Символьные типы данных
- •2.3. Тип данных даты-времени
- •2.4. Преобразование типов
- •2.5. Порядок вычисления выражений
- •3. Типы команд языка sql
- •3.1. Команды обработки данных
- •3.1.1. Извлечение данных с помощью запросов
- •3.1.2. Вставка, обновление и удаление строк в таблицах
- •3.2. Управление транзакциями
- •3.2.1. Подтверждение транзакций
- •3.2.2. Откат транзакций
- •3.3. Команды определения данных
- •3.3.1. Таблицы
- •3.3.2. Последовательности
- •3.3.3. Представления
- •3.3.4. Синонимы
- •3.4. Команды управления данными
- •4. Управление привилегиями
- •4.1. Понятие привилегии
- •4.2. Типы привилегий
- •4.3. Системные привилегии
- •4.4. Объектные привилегии
- •4.5. Роли
- •4.5.1. Создание ролей
- •4.5.2. Изменение ролей
- •5.2 Ваша первая программа
1.5. Процедуры вывода
В системе управления базами данных Oracle имеется пакет программ ввода-вывода DBMS_OUTPUT (см. п. 10), который поставляется вместе с дистрибутивом системы. Пакет содержит несколько процедур обеспечивающих вывод данных, что удобно при тестировании и отладки программ PL/SQL. В данном курсе для нас будет полезна процедура вывода строки PUT_LINE. Процедура PUT_LINE имеет ограничение на длину выводимой строки – не более 255 символов. Ниже приведен пример вывода на экран значения системной даты.
DECLARE
tmp varchar2(20);
BEGIN
tmp := to_char(sysdate,’dd.mm.yyyy’);
DBMS_OUTPUT.PUT_LINE(‘Сегодня ’||tmp||’ г.‘);
END;
/
Результат выполнения программы: Сегодня 01.09.2009 г.
1.6. Таблицы учебной база данных
Изучение материала данного курса основано на использовании учебной базы данных, которая состоит из трех таблиц:
SAL – таблица, содержащая данные о продавцах
CUST – таблица, содержащая данные о покупателях
ORD – таблица, содержащая данные о заказах (покупках), сделанных покупателями и оформленных продавцами.
Таблицы имеют следующие структуры.
Таблица продавцов SAL
|
Наименование поля |
Тип данных поля |
Назначение |
|
SNUM |
NUMBER(4) |
Уникальный номер продавца |
|
SNAME |
VARCHAR2(10) |
Имя продавца |
|
CITY |
VARCHAR2(10) |
Город, где работает продавец |
|
COMM |
NUMBER(7,2) |
Комиссионные, которые получает продавец |
Таблица покупателей CUST
|
Наименование поля |
Тип данных поля |
Назначение |
|
CNUM |
NUMBER(4) |
Уникальный номер покупателя |
|
CNAME |
VARCHAR2(10) |
Имя покупателя |
|
CITY |
VARCHAR2(10) |
Город, где живет покупателя |
|
RATING |
NUMBER(3) |
Рейтинг покупателя |
|
SNUM |
NUMBER(4) |
Номер продавца, обслуживающего покупателя |
Таблица заказов ORD
|
Наименование поля |
Тип данных поля |
Назначение |
|
ONUM |
NUMBER(4) |
Уникальный номер заказа |
|
AMT |
VARCHAR2(10) |
Сумма заказа |
|
ODATE |
DATE |
Дата выполнения заказа |
|
CNUM |
NUMBER(4) |
Номер покупателя, сделавшего заказ |
|
SNUM |
NUMBER(4) |
Номер продавца, оформившего заказ |
Таблицы учебной БД хранят следующие данные
Таблица продавцов SAL
|
SNUM |
SNAME |
CITY |
COMM |
|
1001 |
Peel |
London |
0,12 |
|
1002 |
Serres |
San Jose |
0,13 |
|
1003 |
Axelrod |
New York |
0,10 |
|
1004 |
Motica |
London |
0,11 |
|
1007 |
Rifkin |
Barcelona |
0,15 |
Таблица покупателей CUST
|
CNUM |
CNAME |
CITY |
RATING |
SNUM |
|
2001 |
Hoffman |
London |
100 |
1001 |
|
2002 |
Giovanni |
Rome |
200 |
1003 |
|
2003 |
Liu |
San Jose |
200 |
1002 |
|
2004 |
Grass |
Berlin |
300 |
1002 |
|
2006 |
Clemens |
London |
100 |
1001 |
|
2007 |
Pereira |
Rome |
100 |
1004 |
|
2008 |
Cisneros |
San Jose |
300 |
1007 |
Таблица заказов ORD
|
ONUM |
AMT |
ODATE |
CNUM |
SNUM |
|
3001 |
18,69 |
03.01.2009 |
2008 |
1007 |
|
3002 |
1900,10 |
03.01.2009 |
2007 |
1004 |
|
3003 |
767,19 |
03.01.2009 |
2001 |
1001 |
|
3005 |
5160,45 |
03.01.2009 |
2003 |
1002 |
|
3006 |
1098,16 |
03.01.2009 |
2008 |
1007 |
|
3007 |
75,75 |
04.01.2009 |
2004 |
1002 |
|
3008 |
4723 |
05.01.2009 |
2006 |
1001 |
|
3009 |
1713,23 |
04.01.2009 |
2002 |
1003 |
|
3010 |
1309,95 |
06.01.2009 |
2004 |
1002 |
|
3011 |
9891,88 |
06.01.2009 |
2006 |
1001 |
Вопросы для самоконтроля
1.1. В каком виде представляются данные в реляционных БД?
1.2. Как пользователь задает физическую структуру реляционной базы данных?
1.3. Что означают пустые значения (NULL) в реляционных БД?
1.4. Какой язык используется в реляционных БД для управления данными?
1.5. К какому типу языков относится язык SQL?
1.6. Как обрабатывает данные язык SQL?
1.7. Какие структурные элементы в реляционных базах данных являются основными?
1.8. Какие ограничения накладываются на идентификаторы в Oracle 10g Express Edition?
1.9. Какая информация содержится в системных таблицах Oracle 10g Express Edition?
1.10. Какие ограничения накладываются на использование служебных слов в Oracle 10g Express Edition?
