Базы данных - модели, разработка, реализация



         

Типы данных - часть 3


72

представления дат или специальные функции преобразования форматов дат, как сделано, например, в СУБД ORACLE. Приведем примеры констант в MS SQL Server:

March 15. 1999 Маг 15 1999 3/15/19993-15-99 1999 MAR 15

В СУБД ORACLE та же константа запишется как

15-MAR-99

Кроме пользовательских констант в СУБД могут существовать и специальные системные константы. Стандарт SQL1 определяет только одну системную константу USER, которая соответствует имени пользователя, под которым вы подключились к БД.

В операторах SQL могут использоваться выражения, которые строятся по стандартным правилам применения знаков арифметических операций сложения (+), вычитания (-), умножения (*) и деления (/). Однако в ряде СУБД операция деления (/) интерпретируется как деление нацело, поэтому при построении сложных выражений вы можете получить результат, не соответствующий традиционной интерпретации выражения. В стандарт SQL2 включена возможность выполнения операций сложения и вычитания над датами. В большинстве СУБД также определена операция конкатенации над строковыми данными, обозначается она, к сожалению, по-разному. Так, например, для DB2 операция конкатенации обозначается двойной вертикальной чертой, в MS SQL Server - знаком сложения (+), поэтому два выражения, созданные в разных СУБД, эквивалентны:

  • ?Mr./Mrs. ? | | NAME | | ? ? LAST_NAME
  • ?Mr./Mrs. ? + NAME + ? ? LAST_NAME
  • В стандарте SQL1 не были определены встроенные функции, однако в большинстве коммерческих СУБД такие функции были реализованы, и в стандарт SQL2 уже введен ряд стандартных встроенных функций:

  • BIT_LENGTH(строка) - количество битов в строке;
  • САSТ(значение AS тип данных) - значение, преобразованное в заданный тип данных;
  • CHAR_LENGTH(строка) - длина строки символов;
  • CONVERT(строка USING функция) - строка, преобразованная в соответствии с указанной функцией;
  • CURRENT_DATE - текущая дата;
  • CURRENT_TIME(точность) - текущее время с указанной точностью;
  • CURRENT_TIMESTAMP(точность) - текущие дата и время с указанной точностью;



  • Содержание  Назад  Вперед