русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Типы данных и объявление переменных.


Дата добавления: 2015-07-09; просмотров: 2021; Нарушение авторских прав


Объявление переменных осуществляется в разделе объявлений, при этом помимо идентификатора переменной должен быть указан и ее тип. К основным типам данных языка PL/SQL относятся скалярные и составные типы. Среди составных типов наибольший интерес представляет тип RECORD (запись).

Объявление скалярных типов данных.Среди скалярных типов наиболее распространены числовые, символьные, тип DATE и логический (BOOLEAN) типы данных.

Числовыетипы данных представлены в основном двумя типами: BINARY_INTEGER и NUMBER. Все другие числовые типы являются подмножествами двух этих типов.

Тип переменных BINARY_INTEGER используется для хранения целых знаковых чисел в двоичном виде. Диапазон этого типа от

– 2147483647 до 2147483647.

Тип переменных NUMBER используется для хранения чисел с фиксированной и плавающей точкой в диапазоне от 1Е–130 до 10Е125. Для объявления чисел с плавающей точкой можно просто указать NUMBER. Для объявления целого числа указывается NUMBER(точность), а для объявления числа с фиксированной точкой дополнительно указывается еще и масштаб, т. е. NUMBER(точность, масштаб). Точность представляет собой общее число знаков и не превосходит 38 десятичных знаков, масштаб указывает порядок округления и задается числом от –84 до 127. При положительном значении масштаба число округляется до указанного количества цифр, стоящих справа от запятой; при отрицательном значении число округляется до указанного количества цифр, стоящих слева от запятой. Например: число 123.456 при значении масштаба, равном 2, округляется до 123.46, а при значении, равном – 2, округляется до 100.

К символьным типам данных в основном относятся типы CHAR и VARCHAR2.

Тип CHAR(длина) используется для хранения последовательности символов фиксированной длины не более 32767 байт. Следует иметь в виду, что в языке SQL максимальное значение аналогичного типа равно 2000 байт, поэтому не все данные этого типа можно вставлять в столбцы таблицы с типом CHAR.



Тип VARCHAR2(длина) используется для хранения символьной последовательности переменной длины. Ограничение на длину составляет 32767 байт.

Тип DATE используется для хранения значений даты и времени. Значение даты и времени хранится во внутреннем двоичном формате и при помещении его в переменную символьного типа автоматически преобразуется в строку, используя формат даты, установленный по умолчанию. Функция SYSDATE возвращает текущее значение даты и времени.

Тип BOOLEAN используется для хранения логических значений TRUE, FALSE, NULL. Над такими переменными можно выполнять только логические операции, причем в трехзначной логике.

Скалярные переменные объявляются явным и неявным образом.

Явное объявление переменной любого из скалярных типов осуществляется по следующему правилу:

имя_переменной [CONSTANT] тип [NOT NULL]

[{:= ïDEFAULT} значение];

При использовании ключевого слова CONSTANT переменной должно быть присвоено значение, которое впоследствии не может быть изменено. Если указано ключевое слово NOT NULL, то переменную необходимо проинициализировать и впоследствии она не может принимать значение NULL. Переменная инициализируется значением своего типа либо с помощью оператора присваивания, либо с помощью ключевого слова DEFAULT. Каждая переменная объявляется отдельно.

Неявное объявление переменной скалярного типа осуществляется с помощью специального атрибута %TYPE, который позволяет объявить переменную, тип которой соответствует либо типу другой переменной, либо типу столбца таблицы базы данных.

Пример.

A1 NUMBER;

A11 NUMBER:=15;

A12 NUMBER NOT NULL DEFAULT 15;

A2 A1%TYPE;

A3 KNIGA.ЦЕНА%TYPE;

Объявляя переменные, следует иметь в виду, что:

1) имена локальных переменных и формальных параметров имеют приоритет перед именами таблиц базы данных;

2) имена столбцов таблицы базы данных имеют приоритет перед именами локальных переменных и формальных параметров.

Объявление переменных типа RECORD (запись).Составной тип запись определяет структуру, содержащую любое число переменных – элементов любого типа, включая ранее определенные записи. Ссылка на отдельные элементы этой структуры осуществляется с помощью точечной нотации.

Тип записи должен быть определен до того, как будут объявлены переменные этого типа. Для явного определения нового составного типа данных используется следующий общий синтаксис:

TYPE тип_записи IS RECORD

(поле1 тип1 [NOT NULL] [{:= ï DEFAULT } значение1],

поле2 тип2 [NOT NULL] [{:= ï DEFAULT } значение2], …);

Для явного объявления переменной-записи этого типа необходимо указать имя переменной и имя типа. Допускается неявное определение переменных типа запись, выполняемое с помощью атрибута %ROWTYPE, что позволяет определять переменные-записи, структура которых идентична структуре записи указанной таблицы или структуре ранее определенной переменной-записи.

Рассмотрим переменную-запись, объявляемую явно:

DECLARE

TYPE BOOK IS RECORD --вводится тип записи – BOOK

(

AUTHOR VARCHAR2(15), --фамилия автора

NAME VARCHAR2(25), --название книги

PRICE NUMBER(6) --цена

);

BOOK_FAN BOOK; --явное объявление

BOOK_ROM BOOK; --явное объявление

BOOK_POEM BOOK_FAN%ROWTYPE; --неявное объявление

Присваивание значений элементам, входящим в запись, необходимо выполнять поэлементно, используя точечную нотацию:

BOOK_FAN.PRICE := 16000;

Для присвоения значений сразу всем полям записи или нескольким из них можно воспользоваться однострочным оператором SELECT либо оператором выборки очередной строки из открытого курсора FETCH:

Возможно присвоение значения одной переменной-записи другой при условии, что они одного типа:

BOOK_FAN := BOOK_ROM;

Однако следует иметь в виду, что переменная-запись, тип которой определен явно, и переменная-запись, тип которой определяется с помощью атрибута %ROWTYPE, всегда несовместимы.

Не допускается сравнение переменных-записей.

Ошибочной будет попытка передать в качестве значений в команде INSERT запись целиком. Значения записи должны передаваться поэлементно:

INSERT INTO TEMP VALUES (BOOK_FAN.AUTHOR,

BOOK_FAN.NAME, BOOK_FAN.PRICE);



<== предыдущая лекция | следующая лекция ==>
Алфавит и лексемы языка. | Операторы.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.768 сек.