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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.