Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Диалект базы данных

Читайте также:
  1. I. Создание баз данных
  2. III. Диалектика и ее альтернативы
  3. Автоматическая проверка типа данных
  4. Агрегирование данных при выборке
  5. Анализ данных.
  6. База метаданных информационного хранилища (репозиторий ИХ)
  7. Базы данных
  8. БАЗЫ ДАННЫХ МОДЕЛИРОВАНИЯ
  9. Базы данных. Общие сведения. Основные понятия баз данных
  10. Безопасность на уровне базы данных

Новые встроенные функции

 

В СУБД Firebird добавлены новые встроенные функции из стандарта SQL-99 — CASE, COALESCE и NULLIF.

CASE является базовой для этого ряда функций и реализует условную выборку значений из таблиц, например:

SELECT CASE O.TYPE WHEN 0 THEN 'Доход' ELSE 'Расход' END FROM OPERATIONS O

или так

SELECT CASE WHEN (O.TYPE = 0) THEN 'Доход' ELSE 'Расход' END FROM OPERATIONS O

Следует отметить, что у функции CASE может быть любое количество аргументов, т.е. Она не ограничивается только простейшей проверкой типа 'ЕСЛИ-ИНАЧЕ', например:

SELECT CASE O.TYPE WHEN 0 THEN 'Доход' WHEN 1 THEN 'Расход' ELSE '----' END FROM OPERATIONS O

Функция COALESCE является упрощением CASE для проверки на NULL

SELECT COALESCE(O.STATUS, '----') FROM OPERATIONS O

Результатом COALESCE будет являться первый аргумент, если он не NULL, или второй аргумент в противном случае.

Функция NULLIF также является упрощением CASE, но для иного случая

SELECT NULLIF(O.STATUS1, O.STATUS2) FROM OPERATIONS O

Результатом NULLIF будет являться NULL, если оба аргумента равны, или первый аргумент в противном случае.

 

 

Выбор диалекта базы данных для СУБД Firebird очень важен.

Диалект 1 и Диалект 3 отличаются друг от друга следующими принципиальными особенностями:

- Диалект 3 позволяет использовать расширенный набор типов данных, таких как типы для работы с большими целыми числами (ВigInt – 64 разряда), типы для работы с датой и временем DATE и TIME.

- Диалект 3 различает регистр идентификаторов, если идентификатор заключён в двойные кавычки. Table1 и TABLE1 в обоих диалектах будут равнозначны, а вот “Table1” и “TABLE1” (TABLE1) сервер будет интерпретировать как разные идентификаторы.

- Диалект 3 не поддерживает неявное приведение типов данных (как в диалекте 1). Это означает, что в Диалекте 1 выражение ‘25’+5 будет корректным, и в результате мы получим 30. В Диалекте 3 это выражение вызовет ошибку несоответствия типов.

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

- В Диалекте 3 используются новые ключевые слова (зарезервированные слова): COLUMN, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DAY, EXTRACT, HOUR, MINUTE, MONTH, SECOND, TIME, TIMESTAMP, WEEKDAY, YEAR, YEARDAY.

- Арифметические операции в диалекте 3 взяты из стандарта SQL-92. Например, деление целого на целое в диалекте 3 возвращает усечённое целое, в то время как в диалекте 1 оно вернёт число с плавающей точкой двойной точности.

- Генераторы в диалекте 3 могут иметь тип bigint (64-битовые целые числа), а в диалекте 1 генераторы – 32-битовые целые.

Сам сервер не имеет диалекта – диалект базы данных является атрибутом базы данных. Он является интерфейсом клиента, который определяет, какой набор возможностей запрашивается у базы данных.

Выбор диалекта, в котором будет создаваться база данных, важен по той причине, что переход между разными диалектами – занятие достаточно нетривиальное и трудоёмкое. Иными словами, если есть возможность, то лучше сразу выбрать верный диалект.

В общем случае при выборе диалекта следует руководствоваться следующими правилами:

- выбираем Диалект 3, если проектируется база данных для приложения, которое будет использовать только современные библиотеки прямого доступа к InterBase/FireBird, которые полностью поддерживают Диалект 3.

- выбираем Диалект 1, если важна совместимость с более ранними библиотеками доступа к InterBase/FireBird, такими как BDE.

Может возникнуть вопрос, почему диалекты бывают 1 и 3, а где же 2? Диалект 2 действительно существует, но используется в качестве промежуточного этапа при миграции с Диалекта 1 на Диалект 3.

 


<== предыдущая страница | следующая страница ==>
Представления | Типы с фиксированной точкой

Дата добавления: 2014-02-28; просмотров: 382; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.