Программирование >>  Неопределенные и пропущенные значения 

1 [ 2 ] 3 4 5 ... 14


1. Основные понятия и опредепения

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

Язык обработки Данньх - DML (Data Manipulation Language) -предоставляет возможность выборки информации из базы данных и ее преобразования.

Тем не менее это не два различных языка, а компоненты

единого SQL.

1.5. Типы данных SQL

В языке SQL имеются средства, позволяющие для каждого атрибута указывать тип данных, которому должны соответствовать все значения этого атрибута.

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

1.5.1. Тип данных строка символов

Стандарт поддерживает только один тип представления текста - CHARACTER (CHAR). Этот тип данных представляет собой символьные строки фиксированной длины. Его синтаксис имеет вид:

CHARACTER [(ина)] или

CHAR [(длгна)].

Текстовые значения поля таблицы, определенного как тип CHAR, имеют фиксмрованную длину, которая определяется параметром длина. Этот параметр может принимать значения от 1 до 255, то есть строка может содержать до 255 символов. Если во вводимой в поле текстовой константе фактическое число символов меньше числа, определенного параметром длмна, то эта константа автоматически дополняется справа пробелами до заданного числа символов.

1.5. Типы данных SQL

Некоторые реализации языка SQL поддерживают в качестве типа данных строки переменной длины. Этот тип может обозначаться ключевыми словами VARCHAR (j, CHARACTER VARYING или CHAR VARYING (j . Он описывает текстовую строку, которая может иметь произвольную длину до определенного конкретной реализацией SQL максимума (в Oracle - до 2000 символов). В отличие от типа CHAR в этом случае при вводе текстовой константы, фактическая длина которой меные заданной, не производится ее дополнение пробелами до заданного максимального значения.

Константы, имеющие тип CHARACTER и VARCHAR, в выражениях SQL заключаются в одиночные кавычки, например, текст.

Следующие предложения эквивалентны:

VARCHAR [(рлня)] , CHAR VARYING [(ft)] , CHARACTER VARYING [(f)] .

Если длина строки не указана явно, она полагается равной одному символу во всех случаях.

По сравнению с типом CHAR тип данных VARCHAR позволяет более экономно использоватъ память, выделяемую для хранения текстовых значений, и оказывается более удобным при выполнении операций, связанных со сравнением текстовых констант.

1.5.2. Числовые типы данных

Стандартными числовыми типами данных SQL являются:

INTEGER -- используется для представления целых чисел в диапазоне от -231 до +231.

SMOLLINT -- используется для представления целых чисел в меньшем, чем для INTEGER, диапазоне, а именно - от -215 до +215.

DECIMAL (точность[,масштаб]) - десятичное число с фиксированной точкой, точность определяет количество значащих цифр в числе. Масштаб указывает максимальное число цифр справа от точкм.

NUmeRIC (точность[,масштаб) - десятичное число с фиксированной точкой, такое же, как и DECIMAL.



FLOAT [(точность)] - число с плавающей точкой и указанной минимальной точностью.

REAL - число такое же, как при типе FLOAT, за исключением определения точности по умолчанию (в зависимости от конкретной реализации SQL).

DOUBLE PRECISION - число аналогично REAL, но точность в два раза выше точности REAL.

СУБД Oracle использует дополнительно тип данных NUMBER для представления всех числовхх данных, целхх, с фиксированной или плавающей точкой. Его синтаксис:

NUMBER [(точность[,.масшта6])].

Если значение параметра точность не указано явно, оно полагается равным 38. Значение параметра масштаб по умолчанию предполагается равнтм 0. Значение параметра точность может изменяться от 1 до 38; значение параметра масштаб может изменяться от -84 до 128. Использование отрицательнхх значений масштаба означает сдвиг десятичной точки в сторону старших разрядов. Например, определение NUMBER (7,-3) означает округление до тысяч.

Типы DECIMAL (иногда обозначаемый DEC) и NUMERIC полностью эквивалентны типу NUMBER.

Синтаксис: DECIMAL [(точнос/иь[,л асштао])],

DEC [(точностъ[,масштаб])],

NUMERIC [(точность[,масштаб\)].

1.5.3. Дата и время

Тип данных, предназначенный для представления даты и времени, также является нестандартным, хотя и чрезвхчай-но полезным. Для точного определения типов данных, поддерживаемых конкретной СУБД, следует обращаться к ее документации.

В СУБД Oracle имеется тип DATE, используемтй для хранения дат1 и времени. Поддерживаются датт, начиная от 1 января 4712 года до н.э. и до 31 декабря 4712 года. По умолчанию при



1.5. Типы данных SQL 17

определении датх без уточнения времени принимается время полуночи.

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

Константах типа DATE записхваются в зависимости от формата, принятого в операционной системе. Например, 03.05.1999, или 12/06/1989, или 03-nov-1999, или ОЗ-арг-99.

1..4. Неопределенные или пропущенные данные (NOL)

Для обозначения отсутствующих, пропущеннхх или неизвестных значений атрибута в SQL используется ключевое слово NULL. Довольно часто можно встретить словосочетание атрибут имеет значение NULL . Строго говоря, NULL не является значением в обычном понимании, а используется именно для обозначения того факта, что действительное значение атрибута на самом деле пропущено или неизвестно. Это приводит к ряду особенностей, что следует учитывать при использовании значений атрибутов, которые могут находиться в состоянии NULL.

В агрегирующих функциях, позволяющих получать сводную информацию по множеству значений атрибута, например суммарное или среднее значение, для обеспечения точности и однозначности толкования результатов отсутствующие или NULL-значения атрибутов игнорируются.

Условные операторы от булевой двузначной логики TRUE/FALSE расширяются до трехзначной логики TRUE/FALSE/UNKNOWN.

Все операторы, за исключением оператора конкатенации строк , возвращают пустое значение (NULL), если значение любого из операндов отсутствует (имеет значение NULL ).

Для проверки на пустое значение следует использовать операторы is NULL и is NOT NULL (использование с этой целью оператора сравнения = является ошибкой).

Функции преобразования типов, имеющие NULL в качестве аргумента, возвращают пустое значение (NULL).



1 [ 2 ] 3 4 5 ... 14

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика