- •1. История возникновения баз данных
- •2. Системы управления базами данных
- •1. Непосредственное управление данными во внешней памяти
- •2. Управление буферами оперативной памяти
- •3. Управление транзакциями
- •4. Журнализация
- •5. Поддержка языков бд
- •3. Классификация баз данных
- •4. Проектирование реляционных баз данных
- •1) Создание концептуальной модели бд.
- •2) Создание логической модели бд.
- •3) Создание физической модели бд.
- •5. Логическая модель базы данных
- •5.1. Основные понятия
- •5.2. Нормализация данных
- •5.3. Иерархия категорий
- •6. Правила ссылочной целостности
- •7. Язык обработки данных sql и его особенности в субд Oracle
- •7.1. Основные объекты Oracle
- •7.2. Основные типы данных Oracle
- •7.2.1. Типы данных для хранения строк символов
- •7.2.2. Типы данных для хранения чисел
- •7.2.3. Специальный тип rowid
- •7.2.4. Тип данных для хранения даты и времени
- •7.2.5. Типы данных для хранения больших объемов информации
- •7.3. Создание, модификация и удаление таблиц
- •7.4. Вставка, выборка, модификация и удаление записей таблиц
- •7.4.1. Операции вставки строк
- •7.4.2. Операции выборки строк
- •Select p.*, d.* from project p, department d
7.2. Основные типы данных Oracle
Информация, хранимая в базе данных, может быть разнообразной: строки символов, числа, даты и т.д. Для хранения информации СУБД Oracle поддерживает различные типы данных. Рассмотрим основные из них.
При дальнейшем изложении материала необязательные параметры и синтаксические конструкции будут указываться в квадратных скобках.
7.2.1. Типы данных для хранения строк символов
Тип CHARACTER или CHAR используется для хранения строк фиксированной длины.
Синтаксис: CHARACTER[(длина)] или CHAR[(длина)].
Для хранения строк резервируется определенное в параметре длина пространство. При необходимости короткая строка дополняется пробелами. Параметр длина является необязательным. Если длина строки не указана явно, она полагается равной 1. Максимальное значение параметра длина — 255 символов.
Тип VARCHAR используется для хранения строк переменной длины. Для хранения строк резервируется реально необходимое пространство.
Синтаксис: VARCHAR [(длина)].
Параметр длина является необязательным. Если длина строки не указана явно, она полагается равной 1 символу. Максимальное значение параметра длина – 4000 символов.
Тип VARCHAR2 (применяется только в Oracle) используется для хранения строк переменной длины. Для хранения строк резервируется реально необходимое пространство. Основная причина введения типа VARCHAR2 состоит в том, что фирма Oracle декларирует неизменность этого типа в более поздних реализациях Oracle, в то время как тип VARCHAR будет соответствовать требованиям стандартов SQL.
Синтаксис: VARCHAR2(длина).
Длина строки должна быть указана явно. Минимальное значение параметра длина – 1 символ, максимальное значение параметра длина – 4000 символов.
7.2.2. Типы данных для хранения чисел
Тип INTEGER используется для представления целых чисел в диапазоне от -231 до 231.
Синтаксис: INTEGER или INT.
Тип NUMBER (применяется только в Oracle) используется для представления чисел с заданной точностью.
Синтаксис: NUMBER [(точность [, масштаб])].
Если значение параметра точность не указано явно, оно полагается равным 38. Значение параметра масштаб по умолчанию предполагается равным 0. Значение параметра точность может изменяться от 1 до 38, значение параметра масштаб может изменяться от -84 до 127. Использование отрицательных значений масштаба означает сдвиг десятичной точки в сторону старших разрядов. Например, определение NUMBER (7,-3) означает округление до тысяч.
В таблице 3 приведены представления числа 123456.789 с различной точностью и масштабом.
Таблица 3. Представления числа 123456.789
с различной точностью и масштабом.
Определение |
Представление при выполнении действий |
NUMBER |
123456 |
NUMBER(7,1) |
123456.7 |
NUMBER(5,2) |
ошибка в данных |
NUMBER(8,3) |
ошибка в данных |
NUMBER(9,3) |
123456.789 |
NUMBER(7,-2) |
123500 |
Для совместимости с другими СУБД на уровне запросов СУБД Oracle поддерживает типы данных DECIMAL и NUMERIC. Типы DECIMAL И NUMERIC полностью эквивалентны типу NUMBER.