Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Блок 2.doc
Скачиваний:
2
Добавлен:
15.08.2019
Размер:
119.81 Кб
Скачать

II) Вопросы по языку sql

  1. Основные типы данных SQL Oracle

Тип данных

Описание

Длина столбца и значение по умолчанию o

CHAR (size)

Строковые данные фиксирован­ной длины в size байт 

Длина фиксирована для всех строк таблицы (с учетом дописываемых справа пробелов). Максимально допустимый размер - 2000 байт. Размер по умолчанию – 1 байт.

VARCHAR2 (size)

Переменными данными длиной.

Переменная для каждой строки, вплоть до 4000 байт на каждую строку. Максимальный размер должен быть определен.

NUMBER (p,s)

Числовое данное переменной длины. Максимальное значение точности p и/или масштаба равно 38

Длина переменная для каждой стоки. Для такого столбца максимально необходимое пространство равно 21 байт

DATE

Данное фиксированной длины, содержащее дату и время в диапазоне от Jan. 1, 4712 B.C.E. до Dec. 31, 4712 C.E.

Длина фиксирована и равна 7 байт для каждой стоки в таблице. Формат по умолчанию (например, DD-MON-YY) определяется параметром NLS_DATE_FORMAT

BLOB

Неструктурированные бинарные данные

До 232 - 1 байт или 4 гигабайт

RAW (size)

Бинарные данные переменной длины

Каждая строка имеет переменную длину, не превышающую 2000 байт. Максимальные размер size должен быть указан. Используется для совместимости с предыдущими версиями Oracle.

LONG

Строковые данные переменной длины

до 2GB

LONG RAW

Бинарные данные переменной длины

Каждая строка имеет переменную длину, не превышающую 231 - 1 байт или 2 гигабайта. Используется для совместимости с предыдущими версиями Oracle.

ROWID

Бинарные данные, представляю­щие адрес строки.

Фиксированной длины в 10 байт (расширенный ROWID) или 6 байт (ограниченный ROWID) для каждой строки таблицы

  1. Язык SQL Oracle. Типы CHAR и VARCHAR2

Тип данных

Описание

Длина столбца и значение по умолчанию o

CHAR (size)

Строковые данные фиксирован­ной длины в size байт 

Длина фиксирована для всех строк таблицы (с учетом дописываемых справа пробелов). Максимально допустимый размер - 2000 байт. Размер по умолчанию – 1 байт.

VARCHAR2 (size)

Переменными данными длиной.

Переменная для каждой строки, вплоть до 4000 байт на каждую строку. Максимальный размер должен быть определен.

Oracle сравнивает значения типа CHAR с использованием семантику сравнения с дополнением пробелами. Если два значения имеют различную длину, то Oracle дополняет пробелами более короткое значение пробелами до размера более длинного значения, и затем сравнивает их посимвольно до первого отличающегося символа. То значение, которое имеет отличающийся символ большим по величине, рассматривается как большим значением. Если два значения отличаются только количеством пробелов в конце, то они рассматриваются равными.

Oracle сравнивает значения типа VARCHAR2 используя семантику сравнения без дополнения пробелами. Два значения рассматриваются равными, если они равны по длине и содержат одинаковые символы. Oracle сравнивает значения посимвольно до первого отличающегося символа. То значение, которое имеет отличающийся символ большим по величине, рассматривается как большим значением.

  1. Язык SQL Oracle. Тип данных NUMBER

Тип данных

Описание

Длина столбца и значение по умолчанию o

NUMBER (p,s)

Числовое данное переменной длины. Максимальное значение точности p и/или масштаба равно 38

Длина переменная для каждой стоки. Для такого столбца максимально необходимое пространство равно 21 байт

Используйте тип NUMBER для хранения действительных чисел в формате с фиксированной или плавающей точкой. Гарантируется, что числа в этом формате будут совместимыми на всех платформах Oracle. Допустимая точность - 38 десятичных цифр. В столбце типа NUMBER можно запоминать положительные и отрицательные числа в диапазоне от 1 x 10-130 до 9.99...x10125, а также нули.

Для числовых столбцов вы можете специфицировать столбец как число с плавающей запятой следующим образом:

Column_name NUMBER

Вы можете указать точность – precision - (общее количество десятичных знаков в числе) и масштаб – scale - (количество десятичных знаков справа от десятичной точки) следующим образом:

Column_name NUMBER (<precision>, <scale>)

Например: число 123.45 имеет точность 5 и масштаб 2.

Для указания чисел специального типа используйте следующие возможности:

Целое число – NUMBER(p);

Число с фиксированной точкой – NUMBER(p,s)

Число с плавающей точкой - NUMBER

Точность и масштаб не являются обязательными, однако они позволяют проводить дополнительную проверку данных при их вводе. Если точность не определена, то значение столбца запоминается в том виде, как оно было указано. В табице ниже приводятся примеры запоминания данных при различных значениях точности и масштаба.

Исходные данные

Формат запоминания

Сохраняются так

7,456,123.89

NUMBER

7456123.89

7,456,123.89

NUMBER (9)

7456124

7,456,123.89

NUMBER (9,2)

7456123.89

7,456,123.89

NUMBER (9,1)

7456123.9

7,456,123.89

NUMBER (6)

(не допустимо, так как превышена точность)

7,456,123.89

NUMBER (7, -2)

7456100

  1. Язык SQL Oracle. Тип данных DATE.

Используйте тип данных DATE для запоминания даты и времени. Тип DATE запоминает столетие, год, месяц, день, часы, минуты и секунды.

Oracle использует свой внутренний формат для хранения дат. Данные типа даты запоминаются в полях фиксированной длины в 7 байт, каждый байт используется для хранения столетия, года, месяца, дня, часа, минуты и секунды соответственно.

При вводе и выводе даты стандартным форматом даты по умолчанию является DD-MON-YY. Например:

'13-NOV-92'

Для изменения этого формата по умолчанию на другой используйте параметр NLS_DATE_FORMAT. Для изменения формата по умолчанию даты на период сеанса работы используйте предложение ALTER SESSION. Для ввода даты, которая отличается от текущего формата по умолчанию воспользуйтесь функцией TO_DATE с соответствующей маской формата, например:

TO_DATE ('November 13, 1992', 'MONTH DD, YYYY')

Если используется формат DD-MON-YY, то YY указывает на год в 20-м столетии (например, 31-DEC-92 является датой December 31, 1992). Если необходимо представить год с указанием столетия, то используйте соответствующую маску формата, например, как это показано на примере выше.

Время запоминается в формате 24 часов: #HH:MM:SS. По умолчанию время в поле даты равно 12:00:00 A.M. если временная компонента даты не была указана. Если вводится только время, то дата по умолчанию предполагается равной первому дню текущего месяца. Для ввода только времени используйте функцию TO_DATE с маской формата, указывающей на присутствии только времени, например::

INSERT INTO EventTime (name, EvTime) VALUES

('START',TO_DATE('10:56',' HH:MI'));

Стандарт SQL предполагает еще одну форму задания литерала типа даты (то есть собственно даты без времени), который также поддерживается в Oracle. Этот формат следующий:

DATE 'YYYY-MM-DD'

Где:

DATE – ключевое слово

YYYY-MM-DD – дата в формате:

YYYY – четыре цифры года

ММ – две цифры месяца

DD – две цифры дня

- – символ «минус»

Примеры: DATE '1968-01-17', DATE '2005-07-23'