Лекция_1 (1119133), страница 7
Текст из файла (страница 7)
главы баз данных. Лекция 1104Средства определения, изменения определения иотмены определения доменов (16)Если в операторе DROP DOMAIN указано CASCADES, тооператор выполняется всегдаПри этом уничтожаются все представления и ограниченияцелостности, в определении которых использовалось имяданного доменаСтолбцы, определенные на этом домене, автоматическипереопределяются следующим образом:◦ считается, что каждый такой столбец теперь относится к определяющемутипу уничтожаемого домена;◦ если у столбца не было определено собственное значение по умолчанию,то считается, что теперь у него имеется такое значение по умолчанию,совпадающее со значением по умолчанию уничтожаемого домена;◦ каждый столбец наследует все ограничения уничтожаемого домена20.05.2016Доп.
главы баз данных. Лекция 1105Неявные и явные преобразования типа илидомена (1)В SQL поддерживается совместимость некоторых типовданных за счет неявного преобразования значений одного типак значениям другого типа данныхнапример, при необходимости FLOAT неявно приводится кDOUBLEОпишем наиболее важные правила совместимости типов,принятые в SQL:1999Начнем с определения приводимости типовТип данных A приводим к типу данных B в том и только в томслучае, когда в любом месте, где ожидается значение типа B,может быть использовано значение типа A20.05.2016Доп.
главы баз данных. Лекция 1106Неявные и явные преобразования типа илидомена (2)Основные правила приводимости типов состоят в следующем.Типы символьных строк◦ Тип CHARACTER (x) приводим к любому типу CHARACTER (y), если y ≥x. Типы VARCHAR (x) и CHARACTER (x) приводимы к любому типуVARCHAR (y), если yx. Типы CHARACTER (x) и VARCHAR (x)приводимы к любому типу CLOB.◦ Типы битовых строк. Тип BIT (x) приводим к любому типу BIT (y), если y ≥x. Типы BIT VARYING (x) и BIT (x) приводимы к любому типу BITVARYING (y), если y ≥ x.◦ Типы BLOB.
Тип BLOB (x) приводим к любому типу BLOB (y), если y ≥ x.◦ Типы точных чисел. Тип EN (p1, s1) приводим к любому типу EN (p2, s2), укоторого s2 ≥ s1 и p2 определяется в реализации. Тип EN (p, s) приводим клюбому типу приблизительных чисел AN (p1), где p1 определяется вреализации.◦ Типы приблизительных чисел. Тип AN (p1) приводим к любому типу AN(p2), если p2 ≥ p120.05.2016Доп. главы баз данных. Лекция 1107Неявные и явные преобразования типа илидомена (3)Неявные преобразования типов не всегда удобны,недостаточно гибки и иногда могут вызывать ошибкиПоэтому число допустимых неявных преобразований типов вSQL весьма ограниченоОднако в SQL существует специальный оператор CAST, спомощью которого можно явно преобразовывать типы илидомены в более широких пределах допускаемыхпреобразованийКонструкция имеет следующий синтаксис:CAST ({scalar-expression | NULL } AS {data_type | domain_name})20.05.2016Доп.
главы баз данных. Лекция 1108Неявные и явные преобразования типа илидомена (4)Оператор преобразует значение заданного скалярноговыражения к указанному типу или к базовому типу указанногодоменаРезультатом применения оператора CAST к неопределенномузначению является неопределенное значениеДля значений, отличных от неопределенных, в стандартеприводятся подробные правила выполнения преобразований,которые интуитивно понятны20.05.2016Доп.
главы баз данных. Лекция 1109Неявные и явные преобразования типа илидомена (5)Поясним действие оператора CAST в наиболее важныхслучаях; обозначим:◦ EN – точные числовые типы (Exact Numeric)◦ AN – приблизительные числовые типы (Approximate Numeric)◦ C – типы символьных строк (Character)◦ FC – типы символьных строк постоянной длины (Fixed-length Character)◦ VC – типы символьных строк переменной длины (Variable-lengthCharacter)◦ B – типы битовых строк (Bit String)◦ FB – типы битовых строк постоянной длины (Fixed-length Bit String)◦ VB – типы битовых строк переменной длины (Variable-length Bit String)◦ D – тип Date◦ T – типы Time◦ TS – типы Timestamp◦ YM – типы Interval Year-Month◦ DT – типы Interval Day-Time20.05.2016Доп. главы баз данных. Лекция 1110Неявные и явные преобразования типа илидомена (6)Пусть TD – это тип данных, к которому производитсяпреобразование, а SD – тип данных операндаТогда допустимы следующие комбинации◦ «да» означает безусловную допустимость, «нет» – безусловнуюнедопустимость и «?» – допустимость с оговорками20.05.2016Доп.
главы баз данных. Лекция 1111.