Лекция_1 (1119133), страница 4
Текст из файла (страница 4)
Лекция 152Типы данных SQL (14)Типы символьных строк (4)Тип CHARACTER LARGE OBJECT◦ Этот тип данных предназначен для определения столбцов,хранящих большие и разные по размеру группы символов◦ При определении столбца задается спецификация CLOB (z), где zзадает максимальный размер соответствующей группы символов◦ Максимально возможное значение параметра z определяется вреализации, но, очевидно, что оно должно быть существеннобольше максимально возможного значения параметра x,присутствующего в типах CHAR и CHAR VARYINGЛитералы типов символьных строк представляются в видепоследовательностей символов, заключенных в одинарныеили двойные кавычки◦ В первом случае среди набора символов литерала допускаетсяналичие символов двойной кавычки, а во втором – символоводинарной кавычки◦ Примеры литералов символьных строк: ’ABCDEF’, ’Ab"Ctd’,"Fbcdef", "ab’cdtF"20.05.2016Доп.
главы баз данных. Лекция 153Типы данных SQL (16)Типы битовых строк (1)В SQL определены три параметризуемых типа битовыхстрок: BIT, BIT VARYING и BINARY LARGE OBJECT (илиBLOB).Тип BIT◦ значениями типа являются битовые строки◦ при определении столбца допускается использованиеспецификаций BIT (x) и просто BIT последний вариант эквивалентен заданию BIT (1)◦ после определения столбца типа BIT (x) СУБД будетрезервировать место для хранения x бит этого столбца вовсех строках соответствующей таблицы20.05.2016Доп. главы баз данных. Лекция 154Типы данных SQL (17)Типы битовых строк (2)Тип BIT VARYINGпри определении столбца допускается использованиетолько спецификации без умолчания вида BIT VARYING(x), где значение x определяет максимальную длинубитовой строки, которую можно хранить в данномстолбцеНад битовыми строками определен ряд операций:◦ битовая конкатенация (обозначается в виде ||) возвращаетрезультирующую битовую строку, полученную путемконкатенации строк-аргументов в том порядке, в котором онизаданы20.05.2016Доп.
главы баз данных. Лекция 155Типы данных SQL (18)Типы битовых строк (3)◦ функция извлечения подстроки из битовой строки синтаксис и семантика этой функции идентичны синтаксису исемантике функции SUBSTRING для символьных строк, заисключением того, что первый аргумент и возвращаемоезначение являются битовыми строками.◦ функция определения длины (OCTET_LENGTH,BIT_LENGTH) возвращает длину заданной битовой строки воктетах или битах в зависимости от выбранной функции.◦ функция определения позиции (POSITION) определяетпервую позицию в битовой строке S, с которой в нее входитстрока S1 если строка S1 не входит в строку S, возвращается значениенуль20.05.2016Доп. главы баз данных. Лекция 156Типы данных SQL (19)Типы битовых строк (4)◦ Тип BINARY LARGE OBJECT◦ этот тип данных предназначен для определения столбцов, хранящихбольшие и разные по размеру группы байтов◦ при определении столбца задается спецификация BLOB (z), где zзадает максимальный размер соответствующей группы байтов◦ с технической точки зрения типы CLOB и BLOB очень похожим их разделение требуется для того, чтобы подчеркнуть, что значения типаCLOB состоят из символовв частности, в них может осмысленно производиться текстовый поиск а значения типа BLOB состоят из произвольных байтов, не обязательнокодирующих символы20.05.2016Доп.
главы баз данных. Лекция 157Типы данных SQL (20)Типы битовых строк (5)Литералы типов битовых строк представляются какзаключенные в одинарные кавычки последовательностисимволов «0» и «1», предваряемые символом «B»; илипредваряемые символом «X» последовательности символов,которые изображают шестнадцатеричные цифры◦ за цифрой «9» следуют «A», «B», «C», «D», «E» и «F»Примеры литералов типов битовых строк:B’0111001111000111111111’, X’78FBCD0012FFFFA’20.05.2016Доп.
главы баз данных. Лекция 158Типы данных SQL (21)Типы даты и времени (1)Возможность сохранения в базе данных информации о дате ивремени очень важна с практической точки зрения◦ Достаточно вспомнить взбудоражившую весь мир «проблему2000 года», одним из основных источников которой былонекорректное хранение дат в базах данныхВ стандарте SQL поддержке средств работы с датой ивременем уделяется большое вниманиеВ частности, поддерживаются специальные «темпоральные»типы данных◦ DATE,◦ TIME,◦ TIMESTAMP,◦ TIME WITH TIME ZONE и◦ TIMESTAMP WITH TIME ZONE20.05.2016Доп.
главы баз данных. Лекция 159Типы данных SQL (23)Типы даты и времени (2)Тип DATE◦ значения этого типа состоят из компонентов-значений года,месяца и дня некоторой даты◦ значение года состоит из четырех десятичных цифр исоответствует летоисчислению от Рождества Христова до 9999 г.◦ значение месяца состоит из двух десятичных цифр и варьируетсяот 01 до 12◦ значение номера дня месяца состоит из двух десятичных цифр иварьируется от 01 до 31, хотя значение месяца даты можетнакладывать ограничения на возможность использованиязначений дня месяца 29, 30 и 3120.05.2016Доп. главы баз данных. Лекция 160Типы данных SQL (24)Типы даты и времени (3)◦ В стандарте SQL не накладываются какие-либо ограничения навнутренний способ представления дат, используемый вреализации◦ При определении столбца типа DATE указывается просто DATE.Литералы типа DATE представляются в виде строки «’yyyymm-dd’», где символы y, m и d должны изображатьдесятичные числа◦ например, литерал DATE ’1949-04-08’ представляет дату 8 апреля1949 г.20.05.2016Доп.
главы баз данных. Лекция 161Типы данных SQL (25)Типы даты и времени (4)Тип TIME◦ значения этого параметризованного типа состоят изкомпонентов-значений часа, минуты и секунды некотороговремени суток◦ значение часа состоит ровно из двух десятичных цифр иварьируется от 00 до 23◦ значение минуты состоит из двух десятичных цифр и варьируетсяот 00 до 59◦ основное значение секунды также состоит из двух цифр, но можетвключать дополнительные цифры, представляющие долисекунды так что в целом значение секунды варьируется от 00 до 61.999...20.05.2016Доп. главы баз данных. Лекция 162Типы данных SQL (26)Типы даты и времени (5)◦ в значении времени присутствуют две лишние секунды,поскольку Всемирная служба времени иногда добавляет двесекунды к последней минуте года для синхронизации мировоговремени с реальным решение о поддержке этих «високосных» секунд принимается науровне реализации◦ число цифр в доле секунды также определяется в реализации в стандарте требуется только то, чтобы это число было не меньшешести◦ при определении столбца типа TIME может указываться TIME (p) значение p задает точность долей секунды◦ или просто TIME в этом случае доли секунды не учитываются20.05.2016Доп.
главы баз данных. Лекция 163Типы данных SQL (27)Типы даты и времени (6)Литералы типа TIME представляются в виде строки TIME’hh:mm-ss:f...f’, где символы h, m, s и f должны изображатьдесятичные числа◦ например, литерал TIME ’16:33-20:333’ представляет времясуток 16 часов 33 минуты 20 и 333 тысячных секунды20.05.2016Доп. главы баз данных. Лекция 164Типы данных SQL (28)Типы даты и времени (7)Тип TIMESTAMP◦ значения этого параметризованного типа состоятиз компонентов значений года, месяца и дня некоторой даты◦ а также компонентов значений часа, минуты и секунды некоторого временисуток◦ т. е.
каждое значение задает некоторуюабсолютную временную метку – отсюда названиетипа TIMESTAMP).Число десятичных цифр в значенияхкомпонентах и ограничения этих значенийтакие же, как у значений типов DATE и TIME20.05.2016Доп. главы баз данных. Лекция 165Типы данных SQL (29)Типы даты и времени (8)◦ при определении столбца типа TIMESTAMP можетуказываться TIMESTAMP (p) значение p задает точность долей секунды◦ или просто TIMESTAMP в этом случае, в отличие от типа данных TIME, по умолчаниюпринимается, что в доли секунды используются шестьдесятичных цифр◦ максимально допустимое значение p определяется вреализацииЛитералы типа TIMESTAMP представляются в видестроки TIMESTAMP ’yyyy-mm-dd hh:mm-ss:f...f’, гдесимволы y, m, d, h, m, s и f должны изображатьдесятичные числа◦ Например, литерал TIMESTAMP ’1949-04-08 16:33-20:333’представляет временную метку 16 часов 33 минуты 20 и 333тысячных секунды 8 апреля 1949 г.20.05.2016Доп.
главы баз данных. Лекция 166Типы данных SQL (30)Типы даты и времени (9)Тип TIME WITH TIME ZONE◦ этот тип данных похож на тип TIME с тем лишь отличием,что значения типа TIME WITH TIME ZONE включаютдополнительный компонент — значение, характеризующеесмещение соответствующего времени относительногринвичского времени теперь его называют UTC – universal time coordinated деталей представления этого дополнительного компонента мыкасаться не будем.Тип TIMESTAMP WITH TIME ZONE◦ этот тип данных отличается от типа TIMESTAMP тем, чтозначения типа TIMESTAMP WITH TIME ZONE включаютдополнительный компонент-значение, характеризующеесмещение соответствующего времени относительногринвичского20.05.2016Доп.