PL/SQL ORACLE
Архитектура PL/SQL (Процедурный язык/Язык структурированных запросов). Процесс работы PL/SQL внутри базы данных и за ее пределами. Среды программирования на PL/SQL. Команды выборки записей из БД. Схема управления курсором. Вызов процедуры и функции.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 21.09.2017 |
Размер файла | 118,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
PL/SQL ORACLE
1. Обзор по продуктам Oracle
Система Oracle является одним из наиболее популярных продуктов в области разработки программных решений, которые заставляют функционировать Интернет. Основатели - Лари Элисон, Боб Майнер и Эд Оутс - 1977.
1978 ORACLE версия 1.0 на языке ассемблера на PDP-11;
1980 версия 2.0 на PDP-11 на ассемблере;
1983 версия 3, предназначена для мейнфреймов и мини-компьютеров, написана на языке С;
1984 версия 4 поддерживается переносимость между серверами и ПК;
1986 версия 5.0 - выпуск первой РСУБД с поддержкой распределенных вычислений;
1988 версия 6. Выпущен пакет финансовых программ, а также комплект CASE-средств;
1992 выпущена версия 7 под управление ОС Unix. Начинается разработка программных приложений, как у Microsoft. (Word, Excel, PowerPoint);
1994-1995 выходит версия для персональных компьютеров;
1996 реализация идеи сетевого компьютера.
Появляются приложения:
- Oracle Financials (Финансы);
- Oracle Supply Chain Management (Управление цепочками поставок);
- Oracle Manufacturing (Управление производством);
- Oracle Project Systems (Системы проектирования);
- Oracle Human Resources (Управление персоналом);
- Oracle Market Management (Управление маркетингом).
1997 версия 8, обеспечивает работу большого числа пользователей с большим объемом данных. Отказывается от архитектуры клиент-сервер, концентрируется на Интернет - приложениях;
1998 разрабатываются продукты для ОС Linux. Разрабатываются приложения на основе браузера;
2000 версия Oracle9i. Продукт Oracle становится базой данных номер один для Интернета. Далее выходит версия Oracle Database10g. В настоящее время появилась и 11 версия.
Конкуренты:
Computer Associates - база данных Ingres; IBM - DB/2; Informix - Informix; Microsoft - Access, SQL Server; Software AG - ADABAS; PostgressSQL - общедоступная БД с открытым исходным кодом.
В чем отличие. Корпорация Oracle является производителем программного обеспечения, предназначенного для управления информацией. Данное программное обеспечение включает СУБД, средства разработки приложений, системы бизнес-анализа и инструменты разработки Интернет-приложений для бизнеса.
Продукты Oracle можно разделить на пять категорий:
· Oracle database;
· Oracle Application Server (Сервер приложений);
· Internet Development Suite (Комплект продуктов для Интернет разработок);
· Data Warehousing and Business Development (Средства для работы с хранилищем данных и организации бизнеса);
· Oracle E-business Suite (Набор комплексных приложений для электронного бизнеса).
2. PL/SQL - Procedural Language/Structured Query Language (Процедурный язык / Язык структурированных запросов)
Впервые PL/SQL появился в шестой версии Oracle в 1988г.
PL/SQL - язык программирования, напоминающий языки ADA и C.
PL/SQL используется для считывания информации, заполнения БД, создания хранимых объектов и даже для отображения Web - страниц.
Oracle - это не просто база данных, она является также и процессором, поддерживающим различные языки программирования. Так Oracle9i содержит процессор Java со встроенной виртуальной машиной Java (Java Virtual Machine - JVM), а также процессор PL/SQL. Oracle является развитой системой, и поэтому не требует других программных продуктов. Процессор PL/SQL тесно интегрирован с базой данных.
Рис. 1 Архитектура PL/SQL
Рис. 1 демонстрирует процесс работы PL/SQL внутри базы данных и за ее пределами. Центральное положение занимает сервер Oracle, который является основным процессором БД. Он координирует все обращения к базе данных. Когда программа посылает на сервер запрос, БД Oracle загружает откомпилированный код в память, после чего процессоры PL/SQL и SQL выполняют этот код.
Структура программы PL/SQL
[DECLARE]
Переменные, курсоры
BEGIN
- Команды SQL
- Команды PL/SQL
[EXEPTION]
Действия при возникновении ошибок
END;
/
Программы в PL/SQL обычно называют блоками. Фактически блоки представляют собой завершение программы, которые могут быть успешно выполнены. Каждая программная единица PL/SQL состоит из одного или нескольких блоков. Эти блоки могут быть полностью автономными или вложенными один в другой. Для описания программ используются комментарии.
При этом различают следующие комментарии:
-- однострочные, /* --- */ многострочные.
Типы блоков.
Существуют три типа блоков, из которых может быть выстроена программа PL/SQL: анонимные блоки; процедурные; функции (рис. 2).
Анонимные блоки не имеют имен. Эти блоки не хранятся в базе данных. Они передаются на исполнение машине PL/SQL во время выполнения приложения. Подпрограммы (subprograms) - это именованные блоки PL/SQL, хранимые в базе данных. Они могут быть вызваны из любой точки приложения. Объявлять их можно как процедуры или функции. Обычно процедура используется для выполнения действия, а функция - для вычисления и возврата значений.
Рис. 2. Типы блоков
Среды программирования на PL/SQL
Oracle JDeveloper 10g - интегрированная среда разработки.
Позволяет:
- производить навигацию по присоединенной базе данных и доступ к ее объектам;
- создание пользователей и объектов базы данных;
- создание, выполнение и отладка программ на PL/SQL (например, процедур, функций и пакетов).
iSQL*Plus - это интерфейс к SQL*Plus, предоставляемый из браузера.
Рис.13.3. Архитектура iSQL*Plus
Переменные PL/SQL:
- Скалярные
- Составные
- Ссылочные
- LOB (большие объекты)
Наиболее часто встречаются следующие типы данных:
VARCHAR2, NUMBER, DATE, BOOLEAN
Инициализация переменных производится по следующей схеме:
Имя_переменной тип_переменной := значение;
Также можно определять переменные в теле основной программы:
Имя_переменной := значение;
Примеры
DECLARE
L_name VARCHAR2(30);
L_today DATE := sysdate;
L_counter NUMBER :=0;
L_average_amount NUMBER(12,2);
Flag BOOLEAN := FALSE;
Атрибут %TYPE позволяет объявить переменную на основе уже объявленной переменной или столбца базы данных. Это позволит избежать ошибок, вызванных несоответствием в типах данных или неверной точностью.
Например.
Balance NUMBER(7,2);
Min_balance balance%TYPE:=1000;
В PL/SQL имеются переменные подстановки, которые используются для ввода данных во время выполнения. В блоке перед именем переменной подстановки ставится амперсанд.
Empno NUMBER(6) := &empno;
Команда DEFINE используется для определения пользовательской переменной
DEFINE lname :=Urman
3. Команды управления в PL/SQL
· Условные операторы IF
· Операторы CASE
· Операторы цикла
Конструкция полувыбора IF - THEN
IF x = 0 THEN
Y:=1;
END IF;
Конструкция полного выбора IF - ELSE - THEN
BEGIN
IF x>y THEN
Max := x;
ELSE
Max := y;
END IF;
END;
Оператор CASE имеет следующий синтаксис:
CASE переменная
WHEN выражение1 THEN значение1
WHEN выражение2 THEN значение2
WHEN выражение3 THEN значение3
ELSE значение5
END;
Циклы
Имеются три типа циклов: простой цикл LOOP, цикл FOR, цикл WHILE
Цикл LOOP
LOOP
команды;
EXIT [WHEN выражение];
END LOOP;
Для выхода из цикла используется оператор EXIT
Циклы WHILE
WHILE условие LOOP
Команда1;
Команда2;
. . .
END LOOP;
Цикл FOR
FOR I IN m . . n
LOOP
Команда1;
END LOOP
Пример.
DECLARE
m NUMBER :=1;
n NUMBER := 100;
BEGIN
FOR I IN m . . n LOOP
. . .
END LOOP;
END;
Пример. Необходимо вставить числа в таблицу TABL(num) от 1 до 10, исключая числа 5 и 7.
BEGIN
FOR i IN 1 . . 10
LOOP
IF i=6 OR i=8 THEN
null;
ELSE
INSERT INTO TABL(num)
VALUES(i);
END IF
END LOOP;
END;
4. Команды SQL в PL/SQL
SELECT - команда выборки данных.
Существуют команды SELECT однострочной выборки и многострочной.
Синтаксис команды при однострочной выборки:
SELECT список_выборки
INTO {имя_переменной [, имя_переменной] . . .| имя_записи}
FROM таблица
[WHERE условие];
Пример.
Пусть у нас имеется отношение sotrud (ns, name),
Где ns - номер сотрудника, name - имя сотрудника.
SET SERVEROUTPUT ON
DECLARE
fname VARCHAR2(25);
BEGIN
SELECT name INTO fname
FROM sotrud
WHERE ns=126;
DBMS_OUTPUT.PUT_LINE(` Name is: ` || fname);
END;
Манипулирование данными в PL/SQL
Внесение изменений в таблицы базы данных с помощью команд DML:
INSERT, UPDATE, DELETE, MERGE
Оператор MERGE выбирает строки из одной таблицы для изменения или вставки в другую таблицу.
5. Курсор в PL/SQL
Для выборки из базы данных многих записей и последующей обработке их в программе вводится понятие курсора. Курсор может быть неявным или явным. При однострочной выборке, курсор обычно неявный. При многострочной выборке необходимо явно указать курсор.
Синтаксис объявления явного курсора:
CURSOR имя_курсора IS команда_SELECT;
Пример.
DECLARE
CURSOR q IS
SELECT ns, name FROM sotrud
WHERE ns=140;
Управление явным курсором производится по следующей схеме, см.рис. 4.
запрос программирование курсор выборка
Рис. 4. Схема управления курсором
Пример. Выборка данных из курсора.
SET SERVEROUTPUT ON
DECLARE
CURSOR q IS
SELECT ns, name FROM sotrud
WHERE ns=140;
num sotrud.ns%TYPE;
lname sotrud.name%TYPE;
BEGIN
OPEN q;
FETCH q INTO num, lname;
DBMS_OUTPUT.PUT_LINE (num || ` ` || lname);
. . .
END;
Пример. Выборка данных в цикле.
SET SERVEROUTPUT ON
DECLARE
CURSOR q IS
SELECT ns, name FROM sotrud
WHERE ns=140;
num sotrud.ns%TYPE;
lname sotrud.name%TYPE;
BEGIN
OPEN q;
LOOP
FETCH q INTO num, lname;
EXIT WHEN q%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (num || ` ` || lname);
END LOOP;
. . .
END;
Курсорный цикл FOR
Курсорный цикл FOR включает курсор SELECT и позволяет осуществлять выборку нескольких строк из базы данных. При этом не нужно заботиться об открытии и закрытии курсора. ORACLE сделает это самостоятельно внутри цикла. В цикле FOR объявлять курсор не требуется.
Пример.
SET SERVEROUTPUT ON
BEGIN
FOR q IN ( SELECT ns, name FROM sotrud
WHERE ns=140;
LOOP
DBMS_OUTPUT.PUT_LINE (q.ns || ` ` || q.name);
END LOOP;
END;
Здесь переменная q используется для сохранения результатов выполнения курсора.
6. Процедуры и функции
Процедуры и функции - это именованные блоки PL/SQL. Их также называют подпрограммами. Они компилируются и хранятся в базе данных. Анонимные блоки, рассмотренные ранее - это неименованные блоки. Они после выполнения не сохраняются для последующего повторного использования.
Синтаксис процедуры:
CREATE [OR REPLACE] PROCEDURE имя_процедуры
[(аргумент1 [тип_параметра1] тип_данных1,
[(аргумент2 [тип_параметра2] тип_данных2, . . .)]
IS|AS
тело_процедуры;
Вызов процедуры в анонимном блоке можно осуществить по имени:
Begin
Имя_процедуры;
END;
Процедуру можно также вызвать с помощью команды CALL:
CALL <имя_процедуры>
Пример. Пусть имеется таблица DEPARTAMENTS - Компании
D.DEPARTAMENTS(D_ID, D_Name, Manager_ID, Location_ID)
Создадим процедуру с именем add_dept вставки новой строки с указанием номера отдела и наименованием.
CREATE PROCEDURE add_dept IS
Dept_id D.D_ID%TYPE;
Dept_name D.D_Name%TYPE
BEGIN
Dept_id:=330;
Dept_name:=”АСОИУ”;
INSERT INTO D(D_ID, D_Name)
VALUES(Dept_id, dept_name);
DBMS_OUTPUT.PUT_LINE(`Введена'|| SQL%ROWCOUNT|| `строка');
END;
В декларативной секции процедуры объявлены две переменные Dept_id и Dept_name. Декларативная секция следует сразу за объявлением процедуры и не начинается с ключевого слова DECLARE. Для проверки вставки строки используется атрибут неявного курсора SQL%ROWCOUNT. В данном случае получим значение равное 1.
Вызов процедуры
BEGIN
add_dept;
END;
Функция создается следующим образом:
CREATE [OR REPLACE] FUNCTION имя_функции
[(аргумент1 [тип_параметра1] тип_данных1,
[(аргумент2 [тип_параметра2] тип_данных2, . . .)]
RETURN тип_данных
IS|AS
тело_функции;
Вызываемая функция просто вставляется в исполняемую секцию анонимного блока.
База данных Oracle используется в качестве процессора для Интернета. Тот факт, что Интернет функционирует 24 часа в сутки, является громадным достоинством Oracle по доступности к базам данных в любое время суток.
Размещено на Allbest.ru
...Подобные документы
Изучение особенностей языка структурированных запросов при использовании его в прикладном программировании. Сравнение реализации связи между SQL и языками программирования высокого уровня. Проектирование базы данных и системы управления базами данных.
курсовая работа [1,5 M], добавлен 25.01.2016Краткая история развития СУБД ORACLE, основные понятия и определения, архитектура. Принципы работы с СУБД ORACLE. Разработка баз данных, средства и технологии их реализации; возможности процедурного языка PL/SQL. Приемы администрирования СУБД ORACLE.
презентация [609,2 K], добавлен 14.02.2014Назначение и основные функции системы управления базами данных СУБД, особенности и признаки их классификации. Архитектура баз данных (БД). Разработка распределенных БД. Язык структурированных запросов (SQL). Правила Кодда: требования к реляционным БД.
курсовая работа [376,2 K], добавлен 21.07.2012Работа с хранящейся в базах данных информацией. Язык описания данных и язык манипулирования данными. Распространение стандартизованных языков. Структурированный язык запросов SQL. Язык запросов по образцу QBE. Применение основных операторов языка.
презентация [76,2 K], добавлен 14.10.2013Применение языков программирования в web-разработках. Создание документа с поддержкой гипертекста с помощью HTML. Использование JavaScript для программного доступа к объектам приложений. Perl - процедурный язык программирования; псевдообъектный язык PHP.
курсовая работа [260,9 K], добавлен 07.07.2013Объекты модели хранения данных базы данных ORACLE. Взаимосвязь между логическими структурами. Средства манипулирования данными языка SQL, данными языка SQL. Структура выполнения простейших запросов. Формирование критерия отбора. Сортировка данных.
презентация [120,1 K], добавлен 14.02.2014База данных как поименованная совокупность структурированных данных, относящихся к определенной предметной области. Ее типы и структура, особенности архитектуры. Функциональные особенности языка структурированных запросов (SQL). Разработка базы данных.
курсовая работа [639,8 K], добавлен 14.12.2022Язык описания данных Oracle. Предназначение базы данных для хранения информации. Создание и изменение таблиц с помощью операторов Create и Alter table. Правила именования таблицы. Операторы Rename и Truncate. Метод создания и удаления представления.
презентация [82,7 K], добавлен 14.02.2014Разработка структуры базы данных библиотеки для улучшения качества обслуживания, создания информационной базы и упрощения работы персонала. Создание объектов базы на языке sql-запросов. Создание хранимой процедуры с курсором, демонстрация процедуры.
курсовая работа [1,3 M], добавлен 28.12.2012Общая характеристика и состав информационных запросов к проектируемой базе данных, требования к ней и внутренняя структура, принципы нормализации и разработка логической модели. Создание таблиц и связей между ними. Язык структурированных запросов.
курсовая работа [985,6 K], добавлен 22.05.2014Высокоуровневый язык программирования Lisp. Атомы и списки. Запрос к голове списка с помощью базовых функций. Свойства атомов Lisp. Удаление свойства и его значения. Работа со строками. Классы и объекты. Формы структурированных данных языка Lisp.
курсовая работа [232,7 K], добавлен 07.01.2016Создание простого непроцедурного языка, которым может воспользоваться любой пользователь. Разработка языка запросов. Стандартный язык реляционных баз данных. Вопросы практического программирования. Фиксированный исполняемый код SQL и типы команд SQL.
доклад [1,9 M], добавлен 12.01.2011Принцип работы основных операторов языка программирования Turbo-Paskal: оператор присваивания, выбора Case, безусловного перехода, цикла, уловный, составной. Формальное описание и вызов функции и процедуры. Требования к списку фактических параметров.
реферат [261,8 K], добавлен 09.02.2011Внутренний язык СУБД для работы с данными. Результат компиляции DDL-операторов. Описание DML-языка, содержащего набор операторов для поддержки основных операций манипулирования содержащимися в базе данными. Организация данных и управление доступом в SQL.
лекция [131,0 K], добавлен 19.08.2013Язык структурированных запросов SQL (Structured Query Language) и его место в сфере доступа к информации в реляционных базах данных. Структура и основные типы данных языка. Синтаксис и семантика главных операторов SQL, последние стандарты языка.
реферат [98,7 K], добавлен 29.03.2012Рассмотрение вопроса автоматизации работы служб гостиницы. Разработка базы данных для работы с клиентами. Характеристика языка структурированных запросов SQL и его разновидности. Описание таблицы программы, ключей и диаграммы составленной базы данных.
курсовая работа [1,6 M], добавлен 27.05.2014Разновидности систем управления базами данных. Анализ предметной области. Разработка структуры и ведение базы данных. Структурированный язык запросов SQL. Организация выбора информации из базы данных. Общие принципы проектирования экранных форм, макросов.
курсовая работа [3,1 M], добавлен 26.02.2016Создание базы данных с помощью ACCESS для автоматизации работы базы отдыха. Оценка возможностей пользователей при работе с данной базой. Построение информационно-логической модели базы данных. Разработка запросов для корректировки и выборки данных.
курсовая работа [1,1 M], добавлен 19.10.2010Стандартизированный процедурный язык программирования. Создание системного программного обеспечения и прикладных программ. Особенности языка Си, его основные недостатки. Передача параметров в функцию по значению. Стандартная библиотека языка Си.
презентация [396,3 K], добавлен 12.11.2012Общие понятия о базах данных. Требования к организации информации. Системы управления и администрация баз данных. Загрузка базы и формирование отчетов. Язык запросов и диалоговые средства. Режим работы с Access. Общая характеристика школы №1 п. Бисерть.
дипломная работа [203,3 K], добавлен 19.10.2011