
- •Введение
- •Часть 1
- •Глава 1 модели данных
- •Уровни моделей данных
- •1 Инфологические модели данных
- •1.1 Диаграмма Бахмана
- •1.2 Модель «сущность-связь»(er)
- •Нотация Мартина
- •Нотация idef1x
- •Нотация Баркера
- •2. Даталогические модели
- •2.1. Документальные модели
- •2.1.1. Ориентированные на формат документа
- •2.1.2. Дескрипторные модели
- •2.1.3. Тезаурусные модели
- •2.2. Фактографические модели
- •2.2.1. Теоретико-графовая модель
- •2.2.1.1. Иерархическая модель
- •2.2.1.2. Сетевая модель
- •2.2.2. Теоретико-множественные модели
- •2.2.2.1. Реляционная модель
- •Правила Теда Кодда
- •2.2.2.2. Бинарных ассоциаций
- •2.2.3. Объектно-ориентированные модели
- •3. Физические модели
- •3.1. Модели, основанные на файловых структурах
- •3.2. Модели, основанные на странично-сегментной организации
- •Известные сетевые субд:
- •Глава 2. Проектирование баз данных
- •1.1. Избыточность данных и аномалии обновления
- •1.2. Функциональные зависимости
- •1.3. Нормальные формы и схемы выполнения нормализации
- •1) 1Нф.
- •2) 2Нф.
- •3) 3Нф.
- •4) Нфбк (нормальная форма Бойса-Кодда).
- •5) 4Нф.
- •6) 5Нф.
- •1.4 Синтез реляционных баз данных
- •1.5 Пример синтеза
- •1.6 Пример декомпозиции
- •Часть 2
- •Реляционная алгебра
- •Введение
- •Стандартные реляционные операции
- •Свойства стандартных операций
- •Специальные операции
- •Язык sql как стандартный язык баз данных
- •Введение в sql
- •2.1.1 Функциональные возможности sql
- •2.2 Создание баз данных
- •2.2.1 Оператор create database
- •2.3 Удаление баз данных
- •2.4.3 Размер поля
- •2.4.4 Тип поля
- •2.5 Удаление таблиц
- •2.5.1 Оператор drop table
- •2.6. Данные и записи данных
- •2.6.1 Оператор select
- •2.6.2 Оператор distinct
- •2.6.3 Оператор from { таблица [ псевдоним ] } [,...]
- •2.6.4 Оператор where (условие)
- •2.6.5 Оператор group by { поле | Integer } [,...]
- •2.6.6 Оператор having( условие)
- •2.6.7 Оператор order by { поле | Integer [ asc|desc ] } [,...]
- •2.6.8 Оператор union [all] select-команда
- •2.6.9 Оператор intersect [all] select-команда
- •2.6.10 Оператор except [all] select-команда
- •2.6.11 Into { temp | scratch } таблица
- •2.6.12 Insert - добавлять данные
- •2.6.13 Values ( константа [,...] )
- •2.6.18 Unload - выгрузить данные в текстовый файл
- •2.7 Операторы
- •2.7.3 Арифметические операторы
- •2.7.4 Приоритеты операторов
- •2.8 Функции
- •2.8.3 Текстовые функции
- •2.8.4 Функции работы с временем и датами
- •2.8.5 Вспомогательные функции
- •2.9 Виды на таблицы данных (Просмотры)
- •2.9.1Create view - создать новый вид на таблицу данных
- •2.9.2 Drop view - удалить вид на таблицу данных
- •2.10 Пользовательские процедуры
- •2.10.1 Create procedure - создать пользовательскую процедуру
- •2.10.2 Dba
- •2.10.3 References { byte | text }
- •2.10.4 Default { Wert | null }
- •2.10.5 Returning { Feldtyp | references { byte | text } }
- •2.10.6 Drop procedure - удалить процедуру
- •2.12.2 Нормальный текст
- •1999 - Sql-99, sql-3 (iso/iec 9075:1999(e) Information technology - Database languages - sql)
- •2003 - Sql-2003
- •4. Виды систем баз данных
- •4.1.Oracle
- •4.1.1 Типы данных
- •4.1.1.1.Символьные типы
- •4.1.1.2.Числовые типы
- •Даты, временные метки и интервалы
- •4.1.1.3.Логические типы
- •Двоичные данные
- •4.1.1.4.Типы данных для сети Интернет
- •4.1.1.5.Типы данных «Any»
- •4.2. Mysql
- •4.2.1 Типы данных.
- •4.2.1.1.Character String (строковый)
- •4.2.1.2.National Character String (национальный строковый)
- •4.2.1.3.Binary Large Object String (двоичный)
- •4.2.1.4.Numeric (числовой)
- •4.2.1.5.Datetime (дата/время)
- •4.2.1.6.Interval (интервальный)
- •4.2.1.7.Типы enum и set
- •4.2.2Использование типов столбцов их других систем управления базами данных
- •4.3. Postgresql
- •4.3.1 Типы данных
- •4.3.1.1Числовые типы
- •4.3.1.1.Целочисленные типы
- •4.3.1.2.Числа с заданной точностью
- •4.3.1.3.Типы с плавающей точкой
- •4.3.1.4.Серийные типы
- •4.3.1.5.Денежные типы
- •4.3.1.6.Символьные типы
- •4.3.1.7.Двоичные типы данных
- •4.3.1.8.Типы дата/времени
- •4.3.1.9.Логический тип
- •4.3.1.10.Перечисления
- •5. Использованные в пример таблицы данных
- •Символьные
- •Числовые типы данных
- •Двоичные типы данных
- •Типы данных времени, даты, интервалы
- •Логические типы данных
- •Список литературы
- •Оглавление
- •Часть 1………………………………………………………….…………………………….………… 4
- •Глава 1 модели данных………………………….………………….……………….…........…. 4
- •Глава 2 проектирование баз данных…………..……………………………………...… 40
- •1.4 Синтез реляционных баз …...………………………………………………………… 44
- •Часть 2……...…...………………………………………………………………………………….… 52
4.2.1.6.Interval (интервальный)
Стандарт ISO SQL: 2003 определяет следующие два интервальных типа:
год-месяц 4-значный год и 2-значное значение месяца (YYYY-MM)
день-время —2-значное значения дня, часа, минуты и секунды (DD HH: II: SS)
Интервальные типы
Наименование |
Стандартный тип |
Формат |
Интервал выборки выражения |
MICROSECOND
|
|
n |
INTERVAL 5 MICROSECOND
|
SECOND
|
|
n |
INTERVAL 5 SECOND
|
MINUTE
|
|
n |
INTERVAL 5 MINUTE
|
HOUR
|
|
n |
INTERVAL 5 HOUR
|
DAY
|
|
n |
INTERVAL 5 DAY
|
WEEK
|
|
n |
INTERVAL 5 WEEK
|
MONTH
|
|
n |
INTERVAL 5 MONTH
|
QUARTER
|
|
n |
INTERVAL 5 QUARTER
|
YEAR
|
|
n |
INTERVAL 5 YEAR
|
SECOND_MICROSECOND
|
|
’n.n’ |
INTERVAL `5.4 SEC- OND_MICROSECOND
|
MINUTE_MICROSECOND
|
|
’n.n’ |
INTERVAL `5.4 MINUTE_MICROSECOND
|
MINUTE_SECOND |
|
’n.n’ |
INTERVAL `5:4 MINUTE_SECOND
|
HOUR_MICROSECOND
|
|
’n.n’ |
INTERVAL `5.4 HOUR_MICROSECOND
|
HOUR_SECOND
|
|
’n:n:n’ (часы:минуты:секунды) |
INTERVAL `5:4:3 HOUR_SECOND
|
HOUR_MINUTE
|
|
’n.n’ |
INTERVAL `5:4 HOUR_MINUTE
|
DAY_MICROSECOND
|
|
’n.n’ |
INTERVAL `5.4 DAY_MICROSECOND
|
DAY_SECOND
|
день-время |
’n n:n:n’ (день часы:минуты:секунды) |
INTERVAL `5 4:3:2` DAY_SECOND
|
DAY_MINUTE
|
|
’nn:n’ (день часы:минуты) |
INTERVAL `5 4:3` DAY_MINUTE
|
DAY_HOUR
|
|
’n.n’ |
INTERVAL `5 4` DAY_HOUR
|
YEAR_MONTH
|
год-месяц |
’n.n’ |
INTERVAL `5-4` YEAR_MONTH |
4.2.1.7.Типы enum и set
ENUM(перечисление)- это строковый объект, имеющий значение, выбранное из списка допустимых, которые явно перечислены в спецификации столбца во время создания таблицы.
При некоторых условиях значение может быть также пустой строкой (" ) или NULL :
Если вы вставляете недопустимое значение в столбец типа ENU M (то есть, строку, которой нет в списке допустимых значений), то вставляется пустая строка в качестве специального ошибочного значения. Эту строку можно отличить от нормальной пустой строки по тому признаку, что она имеет числовое значение 0.
Если столбец типа ENU M объявлен как допускающий значение NULL , то NUL L – это корректное значение для него, и это значение по умолчанию. Если же столбец объявлен как NOT NULL , то значением по умолчанию будет первое из ее списка допустимых значений.
Каждое перечислимое значение имеет индекс :
Значения из списка допустимых , указанных в спецификации столбца, пронумерованы, начиная с 1.
Индексное значение пустой строки равно 0. Это означает, что вы может е использовать следующий оператор SELECT, чтобы найти строки, в которые вставлялось неверное значение ENUM:
mysql> SELECT * FROM имя_таблицы WHERE столбец_enum = 0;
Индекс значения NULL равен NULL.
Если вы извлекаете значение ENUMв числовом контексте, возвращается индекс значения столбца. Например, вы можете извлечь числовые значения столбцаENUMследующим образом:
mysql> SELECT столбец_enum + О FROM имя_таблицы;
Если вы хотите просмотреть все возможные значения столбца ENUM, воспользуйтесь
SHOWCOLUMNSFROMимя_таблицыLIKEстолбец_enumи проанализируйте определениеENUMво втором столбце вывода.
SET(набор) - это строковый объект, которым может иметь от нуля и более значений, каждое из которых должно быть выбрано из списка допустимых значений, указанного при создании таблицы. Значения столбцовSET, которые состоят из множества членов, специфицируются списком членов, разделенных запятой. Следствием этого является то, что значения членовSETне могут содержать в себе запятых.
Например, столбец, объявленный как SET('one’, 'two')NOTNULL, может содержать только такие значения:
‘’
'one'
'two'
'one,two'
SETможет иметь максимум 64 различных члена.
MySQLхранит значенияSETв числовом виде, при этом первый справа бит соответствует первому члену набора. Если вы извлекаете значениеSETв числовом контексте, то оно будет содержать набор битов, соответствующий членам, которые образуют значение столбца. Например, вы можете извлечь числовое значение столбцаSETследующим образом:
mysql> SELECT столбец_set + О FROM имя_таблицы;
Значения SETсортируются в соответствии с числовыми представлениями. ЗначенияNULLпредшествуют всем значениям, отличным отNULL. Обычно поиск значения в наборе
осуществляется с помощью функции FIND_IN_SET() или операцииLIKE:
mysql> SELECT * FROM имя_таблицы
WHERE FIND_IN_SET('значение', столбец_set)>0;
mysql> SELECT * FROM имя__ таблицы WHERE столбец_set LIKE '%значение%';
Первый оператор найдет строки, в которых столбец_setсодержит член набора значение. Второй оператор похож, однако означает не то же самое. Он выбирает строки, в которых столбец_setсодержит значение даже в виде подстроки в другом члене набора.
Следующие операторы также допустимы:
mysql> SELECT * FROM имя_таблицы WHER E столбец_set & 1;
mysql> SELECT * FROM имя_таблицы WHER E столбец_set = 'значение1, значение2';
Первый из этих операторов ищет значения, содержащие первый член набора. Второй - ищет полное совпадение. Будьте осторожны со сравнениями второго типа. Сравнение значений набора с ' значение 1, значение2' вернет другой результат, чем сравнение с ' значение2, значение1\ Вы должны указывать элементы в том же порядке, в котором они перечислены в определении столбца.
Если вы хотите просмотреть все возможные значения столбца SET, воспользуйтесь
SHOWCOLUMNSFROMимя__таблицыLIKEстолбец_setи проанализируйте определениеSETво втором столбце вывода.
Типы Enum и Set
Наименование типа |
Фиксированная/переменная длина |
Размер |
Атрибуты |
ENUM |
фиксированная |
1–255 перечисленных строк, 1 байт 256–65,535 перечисленных строк, 2 байта |
DEFAULT NOT NULL NULL |
SET |
фиксированная |
1 перечисленных строк, 1 байт 2–9 перечисленных строк, 2 байта 10–17 перечисленных строк, 3 байта 18–25 перечисленных строк, 4 байта 26–64 перечисленных строк, 8 байт
|
DEFAULT NOT NULL NULL |